API di Analizza Stampabilità

Analizza un modello 3D per la stampabilità FDM — tenuta stagna, volume, fori, spigoli non manifold e facce degenerate.


POST/openapi/v1/print/analyze

Crea un'attività di Analizza Stampabilità

Questo endpoint crea una nuova attività di analizza stampabilità. L'attività valuta un modello 3D e riporta le sue metriche di stampabilità.

Se l'attività di input ha già una stampabilità memorizzata nella cache, l'attività restituita è immediatamente pronta e il primo GET su di essa restituirà il risultato dell'analisi senza passare attraverso il lavoratore.

Parametri

  • Name
    input_task_id
    Type
    string
    Obbligatorio
    Description

    L'ID di un'attività riuscita di cui sei proprietario. Tipi di attività supportati: Immagine in 3D, Multi-immagine in 3D, Testo in 3D, Remesh, e Retexture. L'attività deve utilizzare Meshy 6 o versioni successive (incluso Meshy 7) e deve avere uno stato di SUCCEEDED.

  • Name
    model_url
    Type
    string
    Obbligatorio
    Description

    URL di un modello 3D da analizzare. Formati supportati: .glb, .gltf, .obj, .fbx, .stl. Dimensione massima del file: 100 MB. Deve utilizzare http, https, o un URL data: (gli URL data bypassano i controlli delle estensioni).

Restituisce

La proprietà result della risposta contiene l'id della nuova attività di analizza stampabilità creata.

Modalità di Fallimento

  • Name
    400 - Bad Request
    Description

    La richiesta non era accettabile. Cause comuni:

    • Parametro mancante: né input_task_idmodel_url sono stati forniti.
    • UUID non valido: input_task_id non è un UUID valido.
    • URL del modello non valido: model_url è malformato, utilizza uno schema non supportato o ha un'estensione di file non supportata.
    • File del modello troppo grande: il corpo di model_url ha superato i 100 MB.
    • Attività non riuscita: l'attività di riferimento è ancora in attesa, in corso o fallita.
  • Name
    401 - Unauthorized
    Description

    Autenticazione fallita. Si prega di controllare la tua chiave API.

  • Name
    403 - Forbidden
    Description

    L'attività esiste ma è di proprietà di un altro utente.

  • Name
    404 - Not Found
    Description

    Cause comuni:

    • L'attività non esiste o è stata eliminata.
    • L'attività utilizza un modello più vecchio di Meshy 6, o la sua modalità non produce un asset 3D.
    • Il file del modello sottostante non è più disponibile in archivio.
  • Name
    429 - Too Many Requests
    Description

    Hai superato la tua quota di attività in sospeso o il limite di frequenza.

Richiesta

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

Risposta

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

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

Recupera un'attività di Analizza Stampabilità

Questo endpoint recupera un'attività di analizza stampabilità tramite il suo ID.

Parametri

  • Name
    id
    Type
    path
    Description

    L'ID dell'attività di analizza stampabilità da recuperare.

Restituisce

L'Oggetto Attività di Analizza Stampabilità. Il campo stampabilità è null fino a quando l'attività non raggiunge SUCCEEDED.

Richiesta

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

Risposta

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

Elimina un'attività di Analizza Stampabilità

Questo endpoint elimina permanentemente un'attività di analizza stampabilità e il suo risultato memorizzato nella cache. Questa azione è irreversibile.

Parametri del percorso

  • Name
    id
    Type
    path
    Description

    L'ID dell'attività di analizza stampabilità da eliminare.

Restituisce

Restituisce 200 OK in caso di successo.

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

Elenco delle attività di Analizza stampabilità

Questo endpoint ti permette di recuperare un elenco di attività di analizza-stampabilità.

Parametri

Attributi opzionali

  • Name
    page_num
    Type
    integer
    Description

    Numero di pagina per la paginazione. Inizia e predefinito a 1.

  • Name
    page_size
    Type
    integer
    Description

    Limite della dimensione della pagina. Predefinito a 10 elementi. Il massimo consentito è 50 elementi.

  • Name
    sort_by
    Type
    string
    Description

    Campo per l'ordinamento. Valori disponibili:

    • +created_at: Ordina per tempo di creazione in ordine crescente.
    • -created_at: Ordina per tempo di creazione in ordine decrescente.

Restituisce

Restituisce un elenco paginato di Oggetti Attività di Analizza Stampabilità.

Richiesta

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

Risposta

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

Trasmetti un'attività di Analizza Stampabilità

Questo endpoint trasmette aggiornamenti in tempo reale per un'attività di analizza stampabilità utilizzando Server-Sent Events (SSE).

Parametri

  • Name
    id
    Type
    path
    Description

    Identificatore univoco per l'attività di analizza stampabilità da trasmettere.

Restituisce

Restituisce un flusso di Oggetti Attività di Analizza Stampabilità come Server-Sent Events.

Per attività PENDING o IN_PROGRESS, il flusso di risposta includerà solo i campi necessari progress e status. Il blocco printability viene inviato solo quando l'attività raggiunge SUCCEEDED.

Richiesta

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

Flusso di Risposta

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

L'oggetto Attività di Analizza Stampabilità

  • Name
    id
    Type
    string
    Description

    Identificatore univoco per l'attività. Anche se utilizziamo un UUID ordinabile per id delle attività come dettaglio di implementazione, non dovresti fare alcuna ipotesi sul formato dell'id.

  • Name
    type
    Type
    string
    Description

    Tipo di attività di analisi della stampabilità. Il valore è print-analyze.

  • Name
    status
    Type
    string
    Description

    Stato dell'attività. I valori possibili sono uno di PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progresso dell'attività. Se l'attività non è ancora iniziata, questa proprietà sarà 0. Una volta che l'attività è riuscita, questo diventerà 100.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Il conteggio delle attività precedenti.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp di quando l'attività è stata creata, in millisecondi.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp di quando l'attività è iniziata, in millisecondi. Se l'attività non è ancora iniziata, questa proprietà sarà 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp di quando l'attività è stata completata, in millisecondi. Se l'attività non è ancora completata, questa proprietà sarà 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Timestamp di quando il risultato dell'attività scadrà dal sistema, in millisecondi. 0 se l'attività non è ancora completata.

  • Name
    task_error
    Type
    object
    Description

    Informazioni sull'errore se l'attività è fallita. Questa proprietà è null se l'attività non è fallita. Vedi Errori per maggiori dettagli.

    • Name
      message
      Type
      string
      Description

      Messaggio di errore che descrive cosa è andato storto.

  • Name
    printability
    Type
    object
    Description

    Risultato della valutazione della stampabilità. null fino a quando l'attività non raggiunge SUCCEEDED.

    • Name
      _version
      Type
      string
      Description

      Versione dello schema del risultato di stampabilità. Attualmente v1.

    • Name
      status
      Type
      string
      Description

      Stato generale. Uno di:

      • healthy: nessun errore e nessun avviso.
      • warning: almeno un avviso, nessun errore.
      • error: almeno un errore.
      • unknown: il modello non può essere analizzato.
    • Name
      issue_count
      Type
      integer
      Description

      Conteggio totale dei problemi, uguale a error_count + warning_count.

    • Name
      error_count
      Type
      integer
      Description

      Numero di problemi a livello di errore. Gli errori vengono sollevati quando il modello non è stagno, ha volume non positivo, o ha spigoli non manifold.

    • Name
      warning_count
      Type
      integer
      Description

      Numero di problemi a livello di avviso. Gli avvisi vengono sollevati quando il modello contiene facce degenerate o buchi.

    • Name
      metrics
      Type
      object
      Description

      Metriche grezze della geometria restituite dal valutatore.

      • Name
        is_watertight
        Type
        boolean
        Description

        true quando la mesh non ha spigoli di confine (cioè, è chiusa).

      • Name
        volume
        Type
        number
        Description

        Volume del modello in metri cubi.

      • Name
        non_manifold_edges
        Type
        integer
        Description

        Conteggio degli spigoli non manifold.

      • Name
        degenerate_faces
        Type
        integer
        Description

        Conteggio delle facce degenerate (facce a zero area o non valide).

      • Name
        holes
        Type
        integer
        Description

        Conteggio dei buchi (loop di confine) nella mesh.

    • Name
      evaluated_at
      Type
      timestamp
      Description

      Timestamp di quando l'analisi è stata calcolata, in millisecondi dall'epoca.

  • Name
    consumed_credits
    Type
    integer
    Description

    Sempre 0. Questo endpoint è gratuito.

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
}