Analyzovat tisknutelnost API
Analyzujte 3D model z hlediska tisknutelnosti — vodotěsnost, objem, díry, non-manifold hrany a degenerované plochy. Volitelně lze také zkontrolovat tloušťku stěny při velikosti, ve které plánujete tisk.
Create an Analyze Printability Task
Tento koncový bod vytvoří novou úlohu Analyzovat tisknutelnost. Úloha vyhodnotí 3D model a vrátí metriky jeho tisknutelnosti.
Úloha běží na pozadí. Informace o obvyklé době zpracování najdete v části Processing Times.
Pokud vstupní úloha již má tisknutelnost uloženou v mezipaměti, vrácená úloha je okamžitě připravena a první GET na ni vrátí výsledek analýzy bez průchodu přes worker.
Chcete-li také zkontrolovat tloušťku stěny při velikosti, ve které plánujete tisknout, odešlete printer_type, velikost tisku, nebo obojí. Výsledek je vrácen v printability.thin_walls. Kontrola tloušťky stěny trvá déle, takže úloha obvykle není připravena okamžitě, i když byl model analyzován již dříve.
Parametry
Je vyžadován pouze jeden z parametrů input_task_id nebo model_url. Pokud jsou zadány oba, má přednost input_task_id.
- Name
- input_task_id
- Type
- string
- Povinné
- Description
ID úspěšně dokončené úlohy, kterou vlastníte. Podporované typy úloh: Obrázek na 3D, Více obrázků na 3D, Text na 3D, Remesh a Retexturování. Úloha musí používat Meshy 6 nebo novější (včetně Meshy 7) a musí mít stav
SUCCEEDED. Přijímány jsou také úlohy Opravit tisknutelnost.
- Name
- model_url
- Type
- string
- Povinné
- Description
URL 3D modelu k analýze. Podporované formáty:
.glb,.gltf,.obj,.fbx,.stl. PoužijtehttpnebohttpsURL, nebo base64data:URL pro GLB (data:model/gltf-binary;base64,...) nebo glTF (data:model/gltf+json;base64,...). Soubory.obj,.fbxa.stlmusí být odeslány jakohttpnebohttpsURL.Maximální velikost souboru: 400 MB pro
httpnebohttpsURL, 100 MB prodata:URI.Soubor GLB, glTF, FBX nebo OBJ nad 100 MB může mít nejvýše 10 000 000 ploch. Plochy se počítají jako trojúhelníky: čtyřúhelník se počítá jako 2 a síť vykreslená vícekrát se počítá jednou za každou kopii. Nad 100 MB musí být soubor FBX ve formátu binary FBX 7.1 nebo novějším a soubor GLB nebo glTF nesmí používat kompresi Draco.
URL ke stažení z Meshy (
assets.meshy.ai/…?Expires=…&Signature=…) jsou podepsány a přestanou fungovat v časeexpires_atdané úlohy; opětovné načtení úlohy je neobnoví. U modelu vygenerovaného pomocí Meshy použijte místo tohoinput_task_id. Funguje to po dobu, po kterou je zdrojová úloha uchována (viz Uchování assetů). Chcete-li model znovu použít i poté, stáhněte si ho předexpires_ata odešlete vlastní kopii.
Odešlete nejvýše jedno ze dvou polí velikosti tisku. Pokud odešlete printer_type bez velikosti, výchozí velikost je:
.glba jakékoliinput_task_id: výška 150 mm..stl: vlastní nejdelší strana souboru, čtená v milimetrech. U STL v jiných jednotkách odešleteintended_print_longest_side_mm..obj,.fbx,.gltf: 150 mm na nejdelší straně.
- Name
- printer_type
- Type
- string
- Description
Tiskárna, kterou plánujete použít. Nastaví minimální tloušťku stěny pro kontrolu tloušťky stěny. Výchozí hodnota je
fdm, pokud odešlete velikost tisku bez tohoto parametru.Dostupné hodnoty:
fdm: filament, minimální tloušťka stěny 1,0 mm.sla: pryskyřice, minimální tloušťka stěny 0,8 mm.full_color: full-color, minimální tloušťka stěny 2,0 mm.
- Name
- intended_print_height_mm
- Type
- number
- Description
Výška tisku v milimetrech. Rozsah:
[1, 1000]. Zaokrouhlena na nejbližší milimetr. Pouze pro vstup GLB.
- Name
- intended_print_longest_side_mm
- Type
- number
- Description
Délka nejdelší strany tisku v milimetrech. Rozsah:
[1, 1000]. Zaokrouhlena na nejbližší milimetr. Funguje se všemi vstupními formáty.
Návratová hodnota
Vlastnost result v odpovědi obsahuje id nově vytvořené úlohy Analyzovat tisknutelnost.
Způsoby selhání
- Name
400 - Bad Request- Description
Požadavek byl nepřijatelný. Běžné příčiny:
- Chybějící parametr: nebyl zadán ani
input_task_id, animodel_url. - Neplatné UUID:
input_task_idnení platné UUID. - Neplatná URL modelu:
model_urlje špatně formátovaná, používá nepodporované schéma nebo má nepodporovanou příponu souboru. - Soubor modelu je příliš velký: tělo
model_urlpřesáhlo 400 MB (httpnebohttpsURL) nebo 100 MB (data:URI). - Příliš mnoho ploch:
model_urlje soubor GLB, glTF, FBX nebo OBJ nad 100 MB s více než 10 000 000 plochami. Snižte počet ploch a soubor odešlete znovu. - ASCII FBX nad 100 MB:
model_urlje ASCII FBX soubor nad 100 MB. Odešlete jej jako binary FBX nebo GLB. - Nečitelný soubor modelu:
model_urlje nad 100 MB a jeho hlavičku nelze přečíst, například u Draco-komprimovaného GLB nebo glTF, nebo u binárního FBX staršího než 7.1. - Hlavička modelu je příliš složitá:
model_urlje nad 100 MB a jeho hlavička obsahuje příliš mnoho sítí, uzlů nebo záznamů ke kontrole. Snižte počet objektů v souboru a odešlete jej znovu. - Soubor modelu se nepodařilo stáhnout:
model_urlvrátila chybu, nejčastěji proto, že platnost podepsané URL ke stažení z Meshy vypršela. Opětovné načtení úlohy vrátí stejnou URL se stejnou platností, proto odešlete vlastní kopii souboru, nebo použijteinput_task_id, dokud je zdrojová úloha stále uchována. - Úloha nebyla úspěšná: odkazovaná úloha je stále čekající, probíhá, nebo selhala.
- Neplatná velikost tisku:
intended_print_height_mmnebointended_print_longest_side_mmje mimo rozsah[1, 1000], nebo byly odeslány obě. - Neznámý typ tiskárny:
printer_typenenífdm,slaanifull_color. - Výška u modelu, který není GLB:
intended_print_height_mmbyl odeslán smodel_url, která není.glb. Použijte místo tohointended_print_longest_side_mm. - Nelze stanovit velikost tohoto modelu podle výšky: při požadované výšce (nebo výchozí hodnotě 150 mm) by nejdelší strana modelu byla mimo rozsah
[1, 1000]mm, model je plochý, nebo jeho velikost nelze určit. Použijte místo tohointended_print_longest_side_mm. Umodel_urltypu.glba některých úlohinput_task_idse toto zjistí až po spuštění úlohy a úloha pak skončí jakoFAILED. - Nepoužitelná velikost STL:
printer_typebyl odeslán bez velikosti a vlastní nejdelší strana souboru.stlnelze přečíst nebo je mimo rozsah[1, 1000]mm. Odešleteintended_print_longest_side_mm.
- Chybějící parametr: nebyl zadán ani
- Name
401 - Unauthorized- Description
Autentizace selhala. Zkontrolujte prosím svůj API klíč.
- Name
404 - Not Found- Description
Běžné příčiny:
- Úloha neexistuje, byla smazána, nebo ji vlastní jiný uživatel.
- Úloha používá model starší než Meshy 6, nebo její mode nevytváří 3D asset.
- Podkladový soubor modelu již není dostupný v úložišti.
- Name
429 - Too Many Requests- Description
Překročili jste svou kvótu čekajících úloh nebo limit rychlosti.
Request
# Analyze an existing task
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Or analyze a model URL directly
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/model.glb"
}'
# Also check wall thickness for a 100 mm tall SLA print
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"printer_type": "sla",
"intended_print_height_mm": 100
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Získání úlohy Analyzovat tisknutelnost
Tento koncový bod načte úlohu analýzy tisknutelnosti podle jejího ID.
Parametry
- Name
- id
- Type
- path
- Description
ID úlohy analýzy tisknutelnosti, kterou chcete načíst.
Návratová hodnota
Objekt úlohy Analyzovat tisknutelnost. Pole printability je null, dokud úloha nedosáhne stavu SUCCEEDED. Pokud byla zkontrolována tloušťka stěny, printability také obsahuje intended_print a thin_walls.
Request
curl https://api.meshy.ai/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"expires_at": 1715725401000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "warning",
"issue_count": 1,
"error_count": 0,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"evaluated_at": 1700000001000
},
"consumed_credits": 0
}
Response (wall thickness checked)
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000012000,
"expires_at": 1715725412000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "error",
"issue_count": 2,
"error_count": 1,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"intended_print": {
"printer_type": "sla",
"height_mm": 100,
"longest_side_mm": 118,
"wall_thickness_mm": 0.8,
"dimensions_mm": [118, 72.41, 99.87]
},
"thin_walls": {
"thin_area_ratio": 0.083,
"has_thin_walls": true,
"status": "error"
},
"evaluated_at": 1700000012000
},
"consumed_credits": 0
}
Smazání úlohy Analyzovat tisknutelnost
Tento koncový bod trvale odstraní úlohu analýzy tisknutelnosti a její uložený výsledek. Tato akce je nevratná.
Parametry cesty
- Name
- id
- Type
- path
- Description
ID úlohy Analyzovat tisknutelnost, která má být smazána.
Stav úlohy
Úloha, která je stále ve stavu PENDING, je smazána a kredity spotřebované
při jejím vytvoření jsou vráceny.
Úlohu, která je již ve stavu IN_PROGRESS, nelze smazat: požadavek je
zamítnut s chybou 409 Conflict a úloha dále běží. Kredity za úlohu, kterou
již worker začal zpracovávat, nelze vrátit, takže její smazání během běhu
by vás stálo kredity i výsledek zároveň. Počkejte, až 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é hodnoty
Při úspěchu vrací 200 OK, nebo 409 Conflict, pokud je úloha ve stavu
IN_PROGRESS.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/analyze/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 Analyzovat tisknutelnost
Tento koncový bod umožňuje načíst seznam úloh analýzy tisknutelnosti.
Parametry
Volitelné atributy
- Name
- page_num
- Type
- integer
- Description
Číslo stránky pro stránkování. Začíná a výchozí hodnota je
1.
- Name
- page_size
- Type
- integer
- Description
Limit velikosti stránky. Výchozí hodnota je
10položek. Maximální povolená hodnota je100položek.
- 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 Analyzovat tisknutelnost.
Request
curl https://api.meshy.ai/openapi/v1/print/analyze?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"expires_at": 1715725401000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "warning",
"issue_count": 1,
"error_count": 0,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"evaluated_at": 1700000001000
},
"consumed_credits": 0
}
]
Stream an Analyze Printability Task
Tento koncový bod streamuje aktualizace v reálném čase pro úlohu analýzy tisknutelnosti pomocí Server-Sent Events (SSE).
Parametry
- Name
- id
- Type
- path
- Description
Jedinečný identifikátor úlohy analýzy tisknutelnosti, kterou chcete streamovat.
Návratová hodnota
Vrací proud objektů úlohy Analyzovat tisknutelnost formou Server-Sent Events.
Každý snímek obsahuje kompletní objekt úlohy pro danou fázi — stejný tvar, jaký vrací
koncový bod Get — takže dokud je úloha ve stavu PENDING nebo IN_PROGRESS, výstupní
pole jednoduše ještě nejsou naplněna (null, [] nebo {}) a
finished_at je null. Blok printability je odeslán až ve chvíli, kdy úloha dosáhne stavu SUCCEEDED.
Request
curl -N https://api.meshy.ai/openapi/v1/print/analyze/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.
// Every frame is the full task object; fields not yet populated are null / empty.
// The PENDING frame below is abbreviated to the fields that change.
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"expires_at": 1715725401000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "warning",
"issue_count": 1,
"error_count": 0,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"evaluated_at": 1700000001000
},
"consumed_credits": 0
}
Objekt úlohy Analyzovat tisknutelnost
- 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 dělat žádné předpoklady o formátu id.
- Name
- type
- Type
- string
- Description
Typ úlohy analyze-printability. Hodnota je
print-analyze.
- Name
- status
- Type
- string
- Description
Stav úlohy. Možné hodnoty jsou jedna z
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- progress
- Type
- integer
- Description
Progress úlohy. Pokud úloha ještě nebyla zahájena, tato vlastnost bude
0. Jakmile úloha uspěje, bude100.
- Name
- preceding_tasks
- Type
- integer
- Description
Počet předcházejících úloh.
Hodnota tohoto pole má smysl pouze v případě, že stav úlohy je
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, tato vlastnost bude
0.
- Name
- finished_at
- Type
- timestamp
- Description
Časové razítko dokončení úlohy, v milisekundách. Pokud úloha ještě není dokončena, tato vlastnost bude
0.
- Name
- expires_at
- Type
- timestamp
- Description
Časové razítko, kdy výsledek úlohy ze systému vyprší, v milisekundách.
0, pokud úloha ještě není dokončena.
- Name
- task_error
- Type
- object
- Description
Informace o chybě, pokud úloha selhala. Tato vlastnost je
null, pokud úloha neselhala. Více podrobností najdete v sekci Chyby.- Name
message- Type
- string
- Description
Chybová zpráva popisující, co se pokazilo.
- Name
- printability
- Type
- object
- Description
Výsledek vyhodnocení tisknutelnosti.
null, dokud úloha nedosáhne stavuSUCCEEDED.- Name
_version- Type
- string
- Description
Verze schématu výsledku tisknutelnosti. Aktuálně
v1.
- Name
status- Type
- string
- Description
Celkový stav. Jedna z hodnot:
healthy: žádné chyby ani varování.warning: alespoň jedno varování, žádné chyby.error: alespoň jedna chyba.unknown: model nebylo možné analyzovat.
Pokud byla kontrolována tloušťka stěny, jde o horší z výše uvedených kontrol a
thin_walls.status. Od nejhoršího po nejlepší:error,warning,unknown,healthy.
- Name
issue_count- Type
- integer
- Description
Celkový počet problémů, rovný
error_count + warning_count.
- Name
error_count- Type
- integer
- Description
Počet problémů úrovně chyba. Chyby jsou hlášeny, pokud model není vodotěsný, má nekladný objem nebo obsahuje non-manifold hrany. Pokud byla kontrolována tloušťka stěny, stěny, které jsou příliš tenké (
thin_walls.statusjeerror), se počítají jako jedna další chyba.
- Name
warning_count- Type
- integer
- Description
Počet problémů úrovně varování. Varování jsou hlášena, pokud model obsahuje degenerované plochy nebo díry.
- Name
metrics- Type
- object
- Description
Syrové metriky geometrie vrácené evaluátorem.
- Name
is_watertight- Type
- boolean
- Description
true, pokud síť nemá žádné okrajové hrany (tj. je uzavřená).
- Name
volume- Type
- number
- Description
Objem modelu v krychlových metrech.
- Name
non_manifold_edges- Type
- integer
- Description
Počet non-manifold hran.
- Name
degenerate_faces- Type
- integer
- Description
Počet degenerovaných ploch (plochy s nulovou plochou nebo neplatné plochy).
- Name
holes- Type
- integer
- Description
Počet děr (okrajových smyček) v síti.
- Name
intended_print- Type
- object
- Description
Tiskárna a velikost použité pro kontrolu tloušťky stěny. Přítomno pouze pokud byla tloušťka stěny kontrolována.
- Name
printer_type- Type
- string
- Description
fdm,slanebofull_color.
- Name
height_mm- Type
- number
- Description
Výška tisku v milimetrech, pokud byla velikost tisku určena podle výšky. Jinak
null.
- Name
longest_side_mm- Type
- number
- Description
Nejdelší strana tisku v milimetrech. Pokud je velikost určena podle výšky, vypočítá se z proporcí modelu.
- Name
wall_thickness_mm- Type
- number
- Description
Minimální tloušťka stěny pro
printer_type, v milimetrech. Stěny tenčí než tato hodnota jsou hlášeny jako příliš tenké.
- Name
dimensions_mm- Type
- array
- Description
Rozměry tisku
[width, depth, height]v milimetrech. Výška se může odheight_mmlišit o zlomek milimetru.nullpro vstup, který není GLB, nebo pokud velikost modelu nelze určit.
- Name
thin_walls- Type
- object
- Description
Výsledek kontroly tloušťky stěny. Přítomno pouze pokud byla tloušťka stěny kontrolována.
- Name
thin_area_ratio- Type
- number
- Description
Podíl povrchu, od
0do1, který je tenčí nežintended_print.wall_thickness_mm.null, pokud model nebylo možné změřit.
- Name
has_thin_walls- Type
- boolean
- Description
true, pokud je jakákoli část povrchu příliš tenká. Toto může nastavit samotný ostrý roh, proto použijtestatusk rozhodnutí, zda je potřeba stěny zesílit.null, pokud model nebylo možné změřit.
- Name
status- Type
- string
- Description
Verdikt tloušťky stěny. Jedna z hodnot:
healthy: 5 % nebo méně povrchu je příliš tenkých.error: více než 5 % povrchu je příliš tenkých. Pro zesílení stěn předejteidtéto úlohy do Opravit tisknutelnost jakoinput_task_id(promodel_urltypu.stl,.fbxnebo.gltfmísto toho pošlete soubor jakomodel_url).unknown: model nebylo možné změřit. Pokud samotná kontrola tloušťky stěny selže, úloha skončí se stavemFAILED.
- Name
evaluated_at- Type
- timestamp
- Description
Časové razítko výpočtu analýzy, v milisekundách od epochy.
- Name
- consumed_credits
- Type
- integer
- Description
Vždy
0. Tento koncový bod je zdarma.
The Analyze Printability Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"expires_at": 1715725401000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "warning",
"issue_count": 1,
"error_count": 0,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"evaluated_at": 1700000001000
},
"consumed_credits": 0
}
The Analyze Printability Task Object (wall thickness checked)
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000012000,
"expires_at": 1715725412000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "error",
"issue_count": 2,
"error_count": 1,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"intended_print": {
"printer_type": "sla",
"height_mm": 100,
"longest_side_mm": 118,
"wall_thickness_mm": 0.8,
"dimensions_mm": [118, 72.41, 99.87]
},
"thin_walls": {
"thin_area_ratio": 0.083,
"has_thin_walls": true,
"status": "error"
},
"evaluated_at": 1700000012000
},
"consumed_credits": 0
}