Printbaarheid analyseren API
Analyseer een 3D-model op printbaarheid — waterdichtheid, volume, gaten, niet-manifold randen en gedegenereerde vlakken. Controleer optioneel ook de wanddikte bij de afmeting waarop u van plan bent te printen.
Printbaarheid analyseren-taak aanmaken
Deze endpoint maakt een nieuwe analyze-printability-taak aan. De taak evalueert een 3D-model en rapporteert de printbaarheidsmetrieken ervan.
De taak wordt op de achtergrond uitgevoerd. Zie Verwerkingstijden voor de gebruikelijke duur.
Als de invoertaak al gecachete printbaarheid heeft, is de geretourneerde taak direct gereed en geeft de eerste GET erop het analyseresultaat terug zonder via de worker te gaan.
Om ook de wanddikte te controleren bij de maat waarmee u van plan bent te printen, stuurt u printer_type, een printmaat, of beide. Het resultaat wordt geretourneerd in printability.thin_walls. Het controleren van de wanddikte duurt langer, dus de taak is meestal niet direct gereed, zelfs als het model al eerder is geanalyseerd.
Parameters
Slechts één van input_task_id of model_url is vereist. Als beide worden meegegeven, krijgt input_task_id prioriteit.
- Name
- input_task_id
- Type
- string
- Verplicht
- Description
De ID van een geslaagde taak die u bezit. Ondersteunde taaktypen: Afbeelding naar 3D, Multi-afbeelding naar 3D, Tekst naar 3D, Remesh, en Hertextureren. De taak moet Meshy 6 of nieuwer gebruiken (inclusief Meshy 7) en moet een status van
SUCCEEDEDhebben. Printbaarheid repareren-taken worden ook geaccepteerd.
- Name
- model_url
- Type
- string
- Verplicht
- Description
URL van een te analyseren 3D-model. Ondersteunde formaten:
.glb,.gltf,.obj,.fbx,.stl. Gebruik eenhttp- ofhttps-URL, of een base64data:-URL voor een GLB (data:model/gltf-binary;base64,...) of glTF (data:model/gltf+json;base64,...)..obj-,.fbx- en.stl-bestanden moeten worden verzonden als eenhttp- ofhttps-URL.Maximale bestandsgrootte: 400 MB voor een
http- ofhttps-URL, 100 MB voor eendata:-URI.Een GLB-, glTF-, FBX- of OBJ-bestand groter dan 100 MB mag maximaal 10.000.000 vlakken hebben. Vlakken worden geteld als driehoeken: een vierhoek telt als 2, en een mesh die meerdere keren wordt getekend, telt één keer per kopie. Boven 100 MB moet een FBX-bestand binaire FBX 7.1 of nieuwer zijn, en mag een GLB- of glTF-bestand geen Draco-compressie gebruiken.
Meshy-downloadlinks (
assets.meshy.ai/…?Expires=…&Signature=…) zijn ondertekend en stoppen met werken opexpires_atvan de taak; de taak opnieuw ophalen vernieuwt deze niet. Geef voor een met Meshy gegenereerd model in plaats daarvaninput_task_idmee. Dit werkt zolang de brontaak behouden blijft (zie Asset-retentie). Om een model daarna opnieuw te gebruiken, downloadt u het vóórexpires_aten stuurt u uw eigen kopie mee.
Stuur maximaal één van de twee printmaat-velden mee. Als u printer_type zonder maat meestuurt, is de standaardmaat:
.glben elkeinput_task_id: 150 mm hoog..stl: de eigen langste zijde van het bestand, gelezen als millimeters. Stuur voor een STL in andere eenhedenintended_print_longest_side_mmmee..obj,.fbx,.gltf: 150 mm aan de langste zijde.
- Name
- printer_type
- Type
- string
- Description
De printer die u van plan bent te gebruiken. Dit bepaalt de minimale wanddikte voor de wanddikte-controle. Standaard
fdmwanneer u een printmaat meestuurt zonder dit veld.Beschikbare waarden:
fdm: filament, minimale wanddikte 1,0 mm.sla: resin, minimale wanddikte 0,8 mm.full_color: full-color, minimale wanddikte 2,0 mm.
- Name
- intended_print_height_mm
- Type
- number
- Description
Hoogte van de print, in millimeters. Bereik:
[1, 1000]. Afgerond op de dichtstbijzijnde millimeter. Alleen voor GLB-invoer.
- Name
- intended_print_longest_side_mm
- Type
- number
- Description
Lengte van de langste zijde van de print, in millimeters. Bereik:
[1, 1000]. Afgerond op de dichtstbijzijnde millimeter. Werkt met elk invoerformaat.
Resultaat
De result-eigenschap van de response bevat de id van de nieuw aangemaakte analyze-printability-taak.
Foutmodi
- Name
400 - Bad Request- Description
Het verzoek was onacceptabel. Veelvoorkomende oorzaken:
- Ontbrekende parameter: noch
input_task_idnochmodel_urlis meegegeven. - Ongeldige UUID:
input_task_idis geen geldige UUID. - Ongeldige model-URL:
model_urlis onjuist opgemaakt, gebruikt een niet-ondersteund schema, of heeft een niet-ondersteunde bestandsextensie. - Modelbestand te groot: de inhoud van
model_urloverschreed 400 MB (http- ofhttps-URL) of 100 MB (data:-URI). - Te veel vlakken:
model_urlis een GLB-, glTF-, FBX- of OBJ-bestand groter dan 100 MB met meer dan 10.000.000 vlakken. Verminder het aantal vlakken en stuur het bestand opnieuw. - ASCII FBX groter dan 100 MB:
model_urlis een ASCII FBX groter dan 100 MB. Stuur het als binaire FBX of GLB. - Onleesbaar modelbestand:
model_urlis groter dan 100 MB en de header kan niet worden gelezen, bijvoorbeeld een Draco-gecomprimeerde GLB of glTF, of een binaire FBX ouder dan 7.1. - Modelheader te complex:
model_urlis groter dan 100 MB en de header bevat te veel meshes, nodes of records om te controleren. Verminder het aantal objecten in het bestand en stuur het opnieuw. - Modelbestand kon niet worden gedownload:
model_urlgaf een fout terug, meestal omdat een ondertekende Meshy-downloadlink is verlopen. De taak opnieuw ophalen geeft dezelfde URL met dezelfde vervaldatum terug, dus stuur uw eigen kopie van het bestand, of gebruikinput_task_idzolang de brontaak nog behouden blijft. - Taak niet geslaagd: de aangeduide taak is nog in behandeling, bezig of mislukt.
- Ongeldige printmaat:
intended_print_height_mmofintended_print_longest_side_mmvalt buiten[1, 1000], of beide zijn meegestuurd. - Onbekend printertype:
printer_typeis nietfdm,slaoffull_color. - Hoogte op een niet-GLB-model:
intended_print_height_mmis meegestuurd met eenmodel_urldie geen.glbis. Gebruik in plaats daarvanintended_print_longest_side_mm. - Dit model kan niet op hoogte worden geschaald: bij de gevraagde hoogte (of de standaard 150 mm) zou de langste zijde van het model buiten
[1, 1000]mm vallen, is het model plat, of kan de grootte niet worden bepaald. Gebruik in plaats daarvanintended_print_longest_side_mm. Voor een.glb-model_urlen sommigeinput_task_id-taken wordt dit pas ontdekt nadat de taak is gestart, en eindigt de taak in plaats daarvan metFAILED. - STL-maat onbruikbaar:
printer_typeis meegestuurd zonder maat, en de eigen langste zijde van de.stlkan niet worden gelezen of valt buiten[1, 1000]mm. Stuurintended_print_longest_side_mmmee.
- Ontbrekende parameter: noch
- Name
401 - Unauthorized- Description
Authenticatie is mislukt. Controleer uw API-sleutel.
- Name
404 - Not Found- Description
Veelvoorkomende oorzaken:
- De taak bestaat niet, is verwijderd, of is eigendom van een andere gebruiker.
- De taak gebruikt een model ouder dan Meshy 6, of de mode ervan produceert geen 3D-asset.
- Het onderliggende modelbestand is niet langer beschikbaar in de opslag.
- Name
429 - Too Many Requests- Description
U heeft uw quotum voor openstaande taken of uw rate limit overschreden.
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"
}
Printbaarheid analyseren taak ophalen
Deze endpoint haalt een analyze-printability-taak op aan de hand van de ID.
Parameters
- Name
- id
- Type
- path
- Description
De ID van de analyze-printability-taak die moet worden opgehaald.
Returns
Het Analyze Printability Task Object. Het printability-veld is null totdat de taak de status SUCCEEDED bereikt. Wanneer de wanddikte is gecontroleerd, bevat printability ook intended_print en 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
}
Een taak voor Printbaarheid analyseren verwijderen
Deze endpoint verwijdert permanent een taak voor het analyseren van printbaarheid en het bijbehorende gecachte resultaat. Deze actie is onomkeerbaar.
Padparameters
- Name
- id
- Type
- path
- Description
De ID van de taak voor printbaarheidsanalyse die moet worden verwijderd.
Taakstatus
Een taak die nog PENDING is, wordt verwijderd en de credits die bij het
aanmaken zijn verbruikt, worden terugbetaald.
Een taak die al IN_PROGRESS is, kan niet worden verwijderd: het verzoek
wordt geweigerd met 409 Conflict en de taak blijft doorlopen. Credits voor
een taak die de worker al is gestart, worden niet terugbetaald, dus als je
de taak halverwege verwijdert, verlies je zowel de credits als het resultaat.
Wacht tot de taak de status SUCCEEDED, FAILED of CANCELED bereikt en
verwijder deze dan.
Een taak in een eindstatus (SUCCEEDED, FAILED of CANCELED) wordt
verwijderd zonder terugbetaling.
Retourwaarden
Retourneert 200 OK bij succes, of 409 Conflict wanneer de taak
IN_PROGRESS is.
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."
}
Lijst met taken voor printbaarheidsanalyse
Deze endpoint stelt u in staat om een lijst met taken voor printbaarheidsanalyse op te halen.
Parameters
Optionele attributen
- Name
- page_num
- Type
- integer
- Description
Paginanummer voor paginering. Begint bij en standaard
1.
- Name
- page_size
- Type
- integer
- Description
Limiet voor de paginagrootte. Standaard
10items. Maximaal toegestaan is100items.
- Name
- sort_by
- Type
- string
- Description
Veld om op te sorteren. Beschikbare waarden:
+created_at: Sorteer op aanmaaktijd in oplopende volgorde.-created_at: Sorteer op aanmaaktijd in aflopende volgorde.
Retourwaarden
Retourneert een gepagineerde lijst van Analyze Printability Task Objecten.
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
Deze endpoint streamt realtime updates voor een printbaarheid-analysetaak via Server-Sent Events (SSE).
Parameters
- Name
- id
- Type
- path
- Description
Unieke identifier voor de analyze-printability-taak die gestreamd moet worden.
Retourwaarden
Retourneert een stream van Analyze Printability Task Objects als Server-Sent Events.
Elk frame bevat het volledige taakobject voor de fase — dezelfde vorm die de
Get-endpoint retourneert — dus zolang de taak PENDING of IN_PROGRESS is, zijn de
outputvelden simpelweg nog niet ingevuld (null, [] of {}) en is
finished_at gelijk aan null. Het printability-blok wordt pas verzonden zodra de taak SUCCEEDED bereikt.
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
}
Het Printbaarheid analyseren Taakobject
- Name
- id
- Type
- string
- Description
Unieke identificatie voor de taak. Hoewel we een k-sortable UUID gebruiken voor taak-id's als implementatiedetail, moet je geen aannames doen over het formaat van de id.
- Name
- type
- Type
- string
- Description
Type van de analyze-printability-taak. De waarde is
print-analyze.
- Name
- status
- Type
- string
- Description
Status van de taak. Mogelijke waarden zijn een van
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- progress
- Type
- integer
- Description
Progress van de taak. Als de taak nog niet gestart is, zal deze eigenschap
0zijn. Zodra de taak is geslaagd, wordt dit100.
- Name
- preceding_tasks
- Type
- integer
- Description
Het aantal voorafgaande taken.
De waarde van dit veld is alleen betekenisvol als de taakstatus
PENDINGis.
- Name
- created_at
- Type
- timestamp
- Description
Tijdstempel van wanneer de taak is aangemaakt, in milliseconden.
- Name
- started_at
- Type
- timestamp
- Description
Tijdstempel van wanneer de taak is gestart, in milliseconden. Als de taak nog niet gestart is, zal deze eigenschap
0zijn.
- Name
- finished_at
- Type
- timestamp
- Description
Tijdstempel van wanneer de taak is voltooid, in milliseconden. Als de taak nog niet voltooid is, zal deze eigenschap
0zijn.
- Name
- expires_at
- Type
- timestamp
- Description
Tijdstempel van wanneer het taakresultaat uit het systeem zal verlopen, in milliseconden.
0als de taak nog niet is voltooid.
- Name
- task_error
- Type
- object
- Description
Foutinformatie als de taak is mislukt. Deze eigenschap is
nullals de taak niet is mislukt. Zie Fouten voor meer details.- Name
message- Type
- string
- Description
Foutmelding die beschrijft wat er misging.
- Name
- printability
- Type
- object
- Description
Resultaat van de printbaarheidsevaluatie.
nulltotdat de taakSUCCEEDEDbereikt.- Name
_version- Type
- string
- Description
Schemaversie van het printbaarheidsresultaat. Momenteel
v1.
- Name
status- Type
- string
- Description
Algemene status. Een van:
healthy: geen fouten en geen waarschuwingen.warning: ten minste één waarschuwing, geen fouten.error: ten minste één fout.unknown: het model kon niet worden geanalyseerd.
Wanneer wanddikte werd gecontroleerd, is dit de slechtste van de bovenstaande controles en
thin_walls.status. Van slechtst naar best:error,warning,unknown,healthy.
- Name
issue_count- Type
- integer
- Description
Totaal aantal problemen, gelijk aan
error_count + warning_count.
- Name
error_count- Type
- integer
- Description
Aantal problemen op foutniveau. Fouten worden gemeld wanneer het model niet waterdicht is, een niet-positief volume heeft, of niet-manifold randen heeft. Wanneer wanddikte werd gecontroleerd, tellen wanden die te dun zijn (
thin_walls.statusiserror) als nog een extra fout.
- Name
warning_count- Type
- integer
- Description
Aantal problemen op waarschuwingsniveau. Waarschuwingen worden gemeld wanneer het model gedegenereerde vlakken of gaten bevat.
- Name
metrics- Type
- object
- Description
Ruwe geometriemetingen die door de evaluator worden geretourneerd.
- Name
is_watertight- Type
- boolean
- Description
truewanneer de mesh geen grensranden heeft (d.w.z. gesloten is).
- Name
volume- Type
- number
- Description
Volume van het model in kubieke meter.
- Name
non_manifold_edges- Type
- integer
- Description
Aantal niet-manifold randen.
- Name
degenerate_faces- Type
- integer
- Description
Aantal gedegenereerde vlakken (vlakken met oppervlakte nul of ongeldige vlakken).
- Name
holes- Type
- integer
- Description
Aantal gaten (grenslussen) in de mesh.
- Name
intended_print- Type
- object
- Description
De printer en grootte die de wanddiktecontrole gebruikte. Alleen aanwezig wanneer wanddikte werd gecontroleerd.
- Name
printer_type- Type
- string
- Description
fdm,sla, offull_color.
- Name
height_mm- Type
- number
- Description
De printhoogte in millimeter, als de print op hoogte werd geschaald. Anders
null.
- Name
longest_side_mm- Type
- number
- Description
De langste zijde van de print in millimeter. Bij schaling op hoogte wordt dit berekend aan de hand van de proporties van het model.
- Name
wall_thickness_mm- Type
- number
- Description
De minimale wanddikte voor
printer_type, in millimeter. Wanden die dunner zijn dan dit worden gerapporteerd als te dun.
- Name
dimensions_mm- Type
- array
- Description
De
[breedte, diepte, hoogte]van de print in millimeter. De hoogte kan een fractie van een millimeter afwijken vanheight_mm.nullvoor niet-GLB-invoer, of als de grootte van het model niet kan worden bepaald.
- Name
thin_walls- Type
- object
- Description
Het resultaat van de wanddiktecontrole. Alleen aanwezig wanneer wanddikte werd gecontroleerd.
- Name
thin_area_ratio- Type
- number
- Description
Aandeel van het oppervlak, van
0tot1, dat dunner is danintended_print.wall_thickness_mm.nullals het model niet gemeten kon worden.
- Name
has_thin_walls- Type
- boolean
- Description
trueals enig deel van het oppervlak te dun is. Scherpe hoeken alleen kunnen dit al instellen, gebruik dusstatusom te bepalen of de wanden verdikt moeten worden.nullals het model niet gemeten kon worden.
- Name
status- Type
- string
- Description
Het oordeel over de wanddikte. Een van:
healthy: 5% of minder van het oppervlak is te dun.error: meer dan 5% van het oppervlak is te dun. Om de wanden te verdikken, geef je deidvan deze taak door aan Printbaarheid repareren alsinput_task_id(voor een.stl-,.fbx- of.gltf-model_urlstuur je in plaats daarvan het bestand alsmodel_url).unknown: het model kon niet gemeten worden. Als de wanddiktecontrole zelf mislukt, eindigt de taak alsFAILED.
- Name
evaluated_at- Type
- timestamp
- Description
Tijdstempel van wanneer de analyse werd berekend, in milliseconden sinds epoch.
- Name
- consumed_credits
- Type
- integer
- Description
Altijd
0. Dit endpoint is gratis.
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
}