Druckbarkeit analysieren API

Analysieren Sie ein 3D-Modell auf FDM-Druckbarkeit — Dichtheit, Volumen, Löcher, nicht-mannigfaltige Kanten und entartete Flächen.


POST/openapi/v1/print/analyze

Erstellen einer Druckbarkeitsanalyse-Aufgabe

Dieser Endpunkt erstellt eine neue Druckbarkeitsanalyse-Aufgabe. Die Aufgabe bewertet ein 3D-Modell und berichtet über dessen Druckbarkeitsmetriken.

Wenn die Eingabeaufgabe bereits zwischengespeicherte Druckbarkeitsdaten hat, ist die zurückgegebene Aufgabe sofort bereit und der erste GET darauf wird das Analyseergebnis zurückgeben, ohne den Worker zu durchlaufen.

Parameter

  • Name
    model_url
    Type
    string
    Erforderlich
    Description

    URL eines 3D-Modells zur Analyse. Unterstützte Formate: .glb, .gltf, .obj, .fbx, .stl. Maximale Dateigröße: 100 MB. Muss http, https oder eine data: URL verwenden (Daten-URLs umgehen Erweiterungsprüfungen).

Rückgaben

Die result-Eigenschaft der Antwort enthält die id der neu erstellten Druckbarkeitsanalyse-Aufgabe.

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, verwendet ein nicht unterstütztes Schema oder hat eine nicht unterstützte Dateierweiterung.
    • Modell-Datei zu groß: model_url-Inhalt überschritt 100 MB.
    • Aufgabe nicht erfolgreich: Die referenzierte Aufgabe ist noch ausstehend, in Bearbeitung oder fehlgeschlagen.
  • Name
    401 - Unauthorized
    Description

    Authentifizierung fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.

  • Name
    403 - Forbidden
    Description

    Die Aufgabe existiert, wird jedoch von einem anderen Benutzer verwaltet.

  • Name
    404 - Not Found
    Description

    Häufige Ursachen:

    • Die Aufgabe existiert nicht oder wurde gelöscht.
    • Die Aufgabe verwendet ein Modell älter als Meshy 6 oder ihr Modus erzeugt kein 3D-Asset.
    • Die zugrunde liegende Modell-Datei ist nicht mehr im Speicher verfügbar.
  • Name
    429 - Too Many Requests
    Description

    Sie haben Ihr Kontingent für ausstehende Aufgaben oder Ihre Ratenbegrenzung überschritten.

Anfrage

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"
  }'

Antwort

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

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

Abrufen einer Druckbarkeitsanalyse-Aufgabe

Dieser Endpunkt ruft eine Druckbarkeitsanalyse-Aufgabe anhand ihrer ID ab.

Parameter

  • Name
    id
    Type
    path
    Description

    Die ID der Druckbarkeitsanalyse-Aufgabe, die abgerufen werden soll.

Rückgabe

Das Druckbarkeitsanalyse-Aufgabenobjekt. Das Feld Druckbarkeit ist null, bis die Aufgabe den Status SUCCEEDED erreicht.

Anfrage

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

Antwort

{
  "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

Löschen einer Druckbarkeit analysieren Aufgabe

Dieser Endpunkt löscht dauerhaft eine Druckbarkeit analysieren Aufgabe und deren zwischengespeichertes Ergebnis. Diese Aktion ist unwiderruflich.

Pfadparameter

  • Name
    id
    Type
    path
    Description

    Die ID der Druckbarkeit analysieren Aufgabe, die gelöscht werden soll.

Rückgaben

Gibt 200 OK bei Erfolg zurück.

Anfrage

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

Antwort

// Returns 200 Ok on success.

GET/openapi/v1/print/analyze

Liste der Druckbarkeit analysieren Aufgaben

Dieser Endpunkt ermöglicht es Ihnen, eine Liste von Druckbarkeit analysieren Aufgaben abzurufen.

Parameter

Optionale Attribute

  • Name
    page_num
    Type
    integer
    Description

    Seitennummer für die Paginierung. Beginnt und standardmäßig auf 1.

  • Name
    page_size
    Type
    integer
    Description

    Seitengrößenlimit. Standardmäßig 10 Elemente. Maximal erlaubt sind 50 Elemente.

  • Name
    sort_by
    Type
    string
    Description

    Feld zum Sortieren. Verfügbare Werte:

    • +created_at: Nach Erstellungszeit in aufsteigender Reihenfolge sortieren.
    • -created_at: Nach Erstellungszeit in absteigender Reihenfolge sortieren.

Rückgaben

Gibt eine paginierte Liste von Druckbarkeit analysieren Aufgaben Objekten zurück.

Anfrage

GET
/openapi/v1/print/analyze
curl https://api.meshy.ai/openapi/v1/print/analyze?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Antwort

[
  {
    "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

Streamen einer Druckbarkeit analysieren Aufgabe

Dieser Endpunkt streamt Echtzeit-Updates für eine Druckbarkeit analysieren Aufgabe unter Verwendung von Server-Sent Events (SSE).

Parameter

  • Name
    id
    Type
    path
    Description

    Eindeutiger Bezeichner für die Druckbarkeit analysieren Aufgabe, die gestreamt werden soll.

Rückgaben

Gibt einen Stream von Druckbarkeit analysieren Aufgabenobjekten als Server-Sent Events zurück.

Für PENDING oder IN_PROGRESS Aufgaben enthält der Antwortstream nur die notwendigen Felder progress und status. Der Druckbarkeit Block wird nur gesendet, wenn die Aufgabe SUCCEEDED erreicht.

Anfrage

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

Antwortstream

// 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 Druckbarkeit analysieren Aufgabenobjekt

  • Name
    id
    Type
    string
    Description

    Eindeutiger Bezeichner für die Aufgabe. Obwohl wir eine k-sortierbare UUID für Aufgaben-IDs als Implementierungsdetail verwenden, sollten Sie keine Annahmen über das Format der ID machen.

  • Name
    type
    Type
    string
    Description

    Typ der Druckbarkeit analysieren Aufgabe. Der Wert ist print-analyze.

  • Name
    status
    Type
    string
    Description

    Status der Aufgabe. Mögliche Werte sind PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Fortschritt der Aufgabe. Wenn die Aufgabe noch nicht gestartet wurde, ist dieser Wert 0. Sobald die Aufgabe erfolgreich abgeschlossen ist, wird dieser Wert 100.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Die Anzahl der vorhergehenden Aufgaben.

  • Name
    created_at
    Type
    timestamp
    Description

    Zeitstempel, wann die Aufgabe erstellt wurde, in Millisekunden.

  • Name
    started_at
    Type
    timestamp
    Description

    Zeitstempel, wann die Aufgabe gestartet wurde, in Millisekunden. Wenn die Aufgabe noch nicht gestartet wurde, ist dieser Wert 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Zeitstempel, wann die Aufgabe abgeschlossen wurde, in Millisekunden. Wenn die Aufgabe noch nicht abgeschlossen ist, ist dieser Wert 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Zeitstempel, wann das Aufgabenergebnis aus dem System gelöscht wird, in Millisekunden. 0, wenn die Aufgabe noch nicht abgeschlossen ist.

  • Name
    task_error
    Type
    object
    Description

    Fehlerinformationen, wenn die Aufgabe fehlgeschlagen ist. Diese Eigenschaft ist null, wenn die Aufgabe nicht fehlgeschlagen ist. Siehe Fehler für weitere Details.

    • 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

      Schema-Version 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 Fehler auf Fehlerstufe. Fehler treten auf, wenn das Modell nicht wasserdicht ist, kein positives Volumen hat oder nicht-mannigfaltige Kanten aufweist.

    • Name
      warning_count
      Type
      integer
      Description

      Anzahl der Warnungen auf Warnstufe. Warnungen treten auf, wenn das Modell entartete Flächen oder Löcher enthält.

    • Name
      metrics
      Type
      object
      Description

      Rohgeometriemetriken, die vom Evaluator zurückgegeben werden.

      • Name
        is_watertight
        Type
        boolean
        Description

        true, wenn das Netz 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 entarteten Flächen (Flächen mit Nullfläche oder ungültige Flächen).

      • Name
        holes
        Type
        integer
        Description

        Anzahl der Löcher (Randloops) im Netz.

    • Name
      evaluated_at
      Type
      timestamp
      Description

      Zeitstempel, wann die Analyse berechnet wurde, in Millisekunden seit der Epoche.

  • Name
    consumed_credits
    Type
    integer
    Description

    Immer 0. Dieser Endpunkt ist kostenlos.

Das Druckbarkeit analysieren Aufgabenobjekt

{
  "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
}