Basılabilirliği analiz et API'si

Bir 3D modeli FDM basılabilirliği açısından analiz edin — su geçirmezlik, hacim, delikler, manifold olmayan kenarlar ve bozuk yüzeyler.


POST/openapi/v1/print/analyze

Basılabilirliği analiz et görevi oluştur

Bu uç nokta yeni bir basılabilirliği analiz et görevi oluşturur. Görev, bir 3D modeli değerlendirir ve basılabilirlik metriklerini raporlar.

Girdi görevinin zaten önbelleğe alınmış basılabilirliği varsa, döndürülen görev hemen hazır olur ve üzerindeki ilk GET, worker üzerinden geçmeden analiz sonucunu döndürür.

Parametreler

  • Name
    model_url
    Type
    string
    Zorunlu
    Description

    Analiz edilecek bir 3D modelin URL'si. Desteklenen biçimler: .glb, .gltf, .obj, .fbx, .stl. Maksimum dosya boyutu: 100 MB. http, https veya bir data: URL'si kullanmalıdır (data URL'leri uzantı kontrollerini atlar).

Dönen değerler

Yanıtın result özelliği, yeni oluşturulan basılabilirliği analiz et görevinin id değerini içerir.

Hata Modları

  • Name
    400 - Bad Request
    Description

    İstek kabul edilemezdi. Yaygın nedenler:

    • Eksik parametre: ne input_task_id ne de model_url sağlandı.
    • Geçersiz UUID: input_task_id geçerli bir UUID değil.
    • Geçersiz model URL'si: model_url hatalı biçimlendirilmiş, desteklenmeyen bir şema kullanıyor veya desteklenmeyen bir dosya uzantısına sahip.
    • Model dosyası çok büyük: model_url gövdesi 100 MB'ı aştı.
    • Görev başarılı değil: başvurulan görev hâlâ beklemede, progress durumunda veya başarısız olmuş.
  • Name
    401 - Unauthorized
    Description

    Kimlik doğrulama başarısız oldu. Lütfen API anahtarınızı kontrol edin.

  • Name
    403 - Forbidden
    Description

    Görev mevcut ancak farklı bir kullanıcıya ait.

  • Name
    404 - Not Found
    Description

    Yaygın nedenler:

    • Görev mevcut değil veya silinmiş.
    • Görev Meshy 6'dan daha eski bir model kullanıyor ya da mode değeri bir 3D asset üretmiyor.
    • Altta yatan model dosyası artık depolamada mevcut değil.
  • Name
    429 - Too Many Requests
    Description

    Bekleyen görev kotanızı veya hız sınırını aştınız.

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

Bir Basılabilirliği analiz et görevini al

Bu uç nokta, bir analyze-printability görevini ID'sine göre alır.

Parametreler

  • Name
    id
    Type
    path
    Description

    Alınacak analyze-printability görevinin ID'si.

Döndürür

Basılabilirliği analiz et görev nesnesi. printability alanı, görev SUCCEEDED durumuna ulaşana kadar null olur.

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

Bir Basılabilirliği analiz et Görevini Sil

Bu uç nokta, bir basılabilirliği analiz et görevini ve önbelleğe alınmış sonucunu kalıcı olarak siler. Bu işlem geri alınamaz.

Yol Parametreleri

  • Name
    id
    Type
    path
    Description

    Silinecek basılabilirliği analiz et görevinin ID'si.

Döndürür

Başarılı olduğunda 200 OK döndürür.

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

Basılabilirliği analiz et görevlerini listele

Bu uç nokta, basılabilirliği analiz et görevlerinin bir listesini almanıza olanak tanır.

Parametreler

İsteğe bağlı öznitelikler

  • Name
    page_num
    Type
    integer
    Description

    Sayfalama için sayfa numarası. 1 ile başlar ve varsayılan olarak 1 kullanılır.

  • Name
    page_size
    Type
    integer
    Description

    Sayfa boyutu sınırı. Varsayılan olarak 10 öğedir. İzin verilen maksimum değer 50 öğedir.

  • Name
    sort_by
    Type
    string
    Description

    Sıralama yapılacak alan. Kullanılabilir değerler:

    • +created_at: Oluşturulma zamanına göre artan sırada sırala.
    • -created_at: Oluşturulma zamanına göre azalan sırada sırala.

Döndürür

Basılabilirliği analiz et görev nesnelerinin sayfalanmış bir listesini döndürür.

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

Bir Basılabilirliği analiz et Görevini Akış Olarak Aktar

Bu uç nokta, Server-Sent Events (SSE) kullanarak bir Basılabilirliği analiz et görevi için gerçek zamanlı güncellemeleri akış olarak aktarır.

Parametreler

  • Name
    id
    Type
    path
    Description

    Akış olarak aktarılacak Basılabilirliği analiz et görevi için benzersiz tanımlayıcı.

Döndürülenler

Server-Sent Events olarak Basılabilirliği analiz et Görev Nesneleri akışı döndürür.

PENDING veya IN_PROGRESS görevleri için yanıt akışı yalnızca gerekli progress ve status alanlarını içerir. printability bloğu yalnızca görev SUCCEEDED durumuna ulaştığında gönderilir.

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
}

Basılabilirliği analiz et görev nesnesi

  • Name
    id
    Type
    string
    Description

    Görev için benzersiz tanımlayıcı. Uygulama ayrıntısı olarak görev id'leri için k-sıralanabilir bir UUID kullansak da, id'nin formatı hakkında hiçbir varsayımda bulunmamalısınız.

  • Name
    type
    Type
    string
    Description

    Basılabilirliği analiz et görevinin türü. Değer print-analyze şeklindedir.

  • Name
    status
    Type
    string
    Description

    Görevin durumu. Olası değerler PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED değerlerinden biridir.

  • Name
    progress
    Type
    integer
    Description

    Görevin progress değeri. Görev henüz başlatılmadıysa bu özellik 0 olur. Görev başarıyla tamamlandığında bu 100 olur.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Önceki görevlerin sayısı.

  • Name
    created_at
    Type
    timestamp
    Description

    Görevin oluşturulduğu zamanın milisaniye cinsinden zaman damgası.

  • Name
    started_at
    Type
    timestamp
    Description

    Görevin başlatıldığı zamanın milisaniye cinsinden zaman damgası. Görev henüz başlatılmadıysa bu özellik 0 olur.

  • Name
    finished_at
    Type
    timestamp
    Description

    Görevin tamamlandığı zamanın milisaniye cinsinden zaman damgası. Görev henüz tamamlanmadıysa bu özellik 0 olur.

  • Name
    expires_at
    Type
    timestamp
    Description

    Görev sonucunun sistemden süresinin dolacağı zamanın milisaniye cinsinden zaman damgası. Görev henüz tamamlanmadıysa 0.

  • Name
    task_error
    Type
    object
    Description

    Görev başarısız olduysa hata bilgisi. Görev başarısız olmadıysa bu özellik null olur. Daha fazla ayrıntı için Hatalar bölümüne bakın.

    • Name
      message
      Type
      string
      Description

      Neyin yanlış gittiğini açıklayan hata mesajı.

  • Name
    printability
    Type
    object
    Description

    Basılabilirlik değerlendirme sonucu. Görev SUCCEEDED durumuna ulaşana kadar null.

    • Name
      _version
      Type
      string
      Description

      Basılabilirlik sonucunun şema sürümü. Şu anda v1.

    • Name
      status
      Type
      string
      Description

      Genel durum. Şunlardan biri:

      • healthy: hata yok ve uyarı yok.
      • warning: en az bir uyarı, hata yok.
      • error: en az bir hata.
      • unknown: model analiz edilemedi.
    • Name
      issue_count
      Type
      integer
      Description

      Sorunların toplam sayısı, error_count + warning_count değerine eşittir.

    • Name
      error_count
      Type
      integer
      Description

      Hata düzeyindeki sorunların sayısı. Model su geçirmez değilse, pozitif olmayan hacme sahipse veya manifold olmayan kenarlar içeriyorsa hatalar oluşturulur.

    • Name
      warning_count
      Type
      integer
      Description

      Uyarı düzeyindeki sorunların sayısı. Model bozuk yüzeyler veya delikler içeriyorsa uyarılar oluşturulur.

    • Name
      metrics
      Type
      object
      Description

      Değerlendirici tarafından döndürülen ham geometri metrikleri.

      • Name
        is_watertight
        Type
        boolean
        Description

        Ağda sınır kenarları olmadığında (yani kapalı olduğunda) true.

      • Name
        volume
        Type
        number
        Description

        Modelin metreküp cinsinden hacmi.

      • Name
        non_manifold_edges
        Type
        integer
        Description

        Manifold olmayan kenarların sayısı.

      • Name
        degenerate_faces
        Type
        integer
        Description

        Bozuk yüzeylerin sayısı (sıfır alanlı veya geçersiz yüzeyler).

      • Name
        holes
        Type
        integer
        Description

        Ağdaki deliklerin (sınır döngülerinin) sayısı.

    • Name
      evaluated_at
      Type
      timestamp
      Description

      Analizin hesaplandığı zamanın, epoch'tan bu yana milisaniye cinsinden zaman damgası.

  • Name
    consumed_credits
    Type
    integer
    Description

    Her zaman 0. Bu uç nokta ücretsizdir.

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
}