Auto Split API
Teilt ein 3D-Modell in separat druckbare Teile auf — automatisch, nach von Ihnen benannten Teilen oder nach Farbregionen — mit optionalen Verbindern; dünne Bereiche, die durch einen Schnitt entstehen, werden stets verstärkt, damit jedes Teil massiv gedruckt wird.
Das Split-Ergebnis behält die Eingabe-Textur nicht bei. Auto Split akzeptiert texturierte Eingaben, sodass Sie das Modell nicht mit should_texture: false neu generieren müssen. Es baut die geschnittenen Teile neu auf und weist jedem davon eine einheitliche Vertexfarbe zu; keine Eingabe-Texturkarte wird in ein exportiertes Format übernommen.
Create an Auto Split Task
Dieser Endpunkt erstellt einen neuen Auto Split-Task. Der Task zerschneidet das Modell eines vorherigen Tasks in separat druckbare Teile und gibt das segmentierte Modell zurück, wobei jedes Teil als eigenes Objekt in der Datei vorliegt.
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
SUCCEEDEDhaben, und sein Modell muss mit Meshy 6 oder Meshy 7 erzeugt worden sein (ai_modelmeshy-6,meshy-7,meshy-7.1oderlatest). Low-Poly- und Smart Topology-Modelle (meshy-t2) werden nicht unterstützt. Ein texturiertes Modell wird akzeptiert, seine Textur wird jedoch nicht in das Ergebnis übernommen.
- Name
- mode
- Type
- string
- Standard auto
- Description
Wie das Modell in Teile zerlegt wird.
Verfügbare Werte:
auto: Meshy wählt die Schnitte.promptwird ignoriert.by_parts: Schneidet entlang der strukturellen Teile, die Sie inpromptbenennen, z. B. Kopf, Arme und Rumpf.by_color: Schneidet entlang der Farbregionen, die Sie inpromptbenennen. Erfordert eine Eingabe, die aus einem hochgeladenen Bild erzeugt wurde (Bild zu 3D oder Multi-Bild zu 3D); andere Eingaben werden mit400abgelehnt. Die Grenzen der Farbregionen stammen aus dem Ausgangsbild, nicht aus der Textur des Eingabemodells. Bei Multi-Bild zu 3D verwendet Auto Split das erste Ausgangsbild.
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 Teilenamen, benennen Sie also die Stücke, statt das Modell zu beschreiben – zum Beispiel
split into the figure and the baseoderhead, torso, left arm, right arm, legs. Auch die Nennung eines einzelnen Teils ist möglich: Alles, was nicht benannt wurde, wird zu einem verbleibenden Teil, sodassthe headdas Modell in Kopf und Rest aufteilt, genau wie in der Web-App. Bis zu 600 Zeichen. Zwei Fehlerfälle: Eine Beschreibung, die überhaupt keine Aufteilung verlangt, oder die mehr als 10 Teile benennt, wird mit400abgelehnt und es werden keine Credits berechnet; eine Beschreibung, die Meshy überhaupt nicht lesen kann, fällt aufautozurück, der Task läuft trotzdem und wird berechnet, und seine Antwort enthältprompt_ignored: true.
- Name
- target_formats
- Type
- array
- Standard ["glb"]
- Description
Formate, in denen das aufgeteilte Modell exportiert werden soll. Formate, die Szenenobjekte unterstützen (
glb,obj,fbx,usdz,blend,3mf), führen jedes Teil als separates Objekt;stlkennt kein Konzept separater Objekte und verschmilzt daher jedes Teil zu einem einzigen Festkörper, angeordnet gemäßlayout(fordern Sie3mfan, wenn Sie in einem Slicer separat auswählbare Teile möchten).glbwird immer erzeugt und inmodel_urlszurückgegeben; listen Sie zusätzlich weitere gewünschte Formate auf.Verfügbare Werte:
glb,obj,fbx,stl,usdz,blend,3mf.
- Name
- layout
- Type
- string
- Standard assembled
- Description
Wie die Teile in jedem Ausgabeformat sowie in der Miniaturansicht angeordnet werden.
Verfügbare Werte:
assembled: Die Teile bleiben an der Stelle, an der sie sich im Quellmodell befanden.on_plate: Die Teile werden flach hingelegt und auf dem Druckbett verteilt, bereit zum Slicen – dieselbe Anordnung wie die On-Plate-Ansicht der Web-App.
In beiden Layouts wird ein durch einen Schnitt entstandener, zusammengefallener Splitter oder ein punktartiges Reststück vor dem Export entfernt, sodass jedes Teil, das Sie erhalten, druckbar ist. Formate, die Szenenobjekte unterstützen, enthalten ein Objekt pro Teil;
stlverschmilzt sie zu einem einzigen Festkörper.
- Name
- connectors
- Type
- boolean
- Standard false
- Description
Fügt an jedem Schnitt Zapfen-und-Nut-Verbinder hinzu, damit die gedruckten Teile zusammenpassen.
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.1bis0.8.
- Name
- connector_height
- Type
- number
- Standard 0.1
- Description
Wie weit sich der Verbinder von der Schnittfläche ausgehend erstreckt, relativ zur Schnittfläche.
Gültiger Bereich:
0.1bis0.8.
Rückgabewerte
Die result-Eigenschaft der Antwort enthält die id des neu erstellten Auto Split-Tasks.
Fehlerfälle
- Name
400 - Bad Request- Description
Die Anfrage war nicht akzeptabel. Häufige Ursachen:
- Fehlender Prompt:
promptist erforderlich, wennmodegleichby_partsoderby_colorist. - Prompt beschreibt keine Aufteilung oder zu viele Teile:
by_parts/by_colorakzeptiert 1 bis 10 benannte Stücke. Eine Beschreibung, die verlangt, das Modell als ein Stück zu belassen, oder die mehr als 10 Teile benennt, wird abgelehnt. Es werden keine Credits berechnet. - Nicht unterstützter Eingabe-Task:
input_task_idmuss sich auf einen erfolgreichen Task eines unterstützten Typs beziehen, der mit Meshy 6 oder Meshy 7 erzeugt wurde. - Kein Referenzbild:
by_colorerfordert eine Eingabe, die aus einem hochgeladenen Bild erzeugt wurde. - Verbinderwert außerhalb des Bereichs:
connector_sizeoderconnector_heightliegt außerhalb von0.1bis0.8.
- Fehlender Prompt:
- Name
401 - Unauthorized- Description
Die Authentifizierung ist fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.
- Name
402 - Payment Required- Description
Nicht genügend Credits, um diesen Task auszuführen.
- Name
404 - Not Found- Description
Die
input_task_idexistiert nicht oder gehört nicht zu Ihrem Konto.
- Name
429 - Too Many Requests- Description
Sie haben Ihre Ratenbegrenzung überschritten.
by_parts- undby_color-Anfragen teilen sich außerdem ein Prompt-Parsing-Limit von 12 Anfragen pro Minute und Konto.
- Name
503 - Service Unavailable- Description
Das promptbasierte Aufteilen (
by_partsundby_color) ist vorübergehend nicht verfügbar. Versuchen Sie es später erneut, oder verwenden Siemode: "auto", das davon nicht betroffen ist. Es werden keine Credits berechnet.
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"
}
Einen 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
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
}
Einen Auto-Split-Task löschen
Dieser Endpunkt löscht einen Auto-Split-Task dauerhaft, einschließlich aller zugehörigen Modelle und Daten. Diese Aktion ist unwiderruflich.
Pfadparameter
- Name
- id
- Type
- path
- Description
Die ID des zu löschenden Auto-Split-Tasks.
Task-Status
Ein Task, der sich noch im Status PENDING befindet, wird gelöscht, und die
bei der Erstellung verbrauchten Credits werden erstattet.
Ein Task, der sich bereits im Status IN_PROGRESS befindet, kann nicht
gelöscht werden: Die Anfrage wird mit 409 Conflict abgelehnt, und der Task
läuft weiter. Credits für einen Task, den der Worker bereits gestartet hat,
sind nicht erstattungsfähig, daher würde Sie das Löschen mitten im Ablauf
sowohl die Credits als auch das Ergebnis kosten. Warten Sie, bis der Status
SUCCEEDED, FAILED oder CANCELED erreicht ist, und löschen Sie ihn dann.
Ein Task in einem Endzustand (SUCCEEDED, FAILED oder CANCELED) wird
ohne Rückerstattung gelöscht.
Rückgabewerte
Gibt bei Erfolg 200 OK zurück, oder 409 Conflict, wenn sich der Task im
Status IN_PROGRESS befindet.
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."
}
List Auto Split Tasks
Dieser Endpunkt ermöglicht es Ihnen, eine Liste von Auto Split-Tasks abzurufen.
Parameter
Optionale Attribute
- Name
- page_num
- Type
- integer
- Description
Seitenzahl für die Paginierung. Beginnt bei und ist standardmäßig
1.
- Name
- page_size
- Type
- integer
- Description
Begrenzung der Seitengröße. Standardmäßig
10Elemente. Maximal zulässig sind100Elemente; größere Werte werden auf100begrenzt.
- 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 von Auto Split Task-Objekten zurück.
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
}
]
Auto Split Task streamen
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ückgabewerte
Gibt einen Stream von The Auto Split Task Objects als Server-Sent Events zurück.
Jedes message-Ereignis enthält das vollständige Task-Objekt, wie es von Retrieve an Auto Split Task zurückgegeben wird, einschließlich consumed_credits, der Zeitstempel und prompt_ignored; solange der Task PENDING oder IN_PROGRESS ist, ändern sich die Felder progress, status, started_at und preceding_tasks zwischen den Frames, und model_urls, thumbnail_url und part_count erscheinen, sobald der Status SUCCEEDED erreicht ist. Ein error-Ereignis enthält nur status_code und message, daher sollte anhand des Ereignisnamens verzweigt werden, bevor status ausgelesen wird.
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
}
Das Auto Split Task-Objekt
Ein Auto Split Task enthält nur die unten aufgeführten Eigenschaften. Die Prompt-bezogenen Felder, die andere Task-Objekte enthalten (name, object_prompt, texture_prompt usw.), das einzelne model_url sowie texture_urls werden bei einem Split nie 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, bleiben aber leer, bis sie einen Wert haben – die Menge der Schlüssel ändert sich also zwischen PENDING und SUCCEEDED nicht.
- Name
- id
- Type
- string
- Description
Eindeutiger Bezeichner für den Task. Zwar verwenden wir als Implementierungsdetail eine k-sortierbare UUID für Task-IDs, du solltest jedoch 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. Formate, die Szenenobjekte unterstützen, behalten jeden Teil als separates Objekt bei;
stlverschmilzt sie zu einem einzigen Volumenkörper. 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
stl- Type
- string
- Description
Herunterladbare URL zum aufgeteilten Modell im STL-Format. Alle Teile werden zu einem einzigen Volumenkörper verschmolzen; fordere
3mfan, um einzeln auswählbare Teile zu erhalten.
- 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 bei einerby_parts- oderby_color-Anfrage derpromptkeine Teile benannt hat, sodass Meshy das Modell stattdessen automatisch aufgeteilt hat – die Teilenamen im Ergebnis stammen dann von Meshy, nicht von dir. AbPENDINGvorhanden. Wird beiauto-Tasks und immer dann ausgelassen, wenn der Prompt befolgt wurde.
- Name
- part_count
- Type
- integer
- Description
Anzahl der druckbaren Teile, die der Split erzeugt hat. Formate, die Szenenobjekte unterstützen, enthalten ein Objekt pro Teil;
stlverschmilzt sie zu einem einzigen Volumenkörper, wobei die Anzahl weiterhin die Teile angibt. Kollabierte Splitter, aus denen die Segmentierung kein druckbares Stück machen 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 wurde, ist diese Eigenschaft
0. Sobald der Task erfolgreich war, wird dieser Wert100.
- 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.
Der Wert dieses Feldes ist nur dann aussagekräftig, wenn der Task-Status
PENDINGist.
- 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 wurde, ist diese Eigenschaft
0.
- Name
- finished_at
- Type
- timestamp
- Description
Zeitstempel, wann der Task beendet wurde, in Millisekunden. Wenn der Task noch nicht beendet wurde, 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, und0beiFAILED-Tasks, da die Belastung bei einem Fehlschlag rückerstattet wird. Das Löschen eines Tasks, während er sich noch inPENDINGbefindet, erstattet ihn ebenfalls zurück.
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
}