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.


POST/openapi/v1/print/split

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_model meshy-6, meshy-7, meshy-7.1, o latest). 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. prompt viene ignorato.
    • by_parts: Taglia lungo le parti strutturali che nomini in prompt, come testa, braccia e torso.
    • by_color: Taglia lungo le regioni di colore che nomini in prompt. Richiede un input generato da un'immagine caricata (Immagine in 3D o Multi-immagine in 3D); altri input vengono rifiutati con 400. 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.
Si applica solo quando 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, oppure head, torso, left arm, right arm, legs. Nominare una singola parte va bene: tutto ciò che non hai nominato diventa una parte rimanente, quindi the head divide 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 con 400 e non viene addebitato nulla; una descrizione che Meshy non riesce a interpretare per nulla ricade su auto, l'attività viene comunque eseguita ed addebitata, e la sua risposta riporta prompt_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; stl non ha il concetto di oggetti separati, quindi fonde ogni parte in un unico solido disposto secondo layout (richiedi 3mf per parti selezionabili separatamente in uno slicer). glb viene sempre prodotto e restituito in model_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; stl li 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.

Si applica solo quando 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.1 a 0.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.1 a 0.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 quando mode è by_parts o by_color.
    • Il prompt non descrive alcuna divisione, o troppe parti: by_parts / by_color accetta 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_id deve fare riferimento a un'attività riuscita di un tipo supportato, generata con Meshy 6 o Meshy 7.
    • Nessuna immagine di riferimento: by_color richiede un input generato da un'immagine caricata.
    • Connettore fuori intervallo: connector_size o connector_height è fuori dall'intervallo 0.1 - 0.8.
  • 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_id non esiste o non appartiene al tuo account.

  • Name
    429 - Too Many Requests
    Description

    Hai superato il tuo limite di frequenza. Le richieste by_parts e by_color condividono 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_parts e by_color) è temporaneamente non disponibile. Riprova più tardi, oppure usa mode: "auto", che non è influenzato. Non viene addebitato nulla.

Request

POST
/openapi/v1/print/split
# 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"
}

GET/openapi/v1/print/split/:id

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

GET
/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f
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
}

DELETE/openapi/v1/print/split/:id

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

DELETE
/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f
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."
}

GET/openapi/v1/print/split

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 è 10 elementi. Il massimo consentito è 100 elementi; i valori più grandi vengono limitati a 100.

  • 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

GET
/openapi/v1/print/split
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
  }
]

GET/openapi/v1/print/split/:id/stream

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

GET
/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
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; stl le 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 3mf per 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 layout richiesto.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true quando il prompt di una richiesta by_parts o by_color non 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 da PENDING. Omesso per i task auto e 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; stl le 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.

  • 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: 10 una volta che il task è stato accettato, e 0 per i task FAILED perché l'addebito viene rimborsato in caso di fallimento. Eliminare un task mentre è ancora PENDING lo 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
}