Auto Split API
Suddividi un modello 3D in parti stampabili separatamente — automaticamente, in base alle parti da te indicate, o per regione di colore — con connettori opzionali; le regioni sottili lasciate da un taglio vengono sempre rinforzate in modo che ogni parte venga stampata piena.
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.
Crea un'attività di Auto Split
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 a sé stante 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 stato
SUCCEEDEDe il suo modello deve essere stato generato con Meshy 6 o Meshy 7 (ai_modelmeshy-6,meshy-7olatest). 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 sceglie i tagli.promptviene ignorato.by_parts: Taglia lungo le parti strutturali indicate inprompt, ad esempio testa, braccia e busto.by_color: Taglia lungo le regioni di colore indicate 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 dal testo, quindi indica il nome dei pezzi anziché 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 suddivisione ma nomina meno di due parti (ad esempiosplit into individual parts) viene rifiutata con400e non viene addebitato nulla; una descrizione che Meshy non riesce proprio a interpretare ricade suauto, l'attività viene comunque eseguita e addebitata, e la sua risposta riportaprompt_ignored: true.
- Name
- target_formats
- Type
- array
- predefinito ["glb"]
- Description
Formati in cui esportare il modello suddiviso. Ogni parte è un oggetto separato in ogni formato.
glbviene sempre prodotto e restituito inmodel_urls; elenca eventuali altri formati desiderati in aggiunta.Valori disponibili:
glb,obj,fbx,usdz,blend,3mf.
- 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 restano dove le aveva collocate il modello sorgente.on_plate: Le parti vengono adagiate 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 nient'altro: un frammento appiattito o un pezzo simile a un punto risultante da un taglio viene rimosso prima dell'esportazione, quindi ogni oggetto presente nel file è stampabile.
- Name
- connectors
- Type
- boolean
- predefinito false
- Description
Aggiunge connettori a incastro (a maschio e femmina) su ogni taglio, così le parti stampate combaciano 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, in relazione alla superficie di taglio stessa.
Intervallo valido: da
0.1a0.8.
Restituisce
La proprietà result della risposta contiene l'id della nuova attività di Auto Split creata.
Modalità di errore
- 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. Per ora 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'intervallo0.1–0.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 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) è temporaneamente non 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.cn/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.cn/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.cn/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.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/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.cn/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.cn/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.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/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.cn/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.cn/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/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 Auto Split Task
Un task Auto Split contiene solo le proprietà indicate di seguito. I campi relativi al prompt di generazione presenti in altri oggetti task (name, object_prompt, texture_prompt e così via), il singolo model_url e texture_urls non vengono mai popolati per uno split e non vengono restituiti. Le proprietà che si riempiono man mano che il task procede (thumbnail_url, model_urls, i timestamp) sono sempre presenti, vuote finché non hanno un valore, quindi l'insieme delle chiavi non cambia tra PENDING e SUCCEEDED.
- Name
- id
- Type
- string
- Description
Identificatore univoco del task. Sebbene utilizziamo un UUID k-sortable per gli id dei task come dettaglio implementativo, non dovresti fare alcuna ipotesi 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 ogni formato richiesto. Ogni parte è un oggetto separato all'interno del file. La proprietà per un formato viene omessa se il 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.
- 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 nominava alcuna parte, quindi Meshy ha suddiviso il modello automaticamente — i nomi delle parti nel risultato sono quelli di 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 ogni 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
Progresso del task. Se il task non è ancora iniziato, questa proprietà sarà
0. Una volta che il task è andato a buon fine, 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 conteggio dei 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 iniziato, 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 all'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 taskFAILEDperché 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.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/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
}