Auto Split API
Rozdělte 3D model na samostatně tisknutelné díly — automaticky, podle vámi pojmenovaných částí nebo podle barevných oblastí — s volitelnými spojovacími prvky; tenká místa, která po řezu zůstanou, jsou vždy vyztužena, aby se každý díl vytiskl jako plný.
Výsledek rozdělení nezachovává vstupní texturu. Auto Split přijímá vstupy s texturou, takže není nutné model znovu generovat s should_texture: false. Rozřezané díly přestaví a každému z nich přiřadí plochou barvu vrcholů; žádná vstupní textura se nepřenese do žádného exportovaného formátu.
Vytvoření úlohy Auto Split
Tento koncový bod vytvoří novou úlohu Auto Split. Úloha rozřeže model z předchozí úlohy na samostatně tisknutelné části a vrátí segmentovaný model, přičemž každá část je v souboru samostatným objektem.
Úloha běží na pozadí. Jak dlouho to obvykle trvá, se dozvíte v části Doby zpracování.
Parametry
- Name
- input_task_id
- Type
- string
- Povinné
- Description
ID úspěšné úlohy, jejíž model se má rozdělit. Podporované typy úloh: Obrázek na 3D, Více obrázků na 3D, Text na 3D (náhled), Remesh, Převést a Změnit velikost. Úloha musí mít status
SUCCEEDEDa její model musí být vygenerován pomocí Meshy 6 nebo Meshy 7 (ai_modelmeshy-6,meshy-7,meshy-7.1nebolatest). Modely typu low-poly a Smart Topology (meshy-t2,meshy-t2.5) nejsou podporovány. Model s texturou je přijímán, ale jeho textura se do výsledku nepřenáší.
- Name
- mode
- Type
- string
- výchozí auto
- Description
Jak se model rozdělí na části.
Dostupné hodnoty:
auto: Meshy zvolí řezy sám.promptje ignorován.by_parts: Rozřeže podél strukturálních částí, které uvedete vprompt, například hlava, paže a trup.by_color: Rozřeže podél barevných oblastí, které uvedete vprompt. Vyžaduje vstup vygenerovaný z nahraného obrázku (Obrázek na 3D nebo Více obrázků na 3D); ostatní vstupy jsou odmítnuty s chybou400. Hranice barevných oblastí vycházejí ze zdrojového obrázku, nikoli z textury vstupního modelu. U funkce Více obrázků na 3D používá Auto Split první zdrojový obrázek.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Povinné
- Description
Popisuje části, na které se má model rozdělit, v libovolném jazyce. Meshy z textu přečte 1 až 10 názvů částí, proto pojmenujte jednotlivé díly namísto popisu modelu jako celku, například
split into the figure and the base, nebohead, torso, left arm, right arm, legs. Je v pořádku pojmenovat i jen jednu část: vše, co nepojmenujete, se stane jednou zbývající částí, takžethe headrozdělí model na hlavu a zbytek, stejně jako ve webové aplikaci. Maximálně 600 znaků. Popis, který nežádá žádné rozdělení, nebo pojmenovává více než 10 částí, je odmítnut s chybou400a nic se neúčtuje. Pokud Meshy z popisu nedokáže vyčíst žádné názvy částí, rozdělí model podél částí, které identifikuje v referenčním obrázku modelu, a to ve zvoleném mode: úloha přesto proběhne a je zpoplatněna a nese příznakprompt_ignored: true. Pokud model nemá žádný referenční obrázek, nebo v něm Meshy najde méně než dvě části, je takový požadavek místo toho odmítnut s chybou400a nic se neúčtuje.
- Name
- target_formats
- Type
- array
- výchozí ["glb"]
- Description
Formáty, ve kterých se rozdělený model exportuje. Formáty podporující scénové objekty (
glb,obj,fbx,usdz,blend,3mf) nesou každou část jako samostatný objekt;stlpojem samostatných objektů nezná, proto sloučí všechny části do jednoho pevného tělesa uspořádaného podlelayout(pro samostatně vybíratelné části ve slicer požadujte3mf).glbse vytváří vždy a vrací se vmodel_urls; jakékoli další požadované formáty uveďte navíc.Dostupné hodnoty:
glb,obj,fbx,stl,usdz,blend,3mf.
- Name
- layout
- Type
- string
- výchozí assembled
- Description
Jak jsou части uspořádány ve všech výstupních formátech a v miniatuře.
Dostupné hodnoty:
assembled: Části zůstávají tam, kde je měl zdrojový model.on_plate: Části jsou položeny naplocho a rozmístěny na tiskové podložce, připravené k nařezání – stejné uspořádání jako zobrazení On Plate ve webové aplikaci.
V obou uspořádáních je před exportem odstraněn zhroucený tenký nebo bodový zbytek po řezu, takže každá získaná část je tisknutelná. Formáty podporující scénové objekty obsahují jeden objekt na část;
stlje sloučí do jednoho pevného tělesa.
- Name
- connectors
- Type
- boolean
- výchozí false
- Description
Přidá na každém řezu pero-drážkové spojovací prvky (mortise-and-tenon), aby do sebe vytištěné části zapadaly.
connectors = true- Name
- connector_type
- Type
- string
- výchozí cube
- Description
Tvar spojovacího prvku na každé řezné ploše.
Dostupné hodnoty:
cube,cylinder.
- Name
- connector_size
- Type
- number
- výchozí 0.5
- Description
Velikost spojovacího prvku vzhledem k řezné ploše.
Platný rozsah:
0.1až0.8.
- Name
- connector_height
- Type
- number
- výchozí 0.1
- Description
Jak daleko spojovací prvek vystupuje z řezné plochy, vzhledem k řezné ploše.
Platný rozsah:
0.1až0.8.
Návratová hodnota
Vlastnost result v odpovědi obsahuje id nově vytvořené úlohy Auto Split.
Způsoby selhání
- Name
400 - Bad Request- Description
Požadavek byl nepřijatelný. Běžné příčiny:
- Chybějící prompt:
promptje povinný, pokud jemodenastaven naby_partsneboby_color. - Prompt nežádá žádné rozdělení, nebo žádá příliš mnoho částí:
by_parts/by_colorpřijímá 1 až 10 pojmenovaných dílů. Popis, který žádá zachování modelu v jednom kuse, nebo pojmenovává více než 10 částí, je odmítnut. Nic se neúčtuje. - Nepodporovaná vstupní úloha:
input_task_idmusí odkazovat na úspěšnou úlohu podporovaného typu, vygenerovanou pomocí Meshy 6 nebo Meshy 7. - Žádný referenční obrázek:
by_colorvyžaduje vstup vygenerovaný z nahraného obrázku. - Spojovací prvek mimo rozsah:
connector_sizeneboconnector_heightje mimo rozsah0.1až0.8.
- Chybějící prompt:
- Name
401 - Unauthorized- Description
Autentizace selhala. Zkontrolujte prosím svůj API klíč.
- Name
402 - Payment Required- Description
Nedostatek kreditů k provedení této úlohy.
- Name
404 - Not Found- Description
input_task_idneexistuje nebo nepatří k vašemu účtu.
- Name
429 - Too Many Requests- Description
Překročili jste svůj limit rychlosti. Požadavky
by_partsaby_colornavíc sdílejí limit zpracování promptů ve výši 12 požadavků za minutu na účet.
- Name
503 - Service Unavailable- Description
Rozdělování na základě promptu (
by_partsaby_color) je dočasně nedostupné. Zkuste to prosím později, nebo použijtemode: "auto", kterého se tento problém netýká. Nic se neúčtuje.
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"
}
Získání úlohy Auto Split
Tento koncový bod získá úlohu Auto Split podle jejího ID.
Parametry
- Name
- id
- Type
- path
- Description
ID úlohy Auto Split, kterou chcete získat.
Návratová hodnota
Objekt úlohy Auto Split.
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
}
Smazání úlohy Auto Split
Tento koncový bod trvale smaže úlohu Auto Split, včetně všech souvisejících modelů a dat. Tato akce je nevratná.
Parametry cesty
- Name
- id
- Type
- path
- Description
ID úlohy Auto Split, která má být smazána.
Stav úlohy
Úloha, která je stále ve stavu PENDING, bude smazána a kredity spotřebované
při vytvoření budou vráceny.
Úlohu, která je již IN_PROGRESS, nelze smazat: požadavek je
zamítnut s chybou 409 Conflict a úloha zůstává spuštěna. Kredity za úlohu,
kterou už worker začal zpracovávat, nejsou vratné, takže smazání za běhu
by vás stálo kredity i výsledek zároveň. Počkejte, až úloha dosáhne stavu
SUCCEEDED, FAILED nebo CANCELED, a poté ji smažte.
Úloha v koncovém stavu (SUCCEEDED, FAILED nebo CANCELED) je smazána
bez vrácení kreditů.
Návratová hodnota
Vrací 200 OK při úspěchu, nebo 409 Conflict, pokud je úloha
ve stavu 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."
}
Seznam úloh Auto Split
Tento koncový bod umožňuje načíst seznam úloh Auto Split.
Parametry
Volitelné atributy
- Name
- page_num
- Type
- integer
- Description
Číslo stránky pro stránkování. Začíná a výchozí hodnotou je
1.
- Name
- page_size
- Type
- integer
- Description
Limit velikosti stránky. Výchozí hodnota je
10položek. Maximální povolená hodnota je100položek; větší hodnoty jsou omezeny na100.
- Name
- sort_by
- Type
- string
- Description
Pole, podle kterého se má řadit. Dostupné hodnoty:
+created_at: Řazení podle času vytvoření vzestupně.-created_at: Řazení podle času vytvoření sestupně.
Návratová hodnota
Vrací stránkovaný seznam objektů úlohy 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
}
]
Streamování úlohy Auto Split
Tento koncový bod streamuje aktualizace v reálném čase pro úlohu Auto Split pomocí Server-Sent Events (SSE).
Parametry
- Name
- id
- Type
- path
- Description
Jedinečný identifikátor úlohy Auto Split, pro kterou se má spustit streamování.
Návratové hodnoty
Vrací proud objektů úlohy Auto Split formou Server-Sent Events.
Každá událost message nese kompletní objekt úlohy tak, jak je vracen metodou Získání úlohy Auto Split, včetně consumed_credits, časových razítek a prompt_ignored; dokud má úloha stav PENDING nebo IN_PROGRESS, mezi jednotlivými snímky se mění pole progress, status, started_at a preceding_tasks, a jakmile úloha dosáhne stavu SUCCEEDED, objeví se model_urls, thumbnail_url a part_count. Událost error nese pouze status_code a message, proto je třeba před čtením status rozlišit podle názvu události.
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
}
Objekt úlohy Auto Split
Úloha Auto Split obsahuje pouze níže uvedené vlastnosti. Pole pro generovací prompt, která obsahují ostatní objekty úloh (name, object_prompt, texture_prompt a podobně), samotná vlastnost model_url a texture_urls nejsou u rozdělení nikdy vyplněny a nejsou vraceny. Vlastnosti, které se naplňují v průběhu úlohy (thumbnail_url, model_urls, časová razítka), jsou vždy přítomny, pouze prázdné, dokud nemají hodnotu, takže sada klíčů se mezi PENDING a SUCCEEDED nemění.
- Name
- id
- Type
- string
- Description
Jedinečný identifikátor úlohy. Ačkoli jako implementační detail používáme pro ID úloh k-sortable UUID, neměli byste činit žádné předpoklady o formátu id.
- Name
- type
- Type
- string
- Description
Typ úlohy. Hodnota je
print-split.
- Name
- model_urls
- Type
- object
- Description
Stažitelné URL adresy rozděleného modelu, jedna pro každý požadovaný formát. Formáty podporující objekty scény uchovávají každou část jako samostatný objekt;
stlje sloučí do jednoho pevného tělesa. Vlastnost pro daný formát bude vynechána, pokud daný formát nebyl požadován.- Name
glb- Type
- string
- Description
Stažitelná URL adresa rozděleného modelu ve formátu GLB.
- Name
obj- Type
- string
- Description
Stažitelná URL adresa rozděleného modelu ve formátu OBJ.
- Name
fbx- Type
- string
- Description
Stažitelná URL adresa rozděleného modelu ve formátu FBX.
- Name
stl- Type
- string
- Description
Stažitelná URL adresa rozděleného modelu ve formátu STL. Všechny části jsou sloučeny do jednoho pevného tělesa; pro samostatně vybratelné části požadujte
3mf.
- Name
usdz- Type
- string
- Description
Stažitelná URL adresa rozděleného modelu ve formátu USDZ.
- Name
blend- Type
- string
- Description
Stažitelná URL adresa rozděleného modelu ve formátu Blender.
- Name
3mf- Type
- string
- Description
Stažitelná URL adresa rozděleného modelu ve formátu 3MF.
- Name
- thumbnail_url
- Type
- string
- Description
Stažitelná URL adresa vykresleného náhledu rozděleného modelu, kde má každá část odlišnou barvu, v požadovaném
layout.
- Name
- prompt_ignored
- Type
- boolean
- Description
true, pokudpromptpožadavkuby_partsneboby_colornepojmenoval žádné části, a Meshy tak model rozdělilo automaticky — názvy částí ve výsledku jsou od Meshy, nikoli vaše. Přítomno od stavuPENDINGdále. Vynecháno pro úlohyautoa vždy, když byl prompt dodržen.
- Name
- part_count
- Type
- integer
- Description
Počet tisknutelných částí, které rozdělení vytvořilo. Formáty podporující objekty scény obsahují jeden objekt na každou část;
stlje sloučí do jednoho pevného tělesa, přičemž počet stále udává počet částí. Zhroucené zbytky, které segmentace nedokázala přeměnit na tisknutelný díl, jsou před exportem ze souborů odstraněny a nejsou započítány.
- Name
- progress
- Type
- integer
- Description
Průběh úlohy. Pokud úloha ještě nebyla zahájena, bude tato vlastnost
0. Jakmile úloha uspěje, bude tato hodnota100.
- Name
- status
- Type
- string
- Description
Stav úlohy. Možné hodnoty jsou jedna z
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Počet předchozích úloh.
Hodnota tohoto pole má smysl pouze tehdy, je-li stav úlohy
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Časové razítko vytvoření úlohy, v milisekundách.
- Name
- started_at
- Type
- timestamp
- Description
Časové razítko zahájení úlohy, v milisekundách. Pokud úloha ještě nebyla zahájena, bude tato vlastnost
0.
- Name
- finished_at
- Type
- timestamp
- Description
Časové razítko dokončení úlohy, v milisekundách. Pokud úloha ještě nebyla dokončena, bude tato vlastnost
0.
- Name
- task_error
- Type
- object
- Description
Podrobnosti o chybě pro neúspěšné úlohy. Úplný referenční popis objektu
task_errornaleznete v části Chyby. Pokud bezpečnostní kontrola poskytovatele modelu vstupní model odmítne, úloha selže stask_error.typeinvalid_inputacodeprovider_content_refused. Viz Chyby.
- Name
- consumed_credits
- Type
- integer
- Description
Počet kreditů spotřebovaných touto úlohou. Vždy přítomno:
10jakmile je úloha přijata, a0u úlohFAILED, protože poplatek je v případě selhání vrácen. Smazání úlohy, dokud je stále ve stavuPENDING, ji rovněž vrátí.
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
}