API di Auto Split
Suddividi un modello 3D in parti stampabili separatamente — automaticamente, in base alle parti che nomini o per area di colore — con connettori opzionali; le zone sottili lasciate da un taglio vengono sempre rinforzate in modo che ogni parte venga stampata in modo solido.
Auto Split attualmente supporta solo modelli non texturizzati. Per Immagine in 3D e Multi-immagine in 3D, genera l'input con should_texture impostato su false. Un input texturizzato viene rifiutato con 400. Il supporto per i modelli texturizzati è in corso di sviluppo.
Create an Auto Split Task
Questo endpoint crea una nuova attività di Auto Split. L'attività taglia il modello di un'attività precedente in parti stampabili separatamente e restituisce il modello segmentato, con ogni parte come oggetto separato nel file.
Parametri
- Name
- input_task_id
- Type
- string
- Obbligatorio
- Description
L'ID di un'attività riuscita il cui modello deve essere diviso. Tipi di attività supportati: Immagine in 3D, Multi-immagine in 3D, Testo in 3D (anteprima), Remesh, Converti e Ridimensiona. L'attività deve avere lo stato
SUCCEEDEDe il suo modello deve essere generato con Meshy 6 o Meshy 7 (ai_modelmeshy-6,meshy-7, olatest). I modelli low-poly e Smart Topology (meshy-t2) non sono supportati.
- Name
- mode
- Type
- string
- predefinito auto
- Description
Come il modello viene diviso in parti.
Valori disponibili:
auto: Meshy scelge i tagli.promptviene ignorato.by_parts: Taglia lungo le parti strutturali che nomini inprompt, come testa, braccia e busto.by_color: Taglia lungo le regioni di colore che nomini inprompt. Richiede un input generato da un'immagine caricata (Immagine in 3D o Multi-immagine in 3D); altri input vengono rifiutati con400.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Obbligatorio
- Description
Descrive le parti in cui suddividere, in qualsiasi lingua. Meshy legge da 1 a 10 nomi di parti da esso, quindi nomina i pezzi piuttosto che descrivere il modello — ad esempio
split into the figure and the base, oppurehead, torso, left arm, right arm, legs. Massimo 600 caratteri. Due modalità di fallimento: una descrizione che si presenta come una divisione ma nomina meno di due parti (ad esempiosplit into individual parts) viene rifiutata con400e non viene addebitato nulla; una descrizione che Meshy non riesce a interpretare del tutto ricade suauto, l'attività viene comunque eseguita e addebitata, e la sua risposta contieneprompt_ignored: true.
- Name
- target_formats
- Type
- array
- predefinito ["glb"]
- Description
Formati in cui esportare il modello diviso. Ogni parte è un oggetto separato in ogni formato.
glbviene sempre prodotto e restituito inmodel_urls; elenca eventuali altri formati che desideri in aggiunta.Valori disponibili:
glb,obj,fbx,usdz,blend,3mf.3mfviene scritto per gli slicer: un oggetto per parte, ciascuno sul proprio slot filamento, così Bambu Studio apre il file come parti colorate individualmente e selezionabili separatamente (l'archivio contiene una configurazione di progetto Bambu Studio; altri slicer leggono la geometria). Come gli altri formati di stampa di Meshy, è in millimetri e, poiché questo endpoint non richiede una dimensione target, l'intero modello viene ridimensionato in modo che il lato più lungo sia 150 mm — lo stesso limite usato dagli altri export in formato di stampa, scelto per adattarsi a ogni piano di stampa mainstream. Conlayout: "on_plate"il limite si applica al piano disposto nel suo insieme, quindi il file è pronto per lo slicing; conassembled, le parti restano dove si trovavano nel modello di origine e le disponi tu nello slicer.stlnon è supportato perché il formato non può contenere parti separate.
- Name
- layout
- Type
- string
- predefinito assembled
- Description
Come le parti sono disposte in ogni formato di output e nella miniatura.
Valori disponibili:
assembled: Le parti rimangono dove si trovavano nel modello di origine.on_plate: Le parti sono disposte in piano e distribuite sul piano di stampa, pronte per lo slicing — la stessa disposizione della vista On Plate dell'app web.
In entrambe le disposizioni i file esportati contengono un oggetto per parte e nulla altro: una scheggia collassata o un pezzo simile a un punto residuo di un taglio viene rimosso prima dell'esportazione, quindi ogni oggetto che trovi nel file è stampabile.
- Name
- connectors
- Type
- boolean
- predefinito false
- Description
Aggiunge connettori a incastro (mortise-and-tenon) a ogni taglio in modo che le parti stampate si incastrino tra loro.
connectors = true- Name
- connector_type
- Type
- string
- predefinito cube
- Description
La forma del connettore su ogni superficie di taglio.
Valori disponibili:
cube,cylinder.
- Name
- connector_size
- Type
- number
- predefinito 0.5
- Description
Dimensione del connettore relativa alla superficie di taglio.
Intervallo valido: da
0.1a0.8.
- Name
- connector_height
- Type
- number
- predefinito 0.1
- Description
Quanto il connettore si estende dalla superficie di taglio, relativamente alla superficie di taglio.
Intervallo valido: da
0.1a0.8.
Valori restituiti
La proprietà result della risposta contiene l'id della nuova attività Auto Split creata.
Modalità di fallimento
- Name
400 - Bad Request- Description
La richiesta non è stata accettata. Cause comuni:
- Prompt mancante:
promptè obbligatorio quandomodeèby_partsoby_color. - Il prompt nomina meno di due parti:
by_parts/by_colorrichiede almeno due pezzi nominati (ad esempiohead, torso, base); un'istruzione generica comesplit into individual partsviene rifiutata. Non viene addebitato nulla. - Attività di input non supportata:
input_task_iddeve fare riferimento a un'attività riuscita di un tipo supportato, generata con Meshy 6 o Meshy 7. - Input con texture: il modello di input ha texture. Al momento sono supportati solo modelli senza texture.
- Nessuna immagine di riferimento:
by_colorrichiede un input generato da un'immagine caricata. - Formato non supportato:
target_formatscontienestl. - Connettore fuori intervallo:
connector_sizeoconnector_heightè fuori dall'intervallo da0.1a0.8.
- Prompt mancante:
- Name
401 - Unauthorized- Description
Autenticazione non riuscita. Controlla la tua chiave API.
- Name
402 - Payment Required- Description
Crediti insufficienti per eseguire questa attività.
- Name
404 - Not Found- Description
input_task_idnon esiste o non appartiene al tuo account.
- Name
429 - Too Many Requests- Description
Hai superato il tuo limite di frequenza. Le richieste
by_partseby_colorcondividono anche un limite di analisi del prompt di 12 richieste al minuto per account.
- Name
503 - Service Unavailable- Description
La suddivisione basata su prompt (
by_partseby_color) non è temporaneamente disponibile. Riprova più tardi, oppure usamode: "auto", che non è interessato dal problema. Non viene addebitato nulla.
Request
# Simple request: let Meshy choose the cuts
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Advanced request: name the parts, add connectors, export glb and obj
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"mode": "by_parts",
"prompt": "split into the figure and the base",
"target_formats": ["glb", "obj"],
"layout": "on_plate",
"connectors": true,
"connector_type": "cylinder",
"connector_size": 0.4
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Recupera un'attività di Auto Split
Questo endpoint recupera un'attività di Auto Split tramite il suo ID.
Parametri
- Name
- id
- Type
- path
- Description
L'ID dell'attività di Auto Split da recuperare.
Risultati
L'oggetto Auto Split Task.
Request
curl https://api.meshy.ai/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
Elimina un'attività Auto Split
Questo endpoint elimina in modo permanente un'attività Auto Split, inclusi tutti i modelli e i dati associati. Questa azione è irreversibile.
Parametri del percorso
- Name
- id
- Type
- path
- Description
L'ID dell'attività Auto Split da eliminare.
Restituisce
Restituisce 200 OK in caso di successo.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 200 Ok on success.
Elenca le attività di Auto Split
Questo endpoint consente di recuperare un elenco di attività di Auto Split.
Parametri
Attributi opzionali
- Name
- page_num
- Type
- integer
- Description
Numero di pagina per la paginazione. Inizia e ha come valore predefinito
1.
- Name
- page_size
- Type
- integer
- Description
Limite di dimensione della pagina. Il valore predefinito è
10elementi. Il massimo consentito è100elementi; valori superiori vengono limitati a100.
- Name
- sort_by
- Type
- string
- Description
Campo in base al quale ordinare. Valori disponibili:
+created_at: Ordina per data di creazione in ordine crescente.-created_at: Ordina per data di creazione in ordine decrescente.
Restituisce
Restituisce un elenco paginato di Oggetti Attività di Auto Split.
Request
curl https://api.meshy.ai/openapi/v1/print/split?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
]
Stream an Auto Split Task
Questo endpoint trasmette in streaming gli aggiornamenti in tempo reale per un'attività Auto Split utilizzando Server-Sent Events (SSE).
Parametri
- Name
- id
- Type
- path
- Description
Identificatore univoco dell'attività Auto Split da trasmettere in streaming.
Restituisce
Restituisce uno stream di The Auto Split Task Objects come Server-Sent Events.
Ogni evento message contiene l'intero oggetto attività come restituito da Retrieve an Auto Split Task, inclusi consumed_credits, i timestamp e prompt_ignored; mentre l'attività è PENDING o IN_PROGRESS i campi che cambiano tra un frame e l'altro sono progress, status, started_at e preceding_tasks, mentre model_urls, thumbnail_url, part_count e parts compaiono una volta raggiunto lo stato SUCCEEDED. Un evento error contiene solo status_code e message, quindi verifica il nome dell'evento prima di leggere status.
Request
curl -N https://api.meshy.ai/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// Message event examples illustrate task progress (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
L'oggetto Task di Auto Split
Un task di Auto Split contiene solo le proprietà elencate di seguito. I campi relativi al prompt di generazione presenti in altri oggetti task (name, object_prompt, texture_prompt e simili), il singolo model_url e texture_urls non vengono mai valorizzati per uno split e non vengono restituiti. Le proprietà che si popolano durante l'esecuzione del task (thumbnail_url, model_urls, i timestamp) sono sempre presenti, vuote finché non hanno un valore, per cui l'insieme delle chiavi non cambia tra PENDING e SUCCEEDED.
- Name
- id
- Type
- string
- Description
Identificatore univoco del task. Sebbene come dettaglio implementativo utilizziamo un UUID k-sortable per gli id dei task, non dovresti fare alcuna assunzione sul formato dell'id.
- Name
- type
- Type
- string
- Description
Tipo del task. Il valore è
print-split.
- Name
- model_urls
- Type
- object
- Description
URL scaricabili per il modello suddiviso, uno per ciascun formato richiesto. Ogni parte è un oggetto separato all'interno del file. La proprietà per un formato viene omessa se quel formato non è stato richiesto.
- Name
glb- Type
- string
- Description
URL scaricabile per il modello suddiviso in formato GLB.
- Name
obj- Type
- string
- Description
URL scaricabile per il modello suddiviso in formato OBJ.
- Name
fbx- Type
- string
- Description
URL scaricabile per il modello suddiviso in formato FBX.
- Name
usdz- Type
- string
- Description
URL scaricabile per il modello suddiviso in formato USDZ.
- Name
blend- Type
- string
- Description
URL scaricabile per il modello suddiviso in formato Blender.
- Name
3mf- Type
- string
- Description
URL scaricabile per il modello suddiviso in formato 3MF: un oggetto per ciascuna parte, ognuno sul proprio slot filamento, in millimetri, scalato in modo che il lato più lungo sia 150 mm, con una configurazione di progetto Bambu Studio.
- Name
- thumbnail_url
- Type
- string
- Description
URL scaricabile per un'anteprima renderizzata del modello suddiviso, con ogni parte in un colore distinto, nel
layoutrichiesto.
- Name
- prompt_ignored
- Type
- boolean
- Description
truequando ilpromptdi una richiestaby_partsoby_colornon indicava alcuna parte, per cui Meshy ha suddiviso il modello automaticamente — i nomi delle parti nel risultato sono quelli assegnati da Meshy, non i tuoi. Presente a partire daPENDING. Omesso per i taskautoe ogni volta che il prompt è stato seguito.
- Name
- part_count
- Type
- integer
- Description
Numero di parti stampabili nel modello suddiviso — una per ciascun oggetto nei file esportati. Le schegge collassate che la segmentazione non è riuscita a trasformare in un pezzo stampabile vengono rimosse dai file prima dell'esportazione e non vengono conteggiate.
- Name
- progress
- Type
- integer
- Description
Avanzamento del task. Se il task non è ancora iniziato, questa proprietà sarà
0. Una volta che il task è riuscito, diventerà100.
- Name
- status
- Type
- string
- Description
Stato del task. I valori possibili sono uno tra
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Il numero di task precedenti.
Il valore di questo campo è significativo solo se lo stato del task è
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Timestamp di quando il task è stato creato, in millisecondi.
- Name
- started_at
- Type
- timestamp
- Description
Timestamp di quando il task è stato avviato, in millisecondi. Se il task non è ancora stato avviato, questa proprietà sarà
0.
- Name
- finished_at
- Type
- timestamp
- Description
Timestamp di quando il task è stato completato, in millisecondi. Se il task non è ancora terminato, questa proprietà sarà
0.
- Name
- task_error
- Type
- object
- Description
Dettagli dell'errore per i task falliti. Consulta Errori per il riferimento completo dell'oggetto
task_error.
- Name
- consumed_credits
- Type
- integer
- Description
Il numero di crediti consumati da questo task. Sempre presente:
10una volta che il task è stato accettato, e0per i taskFAILEDpoiché l'addebito viene rimborsato in caso di fallimento. Anche l'eliminazione di un task mentre è ancoraPENDINGcomporta il rimborso.
The Auto Split Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}