API di Auto Split
Suddividi un modello 3D in parti stampabili separatamente — automaticamente, in base alle parti da te indicate, oppure per regione di colore — con connettori opzionali; le regioni sottili lasciate da un taglio vengono sempre rinforzate, così ogni parte viene stampata in modo solido.
Il risultato della suddivisione non conserva la texture di input. Auto Split accetta input con texture, quindi non è necessario rigenerare il modello con should_texture: false. Ricostruisce le parti tagliate e assegna a ciascuna un colore dei vertici piatto; nessuna mappa di texture in input viene trasferita in alcun formato esportato.
Create an Auto Split Task
Questo endpoint crea una nuova attività Auto Split. L'attività taglia il modello di un'attività precedente in parti separatamente stampabili e restituisce il modello segmentato, con ogni parte come proprio oggetto nel file.
Parametri
- Name
- input_task_id
- Type
- string
- Obbligatorio
- Description
L'ID di un'attività riuscita il cui modello dividere. Tipi di attività supportati: Immagine in 3D, Multi-immagine in 3D, Testo in 3D (anteprima), Remesh, Converti e Ridimensiona. L'attività deve avere uno stato
SUCCEEDED, e il suo modello deve essere generato con Meshy 6 o Meshy 7 (ai_modelmeshy-6,meshy-7,meshy-7.1, olatest). I modelli low-poly e Smart Topology (meshy-t2) non sono supportati. Un modello con texture è accettato, e la sua texture non viene riportata nel risultato.
- Name
- mode
- Type
- string
- predefinito auto
- Description
Come il modello viene diviso in parti.
Valori disponibili:
auto: Meshy scegli i tagli.promptviene ignorato.by_parts: Taglia lungo le parti strutturali che nomini inprompt, come testa, braccia e torso.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. I confini delle regioni di colore provengono dall'immagine di origine, non dalla texture del modello di input. Per Multi-immagine in 3D, Auto Split usa la prima immagine di origine.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Obbligatorio
- Description
Descrive le parti in cui dividere, 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. Nominare una singola parte va bene: tutto ciò che non hai nominato diventa una parte rimanente, quindithe headdivide il modello in testa e resto, come nell'app web. Fino a 600 caratteri. Due modalità di fallimento: una descrizione che non richiede alcuna divisione, o che nomina più di 10 parti, viene rifiutata con400e non viene addebitato nulla; una descrizione che Meshy non riesce a interpretare per nulla ricade suauto, l'attività viene comunque eseguita ed addebitata, e la sua risposta riportaprompt_ignored: true.
- Name
- target_formats
- Type
- array
- predefinito ["glb"]
- Description
Formati in cui esportare il modello diviso. I formati che supportano oggetti di scena (
glb,obj,fbx,usdz,blend,3mf) portano ogni parte come oggetto separato;stlnon ha il concetto di oggetti separati, quindi fonde ogni parte in un unico solido disposto secondolayout(richiedi3mfper parti selezionabili separatamente in uno slicer).glbviene sempre prodotto e restituito inmodel_urls; elenca qualsiasi altro formato che desideri in aggiunta.Valori disponibili:
glb,obj,fbx,stl,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 rimangono dove le aveva il modello di origine.on_plate: Le parti vengono adagiate piatte e distribuite sul piano di stampa, pronte per lo slicing — la stessa disposizione della vista On Plate dell'app web.
In entrambe le disposizioni una scheggia collassata o un frammento simile a un punto rimasto da un taglio viene rimosso prima dell'esportazione, così ogni parte che ottieni è stampabile. I formati che supportano oggetti di scena contengono un oggetto per parte;
stlli fonde in un unico solido.
- Name
- connectors
- Type
- boolean
- predefinito false
- Description
Aggiunge connettori a incastro (maschio-femmina) 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.
Risultati 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 era inaccettabile. Cause comuni:
- Prompt mancante:
promptè obbligatorio quandomodeèby_partsoby_color. - Il prompt non descrive alcuna divisione, o troppe parti:
by_parts/by_coloraccetta da 1 a 10 pezzi nominati. Una descrizione che chiede di mantenere il modello in un solo pezzo, o che nomina più di 10 parti, viene 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. - Nessuna immagine di riferimento:
by_colorrichiede un input generato da un'immagine caricata. - 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 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 divisione basata su prompt (
by_partseby_color) è temporaneamente non disponibile. Riprova più tardi, oppure usamode: "auto", che non è influenzato. 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 task di Auto Split
Questo endpoint recupera un task di Auto Split tramite il suo ID.
Parametri
- Name
- id
- Type
- path
- Description
L'ID del task di Auto Split da recuperare.
Valori restituiti
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à di Auto Split
Questo endpoint elimina definitivamente un'attività di 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à di Auto Split da eliminare.
Stato dell'attività
Un'attività ancora in stato PENDING viene eliminata e i crediti consumati
al momento della creazione vengono rimborsati.
Un'attività già in stato IN_PROGRESS non può essere eliminata: la
richiesta viene rifiutata con 409 Conflict e l'attività continua a essere
eseguita. I crediti di un'attività già avviata dal worker non sono
rimborsabili, quindi eliminarla a metà esecuzione ti farebbe perdere sia i
crediti sia il risultato. Attendi che raggiunga lo stato SUCCEEDED,
FAILED o CANCELED, quindi eliminala.
Un'attività in uno stato finale (SUCCEEDED, FAILED o CANCELED) viene
eliminata senza alcun rimborso.
Valori restituiti
Restituisce 200 OK in caso di successo, oppure 409 Conflict quando
l'attività è in stato IN_PROGRESS.
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
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
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; i valori più grandi 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à 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
}
]
Trasmetti in streaming un'attività di Auto Split
Questo endpoint trasmette in streaming aggiornamenti in tempo reale per un'attività di Auto Split utilizzando Server-Sent Events (SSE).
Parametri
- Name
- id
- Type
- path
- Description
Identificatore univoco dell'attività di Auto Split da trasmettere in streaming.
Restituisce
Restituisce un flusso di The Auto Split Task Objects come Server-Sent Events.
Ogni evento message trasporta l'intero oggetto attività così 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 e part_count compaiono una volta raggiunto lo stato SUCCEEDED. Un evento error trasporta solo status_code e message, quindi effettua la ramificazione in base al 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 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 valorizzati per uno split e non vengono restituiti. Le proprietà che si popolano 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 per il task. Sebbene per gli id dei task utilizziamo un UUID k-sortable come dettaglio implementativo, 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 ogni formato richiesto. I formati che supportano oggetti scena mantengono ciascuna parte come oggetto separato;
stlle fonde in un unico solido. 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
stl- Type
- string
- Description
URL scaricabile per il modello suddiviso in formato STL. Tutte le parti vengono fuse in un unico solido; richiedi
3mfper avere parti selezionabili separatamente.
- 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 ciascuna parte in un colore distinto, nel
layoutrichiesto.
- Name
- prompt_ignored
- Type
- boolean
- Description
truequando ilpromptdi una richiestaby_partsoby_colornon nominava 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 prodotte dallo split. I formati che supportano oggetti scena contengono un oggetto per ogni parte;
stlle fonde in un unico solido, ma il conteggio continua a riportare le parti. 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 è andato a buon fine, diventerà100.
- Name
- status
- Type
- string
- Description
Stato del task. I possibili valori 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 è terminato, 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. Eliminare un task mentre è ancoraPENDINGlo rimborsa anch'esso.
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
}