Auto Split API
Dela upp en 3D-modell i separat utskrivbara delar — automatiskt, efter delar du namnger, eller efter färgregion — med valfria kopplingar; tunna regioner som lämnas kvar av ett snitt förstärks alltid så att varje del skrivs ut solid.
Auto Split stöder för närvarande endast otexturerade modeller. För Bild till 3D och Flera bilder till 3D, generera indata med should_texture inställt på false. Indata med textur avvisas med 400. Stöd för texturer är progress.
Skapa en Auto Split-uppgift
Denna endpoint skapar en ny Auto Split-uppgift. Uppgiften skär modellen från en tidigare uppgift i separat utskrivbara delar och returnerar den segmenterade modellen, där varje del är ett eget objekt i filen.
Parametrar
- Name
- input_task_id
- Type
- string
- Obligatorisk
- Description
ID:t för en lyckad uppgift vars modell ska delas upp. Uppgiftstyper som stöds: Bild till 3D, Flera bilder till 3D, Text till 3D (förhandsgranskning), Remesh, Konvertera och Ändra storlek. Uppgiften måste ha status
SUCCEEDED, och dess modell måste ha genererats med Meshy 6 eller Meshy 7 (ai_modelmeshy-6,meshy-7ellerlatest). Low-poly- och Smart Topology-modeller (meshy-t2) stöds inte.
- Name
- mode
- Type
- string
- standard auto
- Description
Hur modellen delas upp i delar.
Tillgängliga värden:
auto: Meshy väljer skärningarna.promptignoreras.by_parts: Skär längs de strukturella delar du namnger iprompt, till exempel huvud, armar och bål.by_color: Skär längs de färgområden du namnger iprompt. Kräver en indata som genererats från en uppladdad bild (Bild till 3D eller Flera bilder till 3D); andra indata avvisas med400.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Obligatorisk
- Description
Beskriver delarna att dela upp i, på valfritt språk. Meshy läser 1 till 10 delnamn från den, så namnge delarna istället för att beskriva modellen — till exempel
split into the figure and the base, ellerhead, torso, left arm, right arm, legs. Upp till 600 tecken. Två typer av fel: en beskrivning som läses som en uppdelning men namnger färre än två delar (till exempelsplit into individual parts) avvisas med400och inget debiteras; en beskrivning som Meshy inte kan tolka alls faller tillbaka tillauto, uppgiften körs ändå och debiteras, och dess svar innehållerprompt_ignored: true.
- Name
- target_formats
- Type
- array
- standard ["glb"]
- Description
Format att exportera den uppdelade modellen i. Varje del är ett separat objekt i varje format.
glbproduceras alltid och returneras imodel_urls; ange övriga format du också vill ha.Tillgängliga värden:
glb,obj,fbx,usdz,blend,3mf.3mfskrivs för slicers: ett objekt per del, var och en på sin egen filamentplats, så att Bambu Studio öppnar filen som individuellt färgade, separat valbara delar (arkivet innehåller en Bambu Studio-projektkonfiguration; andra slicers läser geometrin). Liksom Meshys övriga utskriftsformat anges den i millimeter, och eftersom denna endpoint inte tar någon målstorlek, skalas hela modellen så att dess längsta sida blir 150 mm — samma gräns som de andra utskriftsformatens exporter använder, vald för att passa alla vanliga byggplattor. Medlayout: "on_plate"gäller gränsen hela den utlagda plattan, så att filen är redo att skäras (slice); medassembledplaceras delarna där källmodellen hade dem, och du arrangerar dem själv i slicern.stlstöds inte eftersom formatet inte kan innehålla separata delar.
- Name
- layout
- Type
- string
- standard assembled
- Description
Hur delarna arrangeras i varje utdataformat, och i miniatyrbilden.
Tillgängliga värden:
assembled: Delarna förblir där källmodellen hade dem.on_plate: Delarna läggs platt och utspridda på byggplattan, redo att skäras (slice) — samma arrangemang som webbappens On Plate-vy.
I båda layouterna innehåller de exporterade filerna ett objekt per del och inget annat: en hopfallen flisa eller punktliknande bit som blir kvar efter en skärning tas bort före export, så att varje objekt du hittar i filen är utskrivbart.
- Name
- connectors
- Type
- boolean
- standard false
- Description
Lägger till tapp-och-hål-kopplingar (mortise-and-tenon) vid varje skärning så att de utskrivna delarna passar ihop.
connectors = true- Name
- connector_type
- Type
- string
- standard cube
- Description
Formen på kopplingen vid varje skärningsyta.
Tillgängliga värden:
cube,cylinder.
- Name
- connector_size
- Type
- number
- standard 0.5
- Description
Kopplingens storlek i förhållande till skärningsytan.
Giltigt intervall:
0.1till0.8.
- Name
- connector_height
- Type
- number
- standard 0.1
- Description
Hur långt kopplingen sträcker sig ut från skärningsytan, i förhållande till skärningsytan.
Giltigt intervall:
0.1till0.8.
Returer
Egenskapen result i svaret innehåller id för den nyskapade Auto Split-uppgiften.
Felscenarier
- Name
400 - Bad Request- Description
Begäran var oacceptabel. Vanliga orsaker:
- Saknad prompt:
promptkrävs närmodeärby_partsellerby_color. - Prompt namnger färre än två delar:
by_parts/by_colorkräver minst två namngivna delar (till exempelhead, torso, base); en generisk instruktion somsplit into individual partsavvisas. Inget debiteras. - Uppgiftstyp som inte stöds:
input_task_idmåste referera till en lyckad uppgift av en typ som stöds, genererad med Meshy 6 eller Meshy 7. - Texturerad indata: Indatamodellen har texturer. Endast otexturerade modeller stöds för närvarande.
- Ingen referensbild:
by_colorkräver en indata som genererats från en uppladdad bild. - Format som inte stöds:
target_formatsinnehållerstl. - Koppling utanför intervall:
connector_sizeellerconnector_heightligger utanför0.1till0.8.
- Saknad prompt:
- Name
401 - Unauthorized- Description
Autentiseringen misslyckades. Kontrollera din API-nyckel.
- Name
402 - Payment Required- Description
Otillräckliga credits för att utföra denna uppgift.
- Name
404 - Not Found- Description
input_task_idfinns inte eller tillhör inte ditt konto.
- Name
429 - Too Many Requests- Description
Du har överskridit din hastighetsgräns.
by_parts- ochby_color-förfrågningar delar även en gräns för prompt-tolkning på 12 förfrågningar per minut per konto.
- Name
503 - Service Unavailable- Description
Promptbaserad uppdelning (
by_partsochby_color) är tillfälligt otillgänglig. Försök igen senare, eller användmode: "auto", som inte påverkas. Inget debiteras.
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"
}
Hämta en Auto Split-uppgift
Denna endpoint hämtar en Auto Split-uppgift utifrån dess ID.
Parametrar
- Name
- id
- Type
- path
- Description
ID för den Auto Split-uppgift som ska hämtas.
Returnerar
Auto Split Task-objektet.
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
}
Ta bort en Auto Split-uppgift
Denna endpoint tar permanent bort en Auto Split-uppgift, inklusive alla tillhörande modeller och data. Denna åtgärd är oåterkallelig.
Sökvägsparametrar
- Name
- id
- Type
- path
- Description
ID:t för den Auto Split-uppgift som ska tas bort.
Returnerar
Returnerar 200 OK vid lyckad åtgärd.
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
// Returns 200 Ok on success.
Lista Auto Split-uppgifter
Denna endpoint låter dig hämta en lista över Auto Split-uppgifter.
Parametrar
Valfria attribut
- Name
- page_num
- Type
- integer
- Description
Sidnummer för paginering. Börjar på och har standardvärdet
1.
- Name
- page_size
- Type
- integer
- Description
Gräns för sidstorlek. Standardvärdet är
10objekt. Maximalt tillåtet är100objekt; större värden begränsas till100.
- Name
- sort_by
- Type
- string
- Description
Fält att sortera efter. Tillgängliga värden:
+created_at: Sortera efter skapandetid i stigande ordning.-created_at: Sortera efter skapandetid i fallande ordning.
Returvärden
Returnerar en paginerad lista med The Auto Split Task Objects.
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
}
]
Streama en Auto Split-uppgift
Denna endpoint strömmar realtidsuppdateringar för en Auto Split-uppgift med hjälp av Server-Sent Events (SSE).
Parametrar
- Name
- id
- Type
- path
- Description
Unik identifierare för den Auto Split-uppgift som ska strömmas.
Returer
Returnerar en ström av Auto Split Task-objekt som Server-Sent Events.
Varje message-händelse innehåller hela uppgiftsobjektet så som det returneras av Hämta en Auto Split-uppgift, inklusive consumed_credits, tidsstämplarna och prompt_ignored; medan uppgiften är PENDING eller IN_PROGRESS är fälten som ändras mellan bildrutorna progress, status, started_at och preceding_tasks, och model_urls, thumbnail_url, part_count och parts visas när den når SUCCEEDED. En error-händelse innehåller endast status_code och message, så gör en förgrening baserat på händelsenamnet innan du läser 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
}
Auto Split-uppgiftsobjektet
En Auto Split-uppgift innehåller endast egenskaperna nedan. De generationsprompt-fält som andra uppgiftsobjekt innehåller (name, object_prompt, texture_prompt med mera), den enskilda model_url, samt texture_urls, fylls aldrig i för en delning och returneras inte. Egenskaper som fylls i medan uppgiften körs (thumbnail_url, model_urls, tidsstämplarna) finns alltid med, tomma tills de får ett värde, så uppsättningen nycklar ändras inte mellan PENDING och SUCCEEDED.
- Name
- id
- Type
- string
- Description
Unik identifierare för uppgiften. Även om vi använder en k-sorterbar UUID för uppgifts-id:n som implementationsdetalj bör du inte göra några antaganden om formatet på id:t.
- Name
- type
- Type
- string
- Description
Typ av uppgift. Värdet är
print-split.
- Name
- model_urls
- Type
- object
- Description
Nedladdningsbara URL:er till den delade modellen, en per begärt format. Varje del är ett separat objekt i filen. Egenskapen för ett format utelämnas om formatet inte begärdes.
- Name
glb- Type
- string
- Description
Nedladdningsbar URL till den delade modellen i GLB-format.
- Name
obj- Type
- string
- Description
Nedladdningsbar URL till den delade modellen i OBJ-format.
- Name
fbx- Type
- string
- Description
Nedladdningsbar URL till den delade modellen i FBX-format.
- Name
usdz- Type
- string
- Description
Nedladdningsbar URL till den delade modellen i USDZ-format.
- Name
blend- Type
- string
- Description
Nedladdningsbar URL till den delade modellen i Blender-format.
- Name
3mf- Type
- string
- Description
Nedladdningsbar URL till den delade modellen i 3MF-format: ett objekt per del, var och en på sin egen filamentplats, i millimeter, skalat så att den längsta sidan är 150 mm, med en Bambu Studio-projektkonfiguration.
- Name
- thumbnail_url
- Type
- string
- Description
Nedladdningsbar URL till en renderad förhandsvisning av den delade modellen, med varje del i en distinkt färg, i den begärda
layout.
- Name
- prompt_ignored
- Type
- boolean
- Description
truenär enby_parts- ellerby_color-förfråganspromptinte namngav några delar, så att Meshy delade modellen automatiskt istället — delnamnen i resultatet är Meshys, inte dina. Finns med från och medPENDING. Utelämnas förauto-uppgifter och närhelst prompten följdes.
- Name
- part_count
- Type
- integer
- Description
Antal utskrivbara delar i den delade modellen — en per objekt i de exporterade filerna. Kollapsade skärvor som segmenteringen inte kunde omvandla till en utskrivbar del tas bort från filerna innan export och räknas inte.
- Name
- progress
- Type
- integer
- Description
Uppgiftens progress. Om uppgiften ännu inte har startat kommer denna egenskap att vara
0. När uppgiften har lyckats blir den100.
- Name
- status
- Type
- string
- Description
Uppgiftens status. Möjliga värden är ett av
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Antalet föregående uppgifter.
Värdet i detta fält är endast meningsfullt om uppgiftens status är
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiften skapades, i millisekunder.
- Name
- started_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiften startades, i millisekunder. Om uppgiften ännu inte har startat kommer denna egenskap att vara
0.
- Name
- finished_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiften slutfördes, i millisekunder. Om uppgiften ännu inte har slutförts kommer denna egenskap att vara
0.
- Name
- task_error
- Type
- object
- Description
Felinformation för misslyckade uppgifter. Se Fel för den fullständiga referensen till
task_error-objektet.
- Name
- consumed_credits
- Type
- integer
- Description
Antalet credits som förbrukats av denna uppgift. Finns alltid med:
10när uppgiften har accepterats, och0förFAILED-uppgifter eftersom avgiften återbetalas vid fel. Att ta bort en uppgift medan den fortfarande ärPENDINGåterbetalar den också.
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
}