Printbaarheid analyseren API

Analyseer een 3D-model op FDM-printbaarheid — waterdichtheid, volume, gaten, niet-manifold randen en gedegenereerde vlakken.


POST/openapi/v1/print/analyze

Een taak voor Printbaarheid analyseren maken

Deze endpoint maakt een nieuwe taak voor printbaarheid analyseren aan. De taak evalueert een 3D-model en rapporteert de printbaarheidsstatistieken.

Als de invoertaak al gecachte printbaarheid heeft, is de geretourneerde taak onmiddellijk klaar en retourneert de eerste GET erop het analyseresultaat zonder via de worker te gaan.

Parameters

  • Name
    model_url
    Type
    string
    Verplicht
    Description

    URL van een 3D-model om te analyseren. Ondersteunde formaten: .glb, .gltf, .obj, .fbx, .stl. Maximale bestandsgrootte: 100 MB. Moet een http-, https- of data:-URL gebruiken (data-URL's omzeilen extensiecontroles).

Retourneert

De eigenschap result van de response bevat de id van de nieuw aangemaakte taak voor printbaarheid analyseren.

Foutmodi

  • Name
    400 - Bad Request
    Description

    De aanvraag was onaanvaardbaar. Veelvoorkomende oorzaken:

    • Ontbrekende parameter: noch input_task_id noch model_url is opgegeven.
    • Ongeldige UUID: input_task_id is geen geldige UUID.
    • Ongeldige model-URL: model_url is verkeerd gevormd, gebruikt een niet-ondersteund schema, of heeft een niet-ondersteunde bestandsextensie.
    • Modelbestand te groot: de body van model_url overschreed 100 MB.
    • Taak niet geslaagd: de gerefereerde taak is nog in behandeling, in progress, of mislukt.
  • Name
    401 - Unauthorized
    Description

    Authenticatie mislukt. Controleer je API-sleutel.

  • Name
    403 - Forbidden
    Description

    De taak bestaat, maar is eigendom van een andere gebruiker.

  • Name
    404 - Not Found
    Description

    Veelvoorkomende oorzaken:

    • De taak bestaat niet of is verwijderd.
    • 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 opslag.
  • Name
    429 - Too Many Requests
    Description

    Je hebt je quotum voor taken in behandeling of rate limit overschreden.

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

Een taak voor Printbaarheid analyseren ophalen

Deze endpoint haalt een taak voor printbaarheid analyseren op via de ID.

Parameters

  • Name
    id
    Type
    path
    Description

    De ID van de taak voor printbaarheid analyseren die moet worden opgehaald.

Retourneert

Het taakobject voor Printbaarheid analyseren. Het veld printability is null totdat de taak SUCCEEDED bereikt.

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

Een taak voor Printbaarheid analyseren verwijderen

Deze endpoint verwijdert permanent een taak voor Printbaarheid analyseren en het in cache opgeslagen resultaat ervan. Deze actie is onomkeerbaar.

Padparameters

  • Name
    id
    Type
    path
    Description

    De ID van de taak voor Printbaarheid analyseren die moet worden verwijderd.

Retourneert

Retourneert 200 OK bij succes.

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

Lijst met taken voor Printbaarheid analyseren

Met deze endpoint kun je een lijst met taken voor printbaarheid analyseren ophalen.

Parameters

Optionele attributen

  • Name
    page_num
    Type
    integer
    Description

    Paginanummer voor paginering. Begint en staat standaard op 1.

  • Name
    page_size
    Type
    integer
    Description

    Limiet voor paginagrootte. Staat standaard op 10 items. Het maximaal toegestane aantal is 50 items.

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

Retourneert

Retourneert een gepagineerde lijst met taakobjecten voor Printbaarheid analyseren.

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

Stream een Printbaarheid analyseren-taak

Deze endpoint streamt realtime-updates voor een Printbaarheid analyseren-taak met Server-Sent Events (SSE).

Parameters

  • Name
    id
    Type
    path
    Description

    Unieke identifier voor de Printbaarheid analyseren-taak om te streamen.

Retourneert

Retourneert een stream van Printbaarheid analyseren-taakobjecten als Server-Sent Events.

Voor PENDING- of IN_PROGRESS-taken bevat de responsstream alleen de noodzakelijke velden progress en status. Het blok printability wordt pas verzonden zodra de taak SUCCEEDED bereikt.

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
}

Het taakobject Printbaarheid analyseren

  • Name
    id
    Type
    string
    Description

    Unieke identificatie voor de taak. Hoewel we een k-sorteerbare UUID gebruiken voor taak-id's als implementatiedetail, moet je geen aannames doen over de indeling van de id.

  • Name
    type
    Type
    string
    Description

    Type van de taak voor printbaarheid analyseren. 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 is gestart, is deze eigenschap 0. Zodra de taak is geslaagd, wordt dit 100.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Het aantal voorafgaande taken.

  • 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 is gestart, is deze eigenschap 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is voltooid, in milliseconden. Als de taak nog niet is voltooid, is deze eigenschap 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer het taakresultaat uit het systeem verloopt, in milliseconden. 0 als de taak nog niet is voltooid.

  • Name
    task_error
    Type
    object
    Description

    Foutinformatie als de taak is mislukt. Deze eigenschap is null als de taak niet is mislukt. Zie Fouten voor meer details.

    • Name
      message
      Type
      string
      Description

      Foutmelding die beschrijft wat er mis is gegaan.

  • Name
    printability
    Type
    object
    Description

    Evaluatieresultaat van de printbaarheid. null totdat de taak SUCCEEDED bereikt.

    • 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.
    • 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, geen positief volume heeft of niet-manifold randen heeft.

    • 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

        true wanneer de mesh geen begrenzingsranden 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 nul oppervlak of ongeldige vlakken).

      • Name
        holes
        Type
        integer
        Description

        Aantal gaten (begrenzingslussen) in de mesh.

    • Name
      evaluated_at
      Type
      timestamp
      Description

      Tijdstempel van wanneer de analyse is berekend, in milliseconden sinds epoch.

  • Name
    consumed_credits
    Type
    integer
    Description

    Altijd 0. Deze 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
}