Basılabilirliği Analiz Et API

Bir 3D modelin FDM basılabilirliğini analiz et — 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.

Eğer giriş görevi zaten önbelleğe alınmış basılabilirliğe sahipse, döndürülen görev hemen hazır olur ve ilk GET işlemi, işçiden geçmeden analiz sonucunu döndürür.

Parametreler

  • Name
    model_url
    Type
    string
    Zorunlu
    Description

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

Dönenler

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

Başarısızlık Modları

  • Name
    400 - Bad Request
    Description

    İstek kabul edilemezdi. Yaygın nedenler:

    • Eksik parametre: ne input_task_id ne de model_url sağlanmadı.
    • Geçersiz UUID: input_task_id geçerli bir UUID değil.
    • Geçersiz model URL'si: model_url hatalı, 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ı olmadı: başvurulan görev hala beklemede, ilerlemede veya başarısız.
  • 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 veya modu bir 3D varlık üretmiyor.
    • Temel 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ızı aştınız.

İstek

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

Yanıt

{
  "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 basılabilirliği analiz et görevini ID'sine göre alır.

Parametreler

  • Name
    id
    Type
    path
    Description

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

Dönen Değerler

Basılabilirliği Analiz Et Görev Nesnesi. Görev SUCCEEDED durumuna ulaşana kadar basılabilirlik alanı null olur.

İstek

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

Yanıt

{
  "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önen Değerler

Başarı durumunda 200 OK döner.

İstek

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

Yanıt

// 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ızı sağlar.

Parametreler

İsteğe bağlı özellikler

  • Name
    page_num
    Type
    integer
    Description

    Sayfalama için sayfa numarası. 1 ile başlar ve varsayılan olarak 1'dir.

  • Name
    page_size
    Type
    integer
    Description

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

  • Name
    sort_by
    Type
    string
    Description

    Sıralama yapılacak alan. Mevcut değerler:

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

Dönenler

Basılabilirliği Analiz Et Görev Nesneleri listesini sayfalı olarak döndürür.

İstek

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

Yanıt

[
  {
    "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 Etme Görevini Yayınla

Bu uç nokta, Server-Sent Events (SSE) kullanarak bir basılabilirliği analiz etme görevi için gerçek zamanlı güncellemeler yayınlar.

Parametreler

  • Name
    id
    Type
    path
    Description

    Yayınlanacak basılabilirliği analiz etme görevinin benzersiz tanımlayıcısı.

Dönen Değerler

Server-Sent Events olarak Basılabilirliği Analiz Etme 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çerecektir. printability bloğu yalnızca görev SUCCEEDED durumuna ulaştığında gönderilir.

İstek

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

Yanıt Akışı

// 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ı. Görev kimlikleri için k-sıralı UUID kullanıyoruz, ancak kimliğin formatı hakkında herhangi 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'dir.

  • Name
    status
    Type
    string
    Description

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

  • Name
    progress
    Type
    integer
    Description

    Görevin ilerleme durumu. Görev henüz başlamadıysa, bu özellik 0 olacaktır. Görev başarıyla tamamlandığında, bu 100 olacaktır.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Önceki görevlerin sayısı.

  • Name
    created_at
    Type
    timestamp
    Description

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

  • Name
    started_at
    Type
    timestamp
    Description

    Görevin başlatıldığı zamanın zaman damgası, milisaniye cinsinden. Görev henüz başlamadıysa, bu özellik 0 olacaktır.

  • Name
    finished_at
    Type
    timestamp
    Description

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

  • Name
    expires_at
    Type
    timestamp
    Description

    Görev sonucunun sistemden silineceği zamanın zaman damgası, milisaniye cinsinden. 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 sayfasına bakın.

    • Name
      message
      Type
      string
      Description

      Yanlış giden durumu 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 versiyonu. Şu anda v1.

    • Name
      status
      Type
      string
      Description

      Genel durum. Şunlardan biri:

      • healthy: hata 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

      Toplam sorun sayısı, error_count + warning_count 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ı varsa hatalar ortaya çıkar.

    • Name
      warning_count
      Type
      integer
      Description

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

    • Name
      metrics
      Type
      object
      Description

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

      • Name
        is_watertight
        Type
        boolean
        Description

        Ağın sınır kenarları yoksa (yani kapalıysa) true.

      • Name
        volume
        Type
        number
        Description

        Modelin hacmi, metreküp cinsinden.

      • 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üleri) sayısı.

    • Name
      evaluated_at
      Type
      timestamp
      Description

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

  • Name
    consumed_credits
    Type
    integer
    Description

    Her zaman 0. Bu uç nokta ücretsizdir.

Basılabilirliği Analiz Et Görev Nesnesi

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