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.
Basılabilirlik Analizi Görevi Oluşturma
Bu uç nokta yeni bir basılabilirlik analizi 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ılabilirlik bilgisi varsa, döndürülen görev hemen hazır olur ve üzerinde yapılan ilk GET isteği, worker'a gitmeden analiz sonucunu döndürür.
Parametreler
input_task_id veya model_url parametrelerinden yalnızca biri gereklidir. İkisi de sağlanırsa, input_task_id önceliklidir.
- Name
- input_task_id
- Type
- string
- Zorunlu
- Description
Sahip olduğunuz başarılı bir görevin ID'si. Desteklenen görev türleri: Görselden 3D'ye, Çoklu görselden 3D'ye, Metinden 3D'ye, Yeniden ağ ve Yeniden dokulama. Görev, Meshy 6 veya daha yeni bir sürümü (Meshy 7 dahil) kullanmalı ve
SUCCEEDEDdurumunda olmalıdır.
- 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,httpsveyadata:URL'si kullanılmalıdır (data URL'leri uzantı kontrollerini atlar).
Dönüş Değerleri
Yanıtın result özelliği, yeni oluşturulan basılabilirlik analizi görevinin id değerini içerir.
Hata Durumları
- Name
400 - Bad Request- Description
İstek kabul edilemedi. Yaygın nedenler:
- Eksik parametre: ne
input_task_idne demodel_urlsağlanmadı. - Geçersiz UUID:
input_task_idgeçerli bir UUID değil. - Geçersiz model URL'si:
model_urlhatalı biçimlendirilmiş, desteklenmeyen bir şema kullanıyor veya desteklenmeyen bir dosya uzantısına sahip. - Model dosyası çok büyük:
model_urlgövdesi 100 MB'ı aştı. - Görev başarılı değil: referans verilen görev hâlâ beklemede, işlem sürüyor veya başarısız oldu.
- Eksik parametre: ne
- 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 başka 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 mode'u bir 3D asset üretmiyor.
- Temel alınan 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.
Request
# 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"
}
Basılabilirliği Analiz Et Görevini Getir
Bu uç nokta, kimliğine göre bir basılabilirlik analizi görevini getirir.
Parametreler
- Name
- id
- Type
- path
- Description
Getirilecek basılabilirlik analizi görevinin kimliği.
Döndürülenler
Basılabilirliği Analiz Et Görevi Nesnesi. Görev SUCCEEDED durumuna ulaşana kadar printability alanı null olur.
Request
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
}
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 kimliği.
Görev Durumu
Hâlâ PENDING durumunda olan bir görev silinir ve oluşturma sırasında
tüketilen kredi iade edilir.
Zaten IN_PROGRESS durumunda olan bir görev silinemez: istek
409 Conflict ile reddedilir ve görev çalışmaya devam eder. Çalıştırıcının
(worker) zaten başlattığı bir görev için kredi iade edilmez, bu nedenle
çalışma sırasında silmek hem krediyi hem de sonucu kaybetmenize neden olur.
SUCCEEDED, FAILED veya CANCELED durumuna ulaşmasını bekleyin, ardından silin.
Bitiş durumundaki (SUCCEEDED, FAILED veya CANCELED) bir görev
iade yapılmadan silinir.
Döndürülenler
Başarılı olduğunda 200 OK, görev IN_PROGRESS durumundayken ise
409 Conflict döner.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
List Analyze Printability Tasks
Bu uç nokta, basılabilirlik analizi görevlerinin bir listesini almanıza olanak tanır.
Parametreler
Opsiyonel alanlar
- Name
- page_num
- Type
- integer
- Description
Sayfalama için sayfa numarası.
1değerinden başlar ve varsayılan olarak1değerini alır.
- Name
- page_size
- Type
- integer
- Description
Sayfa boyutu sınırı. Varsayılan olarak
10öğedir. İzin verilen maksimum değer100öğedir.
- Name
- sort_by
- Type
- string
- Description
Sıralanacak alan. Kullanılabilir 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önüş Değerleri
Basılabilirliği Analiz Etme Görevi Nesnelerinin sayfalanmış bir listesini döndürür.
Request
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
}
]
Bir Basılabilirliği Analiz Et Görevini Akışa Aktar
Bu uç nokta, Server-Sent Events (SSE) kullanarak bir basılabilirlik analizi görevi için gerçek zamanlı güncellemeleri akışa aktarır.
Parametreler
- Name
- id
- Type
- path
- Description
Akışa aktarılacak basılabilirlik analizi 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.
Her kare, o aşama için tam görev nesnesini taşır — bu, Get uç noktasının
döndürdüğü ile aynı yapıdır — bu nedenle görev PENDING veya IN_PROGRESS
durumundayken çıktı alanları henüz doldurulmamıştır (null, [] veya {})
ve finished_at değeri null'dır. printability bloğu yalnızca görev
SUCCEEDED durumuna ulaştığında gönderilir.
Request
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.
// Every frame is the full task object; fields not yet populated are null / empty.
// The PENDING frame below is abbreviated to the fields that change.
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 detayı olarak görev id'leri için k-sıralanabilir bir UUID kullansak da, id'nin 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şeklindedir.
- Name
- status
- Type
- string
- Description
Görevin durumu. Olası değerler
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELEDdeğerlerinden biridir.
- Name
- progress
- Type
- integer
- Description
Görevin progress değeri. Görev henüz başlamadıysa bu özellik
0olur. Görev başarılı olduğunda bu değer100olur.
- Name
- preceding_tasks
- Type
- integer
- Description
Önceki görevlerin sayısı.
Bu alanın değeri yalnızca görev durumu
PENDINGolduğunda anlamlıdır.
- Name
- created_at
- Type
- timestamp
- Description
Görevin oluşturulduğu zaman damgası, milisaniye cinsinden.
- Name
- started_at
- Type
- timestamp
- Description
Görevin başladığı zaman damgası, milisaniye cinsinden. Görev henüz başlamadıysa bu özellik
0olur.
- Name
- finished_at
- Type
- timestamp
- Description
Görevin bittiği zaman damgası, milisaniye cinsinden. Görev henüz bitmediyse bu özellik
0olur.
- Name
- expires_at
- Type
- timestamp
- Description
Görev sonucunun sistemden kaldırılacağı zaman damgası, milisaniye cinsinden. Görev henüz bitmediyse
0olur.
- 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
nullolur. 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
SUCCEEDEDdurumuna ulaşana kadarnullolur.- Name
_version- Type
- string
- Description
Basılabilirlik sonucunun şema sürümü. Şu anda
v1.
- Name
status- Type
- string
- Description
Genel durum. Aşağıdakilerden biri:
healthy: hata veya uyarı yok.warning: en az bir uyarı var, hata yok.error: en az bir hata var.unknown: model analiz edilemedi.
- Name
issue_count- Type
- integer
- Description
Toplam sorun sayısı,
error_count + warning_countdeğerine eşittir.
- Name
error_count- Type
- integer
- Description
Hata düzeyindeki sorunların sayısı. Model su geçirmez olmadığında, pozitif olmayan hacme sahip olduğunda veya manifold olmayan kenarlar içerdiğinde hatalar oluşturulur.
- Name
warning_count- Type
- integer
- Description
Uyarı düzeyindeki sorunların sayısı. Model bozuk yüzeyler veya delikler içerdiğinde uyarılar oluşturulur.
- Name
metrics- Type
- object
- Description
Değerlendirici tarafından döndürülen ham geometri ölçümleri.
- Name
is_watertight- Type
- boolean
- Description
Ağın sınır kenarları yoksa (yani kapalıysa)
trueolur.
- 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 damgası, epoch'tan bu yana geçen milisaniye cinsinden.
- 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
}