API zur Analyse der Druckbarkeit
Analysieren Sie ein 3D-Modell auf FDM-Druckbarkeit — Wasserdichtheit, Volumen, Löcher, Nicht-Mannigfaltigkeitskanten und degenerierte Flächen.
Aufgabe zur Analyse der Druckbarkeit erstellen
Dieser endpoint erstellt eine neue Aufgabe zur Analyse der Druckbarkeit. Die Aufgabe bewertet ein 3D-Modell und meldet seine Druckbarkeitsmetriken.
Wenn für die Eingabeaufgabe bereits eine Druckbarkeitsanalyse im Cache vorhanden ist, ist die zurückgegebene Aufgabe sofort bereit, und das erste GET darauf gibt das Analyseergebnis zurück, ohne den Worker zu durchlaufen.
Parameter
Nur eines von input_task_id oder model_url ist erforderlich. Wenn beide angegeben werden, hat input_task_id Vorrang.
- Name
- input_task_id
- Type
- string
- Erforderlich
- Description
Die ID einer erfolgreich abgeschlossenen Aufgabe, die Ihnen gehört. Unterstützte Aufgabentypen: Bild zu 3D, Mehrere Bilder zu 3D, Text zu 3D, Remesh und Retexture. Die Aufgabe muss Meshy 6 (oder ein beliebiges Preview-Modell) verwenden und den Status
SUCCEEDEDhaben.
- Name
- model_url
- Type
- string
- Erforderlich
- Description
URL eines zu analysierenden 3D-Modells. Unterstützte Formate:
.glb,.gltf,.obj,.fbx,.stl. Maximale Dateigröße: 100 MB. Musshttp,httpsoder einedata:-URL verwenden (data-URLs umgehen Erweiterungsprüfungen).
Rückgaben
Die Eigenschaft result der Antwort enthält die id der neu erstellten Aufgabe zur Analyse der Druckbarkeit.
Fehlermodi
- Name
400 - Bad Request- Description
Die Anfrage war nicht akzeptabel. Häufige Ursachen:
- Fehlender Parameter: Weder
input_task_idnochmodel_urlwurde angegeben. - Ungültige UUID:
input_task_idist keine gültige UUID. - Ungültige Modell-URL:
model_urlist fehlerhaft formatiert, verwendet ein nicht unterstütztes Schema oder hat eine nicht unterstützte Dateierweiterung. - Modelldatei zu groß: Der Body von
model_urlhat 100 MB überschritten. - Aufgabe nicht erfolgreich abgeschlossen: Die referenzierte Aufgabe ist noch ausstehend, in Bearbeitung oder fehlgeschlagen.
- Fehlender Parameter: Weder
- Name
401 - Unauthorized- Description
Authentifizierung fehlgeschlagen. Bitte überprüfen Sie Ihre API key.
- Name
403 - Forbidden- Description
Die Aufgabe existiert, gehört aber einem anderen Benutzer.
- Name
404 - Not Found- Description
Häufige Ursachen:
- Die Aufgabe existiert nicht oder wurde gelöscht.
- Die Aufgabe verwendet ein Modell, das älter als Meshy 6 ist, oder ihr Modus erzeugt kein 3D-Asset.
- Die zugrunde liegende Modelldatei ist im Speicher nicht mehr verfügbar.
- Name
429 - Too Many Requests- Description
Sie haben Ihr Kontingent für ausstehende Aufgaben oder Ihr Ratenlimit überschritten.
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"
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Eine Aufgabe zur Analyse der Druckbarkeit abrufen
Dieser endpoint ruft eine Aufgabe zur Analyse der Druckbarkeit anhand ihrer ID ab.
Parameter
- Name
- id
- Type
- path
- Description
Die ID der Aufgabe zur Analyse der Druckbarkeit, die abgerufen werden soll.
Rückgabe
Das Objekt der Aufgabe zur Analyse der Druckbarkeit. Das Feld printability ist null, bis die Aufgabe SUCCEEDED erreicht.
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
}
Eine Aufgabe zur Druckbarkeitsanalyse löschen
Dieser endpoint löscht eine Aufgabe zur Druckbarkeitsanalyse und ihr zwischengespeichertes Ergebnis dauerhaft. Diese Aktion ist unumkehrbar.
Pfadparameter
- Name
- id
- Type
- path
- Description
Die ID der zu löschenden Aufgabe zur Druckbarkeitsanalyse.
Rückgabe
Gibt bei Erfolg 200 OK zurück.
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
// Returns 200 Ok on success.
Druckbarkeitsanalyse-Aufgaben auflisten
Dieser endpoint ermöglicht es Ihnen, eine Liste von Druckbarkeitsanalyse-Aufgaben abzurufen.
Parameter
Optionale Attribute
- Name
- page_num
- Type
- integer
- Description
Seitennummer für die Paginierung. Beginnt bei
1und ist standardmäßig1.
- Name
- page_size
- Type
- integer
- Description
Limit für die Seitengröße. Standardmäßig
10Elemente. Maximal erlaubt sind50Elemente.
- Name
- sort_by
- Type
- string
- Description
Feld, nach dem sortiert werden soll. Verfügbare Werte:
+created_at: Nach Erstellungszeit in aufsteigender Reihenfolge sortieren.-created_at: Nach Erstellungszeit in absteigender Reihenfolge sortieren.
Rückgabe
Gibt eine paginierte Liste von Druckbarkeitsanalyse-Aufgabenobjekten zurück.
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
}
]
Einen Analyze-Printability-Task streamen
Dieser endpoint streamt Echtzeit-Updates für einen Analyze-Printability-Task mithilfe von Server-Sent Events (SSE).
Parameter
- Name
- id
- Type
- path
- Description
Eindeutige Kennung des zu streamenden Analyze-Printability-Tasks.
Rückgaben
Gibt einen Stream von Analyze-Printability-Task-Objekten als Server-Sent Events zurück.
Bei PENDING- oder IN_PROGRESS-Tasks enthält der Antwort-Stream nur die erforderlichen Felder progress und status. Der printability-Block wird erst gesendet, wenn der Task SUCCEEDED erreicht.
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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
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
}
Das Aufgabenobjekt für die Druckbarkeitsanalyse
- Name
- id
- Type
- string
- Description
Eindeutige Kennung für die Aufgabe. Obwohl wir als Implementierungsdetail eine k-sortierbare UUID für Aufgaben-IDs verwenden, solltest du keine Annahmen über das Format der ID treffen.
- Name
- type
- Type
- string
- Description
Typ der Aufgabe zur Druckbarkeitsanalyse. Der Wert ist
print-analyze.
- Name
- status
- Type
- string
- Description
Status der Aufgabe. Mögliche Werte sind einer von
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- progress
- Type
- integer
- Description
Fortschritt der Aufgabe. Wenn die Aufgabe noch nicht gestartet wurde, ist diese Eigenschaft
0. Sobald die Aufgabe erfolgreich abgeschlossen wurde, wird sie zu100.
- Name
- preceding_tasks
- Type
- integer
- Description
Die Anzahl der vorausgehenden Aufgaben.
Der Wert dieses Feldes ist nur aussagekräftig, wenn der Aufgabenstatus
PENDINGist.
- Name
- created_at
- Type
- timestamp
- Description
Zeitstempel, zu dem die Aufgabe erstellt wurde, in Millisekunden.
- Name
- started_at
- Type
- timestamp
- Description
Zeitstempel, zu dem die Aufgabe gestartet wurde, in Millisekunden. Wenn die Aufgabe noch nicht gestartet wurde, ist diese Eigenschaft
0.
- Name
- finished_at
- Type
- timestamp
- Description
Zeitstempel, zu dem die Aufgabe abgeschlossen wurde, in Millisekunden. Wenn die Aufgabe noch nicht abgeschlossen wurde, ist diese Eigenschaft
0.
- Name
- expires_at
- Type
- timestamp
- Description
Zeitstempel, zu dem das Aufgabenergebnis aus dem System abläuft, in Millisekunden.
0, wenn die Aufgabe noch nicht abgeschlossen wurde.
- Name
- task_error
- Type
- object
- Description
Fehlerinformationen, falls die Aufgabe fehlgeschlagen ist. Diese Eigenschaft ist
null, wenn die Aufgabe nicht fehlgeschlagen ist. Weitere Details findest du unter Fehler.- Name
message- Type
- string
- Description
Fehlermeldung, die beschreibt, was schiefgelaufen ist.
- Name
- printability
- Type
- object
- Description
Ergebnis der Druckbarkeitsbewertung.
null, bis die AufgabeSUCCEEDEDerreicht.- Name
_version- Type
- string
- Description
Schemaversion des Druckbarkeitsergebnisses. Derzeit
v1.
- Name
status- Type
- string
- Description
Gesamtstatus. Einer von:
healthy: keine Fehler und keine Warnungen.warning: mindestens eine Warnung, keine Fehler.error: mindestens ein Fehler.unknown: das Modell konnte nicht analysiert werden.
- Name
issue_count- Type
- integer
- Description
Gesamtanzahl der Probleme, gleich
error_count + warning_count.
- Name
error_count- Type
- integer
- Description
Anzahl der Probleme auf Fehlerebene. Fehler werden ausgelöst, wenn das Modell nicht wasserdicht ist, ein nicht-positives Volumen hat oder nicht-mannigfaltige Kanten aufweist.
- Name
warning_count- Type
- integer
- Description
Anzahl der Probleme auf Warnungsebene. Warnungen werden ausgelöst, wenn das Modell degenerierte Flächen oder Löcher enthält.
- Name
metrics- Type
- object
- Description
Rohe Geometriemetriken, die vom Evaluator zurückgegeben werden.
- Name
is_watertight- Type
- boolean
- Description
true, wenn das Mesh keine Randkanten hat (d. h. geschlossen ist).
- Name
volume- Type
- number
- Description
Volumen des Modells in Kubikmetern.
- Name
non_manifold_edges- Type
- integer
- Description
Anzahl der nicht-mannigfaltigen Kanten.
- Name
degenerate_faces- Type
- integer
- Description
Anzahl der degenerierten Flächen (Flächen mit Nullfläche oder ungültige Flächen).
- Name
holes- Type
- integer
- Description
Anzahl der Löcher (Randschleifen) im Mesh.
- Name
evaluated_at- Type
- timestamp
- Description
Zeitstempel, zu dem die Analyse berechnet wurde, in Millisekunden seit der Epoche.
- Name
- consumed_credits
- Type
- integer
- Description
Immer
0. Dieser endpoint ist kostenlos.
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
}