Auto Split API

Teile ein 3D-Modell in separat druckbare Teile auf – automatisch, nach von dir benannten Teilen oder nach Farbregion – mit optionalen Verbindern; dünne Bereiche, die durch einen Schnitt entstehen, werden immer verstärkt, damit jedes Teil massiv gedruckt wird.


POST/openapi/v1/print/split

Auto Split-Task erstellen

Dieser Endpunkt erstellt einen neuen Auto Split-Task. Der Task schneidet das Modell eines vorherigen Tasks in separat druckbare Teile und gibt das segmentierte Modell zurück, wobei jedes Teil ein eigenes Objekt in der Datei ist.

Parameter

  • Name
    input_task_id
    Type
    string
    Erforderlich
    Description

    Die ID eines erfolgreichen Tasks, dessen Modell aufgeteilt werden soll. Unterstützte Task-Typen: Bild zu 3D, Multi-Bild zu 3D, Text zu 3D (Vorschau), Neuvernetzung, Konvertieren und Größe ändern. Der Task muss den Status SUCCEEDED haben, und sein Modell muss mit Meshy 6 oder Meshy 7 generiert worden sein (ai_model meshy-6, meshy-7 oder latest). Low-Poly- und Smart Topology-Modelle (meshy-t2) werden nicht unterstützt.

  • Name
    mode
    Type
    string
    Standard auto
    Description

    Wie das Modell in Teile aufgeteilt wird.

    Verfügbare Werte:

    • auto: Meshy wählt die Schnitte. prompt wird ignoriert.
    • by_parts: Schneidet entlang der strukturellen Teile, die Sie in prompt benennen, wie Kopf, Arme und Rumpf.
    • by_color: Schneidet entlang der Farbbereiche, die Sie in prompt benennen. Erfordert eine Eingabe, die aus einem hochgeladenen Bild generiert wurde (Bild zu 3D oder Multi-Bild zu 3D); andere Eingaben werden mit 400 abgelehnt.
Gilt nur wenn mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    Erforderlich
    Description

    Beschreibt die Teile, in die aufgeteilt werden soll, in beliebiger Sprache. Meshy liest daraus 1 bis 10 Teilnamen, also benennen Sie die Stücke, anstatt das Modell zu beschreiben — zum Beispiel split into the figure and the base oder head, torso, left arm, right arm, legs. Bis zu 600 Zeichen. Zwei Fehlerarten: Eine Beschreibung, die wie eine Aufteilung klingt, aber weniger als zwei Teile benennt (zum Beispiel split into individual parts), wird mit 400 abgelehnt und nichts wird berechnet; eine Beschreibung, die Meshy überhaupt nicht lesen kann, fällt auf auto zurück, der Task läuft trotzdem und wird berechnet, und seine Antwort enthält prompt_ignored: true.

  • Name
    target_formats
    Type
    array
    Standard ["glb"]
    Description

    Formate, in denen das aufgeteilte Modell exportiert werden soll. Jedes Teil ist ein separates Objekt in jedem Format. glb wird immer erzeugt und in model_urls zurückgegeben; listen Sie zusätzlich alle weiteren gewünschten Formate auf.

    Verfügbare Werte: glb, obj, fbx, usdz, blend, 3mf.

  • Name
    layout
    Type
    string
    Standard assembled
    Description

    Wie die Teile in jedem Ausgabeformat und in der Miniaturansicht angeordnet werden.

    Verfügbare Werte:

    • assembled: Die Teile bleiben dort, wo sie im Ausgangsmodell waren.
    • on_plate: Die Teile werden flach ausgelegt und auf der Druckplatte verteilt, bereit zum Slicen — dieselbe Anordnung wie die On Plate-Ansicht der Web-App.

    In beiden Layouts enthalten die exportierten Dateien pro Teil genau ein Objekt und sonst nichts: Ein zusammengefallener Splitter oder ein punktartiges Reststück eines Schnitts wird vor dem Export entfernt, sodass jedes Objekt, das Sie in der Datei finden, druckbar ist.

  • Name
    connectors
    Type
    boolean
    Standard false
    Description

    Fügt an jedem Schnitt Zapfen-Verbinder (mortise-and-tenon) hinzu, damit die gedruckten Teile zusammenpassen.

Gilt nur wenn connectors = true
  • Name
    connector_type
    Type
    string
    Standard cube
    Description

    Die Form des Verbinders an jeder Schnittfläche.

    Verfügbare Werte: cube, cylinder.

  • Name
    connector_size
    Type
    number
    Standard 0.5
    Description

    Verbindergröße relativ zur Schnittfläche.

    Gültiger Bereich: 0.1 bis 0.8.

  • Name
    connector_height
    Type
    number
    Standard 0.1
    Description

    Wie weit der Verbinder von der Schnittfläche absteht, relativ zur Schnittfläche.

    Gültiger Bereich: 0.1 bis 0.8.

Rückgabewerte

Die result-Eigenschaft der Antwort enthält die id des neu erstellten Auto Split-Tasks.

Fehlerarten

  • Name
    400 - Bad Request
    Description

    Die Anfrage war nicht akzeptabel. Häufige Ursachen:

    • Fehlender prompt: prompt ist erforderlich, wenn mode by_parts oder by_color ist.
    • Prompt benennt weniger als zwei Teile: by_parts / by_color benötigt mindestens zwei benannte Teile (zum Beispiel head, torso, base); eine allgemeine Anweisung wie split into individual parts wird abgelehnt. Es wird nichts berechnet.
    • Nicht unterstützter Eingabe-Task: Die input_task_id muss sich auf einen erfolgreichen Task eines unterstützten Typs beziehen, der mit Meshy 6 oder Meshy 7 generiert wurde.
    • Texturierte Eingabe: Das Eingabemodell hat Texturen. Derzeit werden nur unt exturierte Modelle unterstützt.
    • Kein Referenzbild: by_color erfordert eine Eingabe, die aus einem hochgeladenen Bild generiert wurde.
    • Nicht unterstütztes Format: target_formats enthält stl.
    • Verbinder außerhalb des Bereichs: connector_size oder connector_height liegt außerhalb von 0.1 bis 0.8.
  • Name
    401 - Unauthorized
    Description

    Die Authentifizierung ist fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.

  • Name
    402 - Payment Required
    Description

    Unzureichende Credits, um diesen Task auszuführen.

  • Name
    404 - Not Found
    Description

    Die input_task_id existiert nicht oder gehört nicht zu Ihrem Konto.

  • Name
    429 - Too Many Requests
    Description

    Sie haben Ihre Ratenbegrenzung überschritten. by_parts- und by_color-Anfragen teilen sich zusätzlich ein Prompt-Parsing-Limit von 12 Anfragen pro Minute und Konto.

  • Name
    503 - Service Unavailable
    Description

    Prompt-basierte Aufteilung (by_parts und by_color) ist vorübergehend nicht verfügbar. Versuchen Sie es später erneut, oder verwenden Sie mode: "auto", das davon nicht betroffen ist. Es wird nichts berechnet.

Request

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

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

Auto Split-Task abrufen

Dieser Endpunkt ruft einen Auto Split-Task anhand seiner ID ab.

Parameter

  • Name
    id
    Type
    path
    Description

    Die ID des abzurufenden Auto Split-Tasks.

Rückgabewerte

Das Auto Split-Task-Objekt.

Request

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

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

Eine Auto-Split-Aufgabe löschen

Dieser Endpunkt löscht eine Auto-Split-Aufgabe dauerhaft, einschließlich aller zugehörigen Modelle und Daten. Diese Aktion ist unumkehrbar.

Pfadparameter

  • Name
    id
    Type
    path
    Description

    Die ID der zu löschenden Auto-Split-Aufgabe.

Rückgabewerte

Gibt bei Erfolg 200 OK zurück.

Request

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

GET/openapi/v1/print/split

List Auto Split Tasks

Dieser Endpunkt ermöglicht es Ihnen, eine Liste von Auto Split-Aufgaben abzurufen.

Parameter

Optionale Attribute

  • Name
    page_num
    Type
    integer
    Description

    Seitennummer für die Paginierung. Beginnt bei und ist standardmäßig 1.

  • Name
    page_size
    Type
    integer
    Description

    Begrenzung der Seitengröße. Standardmäßig 10 Elemente. Maximal zulässig sind 100 Elemente; größere Werte werden auf 100 begrenzt.

  • Name
    sort_by
    Type
    string
    Description

    Feld, nach dem sortiert werden soll. Verfügbare Werte:

    • +created_at: Sortierung nach Erstellungszeit in aufsteigender Reihenfolge.
    • -created_at: Sortierung nach Erstellungszeit in absteigender Reihenfolge.

Rückgabewerte

Gibt eine paginierte Liste der Auto Split Task-Objekte zurück.

Request

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

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

Streamen eines Auto-Split-Tasks

Dieser Endpunkt streamt Echtzeit-Updates für einen Auto-Split-Task mittels Server-Sent Events (SSE).

Parameter

  • Name
    id
    Type
    path
    Description

    Eindeutige Kennung des Auto-Split-Tasks, der gestreamt werden soll.

Rückgabe

Gibt einen Stream von Auto-Split-Task-Objekten als Server-Sent Events zurück.

Jedes message-Ereignis enthält das vollständige Task-Objekt, wie es von Abrufen eines Auto-Split-Tasks zurückgegeben wird, einschließlich consumed_credits, der Zeitstempel und prompt_ignored; solange der Task PENDING oder IN_PROGRESS ist, ändern sich zwischen den Frames die Felder progress, status, started_at und preceding_tasks, und model_urls, thumbnail_url, part_count sowie parts erscheinen, sobald der Status SUCCEEDED erreicht wird. Ein error-Ereignis enthält nur status_code und message. Verzweigen Sie daher anhand des Ereignisnamens, bevor Sie status lesen.

Request

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

Das Auto-Split-Task-Objekt

Ein Auto-Split-Task enthält ausschließlich die unten aufgeführten Eigenschaften. Die Felder für den Generierungs-Prompt, die andere Task-Objekte enthalten (name, object_prompt, texture_prompt und so weiter), das einzelne model_url sowie texture_urls werden bei einem Split niemals befüllt und nicht zurückgegeben. Eigenschaften, die sich während der Ausführung des Tasks füllen (thumbnail_url, model_urls, die Zeitstempel), sind immer vorhanden, bis sie einen Wert erhalten leer, sodass sich die Menge der Schlüssel zwischen PENDING und SUCCEEDED nicht ändert.

  • Name
    id
    Type
    string
    Description

    Eindeutige Kennung für den Task. Auch wenn wir als Implementierungsdetail eine k-sortierbare UUID für Task-IDs verwenden, solltest du keine Annahmen über das Format der ID treffen.

  • Name
    type
    Type
    string
    Description

    Typ des Tasks. Der Wert ist print-split.

  • Name
    model_urls
    Type
    object
    Description

    Herunterladbare URLs zum aufgeteilten Modell, eine pro angeforderten Format. Jedes Teil ist ein eigenes Objekt in der Datei. Die Eigenschaft für ein Format wird ausgelassen, wenn das Format nicht angefordert wurde.

    • Name
      glb
      Type
      string
      Description

      Herunterladbare URL zum aufgeteilten Modell im GLB-Format.

    • Name
      obj
      Type
      string
      Description

      Herunterladbare URL zum aufgeteilten Modell im OBJ-Format.

    • Name
      fbx
      Type
      string
      Description

      Herunterladbare URL zum aufgeteilten Modell im FBX-Format.

    • Name
      usdz
      Type
      string
      Description

      Herunterladbare URL zum aufgeteilten Modell im USDZ-Format.

    • Name
      blend
      Type
      string
      Description

      Herunterladbare URL zum aufgeteilten Modell im Blender-Format.

    • Name
      3mf
      Type
      string
      Description

      Herunterladbare URL zum aufgeteilten Modell im 3MF-Format.

  • Name
    thumbnail_url
    Type
    string
    Description

    Herunterladbare URL zu einer gerenderten Vorschau des aufgeteilten Modells, mit jedem Teil in einer eigenen Farbe, im angeforderten layout.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true, wenn im prompt einer by_parts- oder by_color-Anfrage keine Teile benannt wurden und Meshy das Modell deshalb stattdessen automatisch aufgeteilt hat — die Teilnamen im Ergebnis stammen dann von Meshy, nicht von dir. Vorhanden ab PENDING. Wird bei auto-Tasks und immer dann ausgelassen, wenn der Prompt befolgt wurde.

  • Name
    part_count
    Type
    integer
    Description

    Anzahl der druckbaren Teile im aufgeteilten Modell — eines pro Objekt in den exportierten Dateien. Kollabierte Splitter, die die Segmentierung nicht in ein druckbares Teil umwandeln konnte, werden vor dem Export aus den Dateien entfernt und nicht mitgezählt.

  • Name
    progress
    Type
    integer
    Description

    Fortschritt des Tasks. Wenn der Task noch nicht gestartet ist, ist diese Eigenschaft 0. Sobald der Task erfolgreich war, wird sie 100.

  • Name
    status
    Type
    string
    Description

    Status des Tasks. Mögliche Werte sind PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Die Anzahl der vorausgehenden Tasks.

  • Name
    created_at
    Type
    timestamp
    Description

    Zeitstempel, wann der Task erstellt wurde, in Millisekunden.

  • Name
    started_at
    Type
    timestamp
    Description

    Zeitstempel, wann der Task gestartet wurde, in Millisekunden. Wenn der Task noch nicht gestartet ist, ist diese Eigenschaft 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Zeitstempel, wann der Task beendet wurde, in Millisekunden. Wenn der Task noch nicht beendet ist, ist diese Eigenschaft 0.

  • Name
    task_error
    Type
    object
    Description

    Fehlerdetails für fehlgeschlagene Tasks. Siehe Fehler für die vollständige Referenz des task_error-Objekts.

  • Name
    consumed_credits
    Type
    integer
    Description

    Die Anzahl der von diesem Task verbrauchten Credits. Immer vorhanden: 10, sobald der Task angenommen wurde, und 0 bei FAILED-Tasks, da die Belastung bei einem Fehlschlag rückerstattet wird. Das Löschen eines Tasks, während er sich noch im Status PENDING befindet, führt ebenfalls zu einer Rückerstattung.

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
}