API zur Analyse der Druckbarkeit

Analysieren Sie ein 3D-Modell auf FDM-Druckbarkeit — Wasserdichtheit, Volumen, Löcher, Nicht-Mannigfaltigkeitskanten und degenerierte Flächen.


POST/openapi/v1/print/analyze

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

  • 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 SUCCEEDED haben.

  • 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. Muss http, https oder eine data:-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_id noch model_url wurde angegeben.
    • Ungültige UUID: input_task_id ist keine gültige UUID.
    • Ungültige Modell-URL: model_url ist fehlerhaft formatiert, verwendet ein nicht unterstütztes Schema oder hat eine nicht unterstützte Dateierweiterung.
    • Modelldatei zu groß: Der Body von model_url hat 100 MB überschritten.
    • Aufgabe nicht erfolgreich abgeschlossen: Die referenzierte Aufgabe ist noch ausstehend, in Bearbeitung oder fehlgeschlagen.
  • 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

POST
/openapi/v1/print/analyze
# 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"
}

GET/openapi/v1/print/analyze/:id

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

GET
/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f
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
}

DELETE/openapi/v1/print/analyze/:id

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

DELETE
/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f
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.

GET/openapi/v1/print/analyze

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 1 und ist standardmäßig 1.

  • Name
    page_size
    Type
    integer
    Description

    Limit für die Seitengröße. Standardmäßig 10 Elemente. Maximal erlaubt sind 50 Elemente.

  • 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

GET
/openapi/v1/print/analyze
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
  }
]

GET/openapi/v1/print/analyze/:id/stream

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

GET
/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
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 zu 100.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Die Anzahl der vorausgehenden Aufgaben.

  • 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 Aufgabe SUCCEEDED erreicht.

    • 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
}