Analysera utskrivbarhet-API
Analysera en 3D-modell för utskrivbarhet — vattentäthet, volym, hål, non-manifold-kanter och degenererade ytor. Valfritt kan du även kontrollera väggtjocklek vid den storlek du planerar att skriva ut i.
Create an Analyze Printability Task
Denna endpoint skapar en ny Analysera utskrivbarhet-uppgift. Uppgiften utvärderar en 3D-modell och rapporterar dess utskrivbarhetsmått.
Uppgiften körs i bakgrunden. För information om hur lång tid det vanligtvis tar, se Processing Times.
Om input-uppgiften redan har cachad utskrivbarhet är den returnerade uppgiften omedelbart redo, och den första GET-anropet på den kommer att returnera analysresultatet utan att gå via arbetaren.
För att även kontrollera väggtjocklek vid den storlek du planerar att skriva ut i, skicka printer_type, en utskriftsstorlek, eller båda. Resultatet returneras i printability.thin_walls. Kontroll av väggtjocklek tar längre tid, så uppgiften är vanligtvis inte redo direkt, även om modellen analyserades tidigare.
Parametrar
Endast en av input_task_id eller model_url är obligatorisk. Om båda anges har input_task_id prioritet.
- Name
- input_task_id
- Type
- string
- Obligatorisk
- Description
ID:t för en lyckad uppgift som du äger. Uppgiftstyper som stöds: Bild till 3D, Flera bilder till 3D, Text till 3D, Remesh, och Omtexturering. Uppgiften måste använda Meshy 6 eller nyare (inklusive Meshy 7) och måste ha statusen
SUCCEEDED. Reparera utskrivbarhet-uppgifter accepteras också.
- Name
- model_url
- Type
- string
- Obligatorisk
- Description
URL till en 3D-modell att analysera. Format som stöds:
.glb,.gltf,.obj,.fbx,.stl. Använd enhttp- ellerhttps-URL, eller en base64data:-URL för en GLB (data:model/gltf-binary;base64,...) eller glTF (data:model/gltf+json;base64,...)..obj-,.fbx- och.stl-filer måste skickas som enhttp- ellerhttps-URL.Maximal filstorlek: 400 MB för en
http- ellerhttps-URL, 100 MB för endata:-URI.En GLB-, glTF-, FBX- eller OBJ-fil över 100 MB kan ha högst 10 000 000 ytor. Ytor räknas som trianglar: en fyrkant räknas som 2, och ett nät som ritas flera gånger räknas en gång per kopia. Över 100 MB måste en FBX-fil vara binär FBX 7.1 eller nyare, och en GLB- eller glTF-fil får inte använda Draco-komprimering.
Meshys nedladdnings-URL:er (
assets.meshy.ai/…?Expires=…&Signature=…) är signerade och slutar fungera vid uppgiftensexpires_at; att hämta uppgiften igen förnyar dem inte. För en modell genererad med Meshy, skicka iställetinput_task_id. Det fungerar så länge källuppgiften är kvar (se Asset Retention). För att återanvända en modell efter det, ladda ner den innanexpires_atoch skicka din egen kopia.
Skicka högst ett av de två fälten för utskriftsstorlek. Om du skickar printer_type utan en storlek är standardstorleken:
.glboch allainput_task_id: 150 mm hög..stl: filens egen längsta sida, läst som millimeter. För en STL i andra enheter, skickaintended_print_longest_side_mm..obj,.fbx,.gltf: 150 mm på längsta sidan.
- Name
- printer_type
- Type
- string
- Description
Skrivaren du planerar att använda. Den sätter minsta väggtjocklek för väggtjockleks-kontrollen. Standardvärdet är
fdmnär du skickar en utskriftsstorlek utan den.Tillgängliga värden:
fdm: filament, 1,0 mm minsta vägg.sla: resin, 0,8 mm minsta vägg.full_color: full färg, 2,0 mm minsta vägg.
- Name
- intended_print_height_mm
- Type
- number
- Description
Höjd på utskriften, i millimeter. Intervall:
[1, 1000]. Avrundat till närmaste millimeter. Endast GLB-input.
- Name
- intended_print_longest_side_mm
- Type
- number
- Description
Längd på utskriftens längsta sida, i millimeter. Intervall:
[1, 1000]. Avrundat till närmaste millimeter. Fungerar med alla inputformat.
Returnerar
result-egenskapen i svaret innehåller id för den nyskapade Analysera utskrivbarhet-uppgiften.
Felscenarier
- Name
400 - Bad Request- Description
Begäran var inte acceptabel. Vanliga orsaker:
- Saknad parameter: varken
input_task_idellermodel_urlangavs. - Ogiltig UUID:
input_task_idär inte ett giltigt UUID. - Ogiltig modell-URL:
model_urlär felformaterad, använder ett filschema som inte stöds, eller har en filändelse som inte stöds. - Modellfil för stor:
model_url-innehållet överskred 400 MB (http- ellerhttps-URL) eller 100 MB (data:-URI). - För många ytor:
model_urlär en GLB-, glTF-, FBX- eller OBJ-fil över 100 MB med fler än 10 000 000 ytor. Minska antalet ytor och skicka sedan filen igen. - ASCII-FBX över 100 MB:
model_urlär en ASCII-FBX över 100 MB. Skicka den som binär FBX eller GLB. - Oläsbar modellfil:
model_urlär över 100 MB och dess header kan inte läsas, till exempel en Draco-komprimerad GLB eller glTF, eller en binär FBX äldre än 7.1. - Modellheader för komplex:
model_urlär över 100 MB och dess header har för många nät, noder eller poster att kontrollera. Minska antalet objekt i filen och skicka den sedan igen. - Modellfilen kunde inte laddas ner:
model_urlreturnerade ett fel, oftast för att en signerad Meshy-nedladdnings-URL har gått ut. Att hämta uppgiften igen returnerar samma URL med samma utgångstid, så skicka din egen kopia av filen, eller användinput_task_idmedan källuppgiften fortfarande finns kvar. - Uppgiften lyckades inte: den refererade uppgiften är fortfarande väntande, pågående, eller misslyckad.
- Ogiltig utskriftsstorlek:
intended_print_height_mmellerintended_print_longest_side_mmligger utanför[1, 1000], eller båda skickades. - Okänd skrivartyp:
printer_typeär intefdm,sla, ellerfull_color. - Höjd på en modell som inte är GLB:
intended_print_height_mmskickades med enmodel_urlsom inte är.glb. Användintended_print_longest_side_mmistället. - Kan inte storlekssätta denna modell efter höjd: vid den begärda höjden (eller standard 150 mm) skulle modellens längsta sida ligga utanför
[1, 1000]mm, modellen är platt, eller dess storlek kan inte fastställas. Användintended_print_longest_side_mmistället. För en.glbmodel_urloch vissainput_task_id-uppgifter upptäcks detta först efter att uppgiften har startat, och uppgiften avslutas då medFAILEDistället. - STL-storlek oanvändbar:
printer_typeskickades utan en storlek, och STL-filens egen längsta sida kan inte läsas eller ligger utanför[1, 1000]mm. Skickaintended_print_longest_side_mm.
- Saknad parameter: varken
- Name
401 - Unauthorized- Description
Autentiseringen misslyckades. Kontrollera din API-nyckel.
- Name
404 - Not Found- Description
Vanliga orsaker:
- Uppgiften finns inte, har tagits bort, eller ägs av en annan användare.
- Uppgiften använder en modell äldre än Meshy 6, eller dess mode producerar inte en 3D-tillgång.
- Den underliggande modellfilen finns inte längre tillgänglig i lagringen.
- Name
429 - Too Many Requests- Description
Du har överskridit din kvot för väntande uppgifter eller din hastighetsgräns.
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"
}
Hämta en Analysera utskrivbarhet-uppgift
Denna endpoint hämtar en analysera-utskrivbarhet-uppgift via dess ID.
Parametrar
- Name
- id
- Type
- path
- Description
ID:t för den analysera-utskrivbarhet-uppgift som ska hämtas.
Returnerar
Analysera utskrivbarhet-uppgiftsobjektet. Fältet printability är null tills uppgiften når SUCCEEDED. När väggtjocklek har kontrollerats innehåller printability även intended_print och 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
}
Ta bort en Analysera utskrivbarhet-uppgift
Denna endpoint tar permanent bort en analysera-utskrivbarhet-uppgift och dess cachade resultat. Denna åtgärd är oåterkallelig.
Sökvägsparametrar
- Name
- id
- Type
- path
- Description
ID:t för analysera-utskrivbarhet-uppgiften som ska tas bort.
Uppgiftsstatus
En uppgift som fortfarande är PENDING tas bort och de credits som
förbrukades vid skapandet återbetalas.
En uppgift som redan är IN_PROGRESS kan inte tas bort: förfrågan
avvisas med 409 Conflict och uppgiften fortsätter att köras. Credits för en uppgift
som arbetaren redan har påbörjat är inte återbetalningsbara, så att ta bort den mitt i körningen
skulle kosta dig både credits och resultatet. Vänta tills den når
SUCCEEDED, FAILED eller CANCELED, och ta sedan bort den.
En uppgift i ett slutgiltigt tillstånd (SUCCEEDED, FAILED eller CANCELED) tas bort
utan återbetalning.
Returnerar
Returnerar 200 OK vid lyckat resultat, eller 409 Conflict när uppgiften är
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."
}
Lista uppgifter för Analysera utskrivbarhet
Denna endpoint låter dig hämta en lista med uppgifter för Analysera utskrivbarhet.
Parametrar
Valfria attribut
- Name
- page_num
- Type
- integer
- Description
Sidnummer för paginering. Börjar på och standardvärdet är
1.
- Name
- page_size
- Type
- integer
- Description
Gräns för sidstorlek. Standardvärdet är
10objekt. Maximalt tillåtet är100objekt.
- 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.
Returnerar
Returnerar en paginerad lista med objekt för uppgifter för Analysera utskrivbarhet.
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
}
]
Strömma en Analysera utskrivbarhet-uppgift
Denna endpoint strömmar realtidsuppdateringar för en analysera-utskrivbarhet-uppgift med hjälp av Server-Sent Events (SSE).
Parametrar
- Name
- id
- Type
- path
- Description
Unik identifierare för den analysera-utskrivbarhet-uppgift som ska strömmas.
Returnerar
Returnerar en ström av Analysera utskrivbarhet-uppgiftsobjekt som Server-Sent Events.
Varje frame innehåller hela uppgiftsobjektet för stadiet — samma form som
Get-endpointen returnerar — så medan uppgiften är PENDING eller IN_PROGRESS är
utdatafälten helt enkelt inte ifyllda ännu (null, [] eller {}) och
finished_at är null. printability-blocket skickas först när uppgiften når 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
}
Objektet Analyze Printability Task
- Name
- id
- Type
- string
- Description
Unik identifierare för uppgiften. Även om vi som implementationsdetalj använder en k-sorterbar UUID för uppgifts-id:n bör du inte göra några antaganden om id:ts format.
- Name
- type
- Type
- string
- Description
Typ av analyze-printability-uppgift. Värdet är
print-analyze.
- Name
- status
- Type
- string
- Description
Uppgiftens status. Möjliga värden är ett av
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- 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
- 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 är slutförd kommer denna egenskap att vara
0.
- Name
- expires_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiftens resultat upphör att gälla i systemet, i millisekunder.
0om uppgiften ännu inte är slutförd.
- Name
- task_error
- Type
- object
- Description
Felinformation om uppgiften har misslyckats. Denna egenskap är
nullom uppgiften inte har misslyckats. Se Fel för mer information.- Name
message- Type
- string
- Description
Felmeddelande som beskriver vad som gick fel.
- Name
- printability
- Type
- object
- Description
Resultat av utskrivbarhetsutvärderingen.
nulltills uppgiften nårSUCCEEDED.- Name
_version- Type
- string
- Description
Schemaversion för utskrivbarhetsresultatet. För närvarande
v1.
- Name
status- Type
- string
- Description
Övergripande status. En av:
healthy: inga fel och inga varningar.warning: minst en varning, inga fel.error: minst ett fel.unknown: modellen kunde inte analyseras.
När väggtjockleken kontrollerades är detta den sämsta av kontrollerna ovan och
thin_walls.status. Från sämst till bäst:error,warning,unknown,healthy.
- Name
issue_count- Type
- integer
- Description
Totalt antal problem, lika med
error_count + warning_count.
- Name
error_count- Type
- integer
- Description
Antal problem på felnivå. Fel rapporteras när modellen inte är vattentät, har icke-positiv volym, eller har non-manifold-kanter. När väggtjockleken kontrollerades räknas väggar som är för tunna (
thin_walls.statusärerror) som ytterligare ett fel.
- Name
warning_count- Type
- integer
- Description
Antal problem på varningsnivå. Varningar utlöses när modellen innehåller degenererade ytor eller hål.
- Name
metrics- Type
- object
- Description
Rådata för geometri som returneras av utvärderaren.
- Name
is_watertight- Type
- boolean
- Description
truenär nätet inte har några gränskanter (dvs. är slutet).
- Name
volume- Type
- number
- Description
Modellens volym i kubikmeter.
- Name
non_manifold_edges- Type
- integer
- Description
Antal non-manifold-kanter.
- Name
degenerate_faces- Type
- integer
- Description
Antal degenererade ytor (ytor med nollarea eller ogiltiga ytor).
- Name
holes- Type
- integer
- Description
Antal hål (gränsslingor) i nätet.
- Name
intended_print- Type
- object
- Description
Skrivaren och storleken som väggtjockleks-kontrollen använde. Finns endast med när väggtjockleken kontrollerades.
- Name
printer_type- Type
- string
- Description
fdm,sla, ellerfull_color.
- Name
height_mm- Type
- number
- Description
Utskriftshöjden i millimeter, om utskriften dimensionerades utifrån höjd. Annars
null.
- Name
longest_side_mm- Type
- number
- Description
Utskriftens längsta sida i millimeter. När den dimensioneras efter höjd beräknas den utifrån modellens proportioner.
- Name
wall_thickness_mm- Type
- number
- Description
Den minsta väggtjockleken för
printer_type, i millimeter. Väggar som är tunnare än detta rapporteras som för tunna.
- Name
dimensions_mm- Type
- array
- Description
Utskriftens
[bredd, djup, höjd]i millimeter. Höjden kan skilja sig frånheight_mmmed en bråkdel av en millimeter.nullför annan indata än GLB, eller om modellens storlek inte kan fastställas.
- Name
thin_walls- Type
- object
- Description
Resultatet av väggtjockleks-kontrollen. Finns endast med när väggtjockleken kontrollerades.
- Name
thin_area_ratio- Type
- number
- Description
Andel av ytan, från
0till1, som är tunnare änintended_print.wall_thickness_mm.nullom modellen inte kunde mätas.
- Name
has_thin_walls- Type
- boolean
- Description
trueom någon del av ytan är för tunn. Skarpa hörn kan ensamt orsaka detta, så användstatusför att avgöra om väggarna behöver förtjockas.nullom modellen inte kunde mätas.
- Name
status- Type
- string
- Description
Utslaget för väggtjockleken. En av:
healthy: 5 % eller mindre av ytan är för tunn.error: mer än 5 % av ytan är för tunn. För att förtjocka väggarna, skicka denna uppgiftsidtill Reparera utskrivbarhet sominput_task_id(för en.stl,.fbx, eller.gltfmodel_url, skicka istället filen sommodel_url).unknown: modellen kunde inte mätas. Om själva väggtjockleks-kontrollen misslyckas avslutas uppgiften medFAILED.
- Name
evaluated_at- Type
- timestamp
- Description
Tidsstämpel för när analysen beräknades, i millisekunder sedan epok.
- Name
- consumed_credits
- Type
- integer
- Description
Alltid
0. Denna endpoint är 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
}