API Analisis Kebolehcetakan
Analisis model 3D untuk kebolehcetakan FDM — kekedapan air, isi padu, lubang, tepi non-manifold, dan muka degenerat.
Cipta Tugas Analisis Kebolehcetakan
Endpoint ini mencipta tugas analisis-kebolehcetakan yang baharu. Tugas ini menilai model 3D dan melaporkan metrik kebolehcetakannya.
Jika tugas input sudah mempunyai kebolehcetakan yang dicache, tugas yang dikembalikan akan sedia dengan serta-merta dan permintaan GET yang pertama padanya akan mengembalikan hasil analisis tanpa melalui worker.
Parameter
Hanya salah satu daripada input_task_id atau model_url yang diperlukan. Jika kedua-duanya diberikan, input_task_id mengambil keutamaan.
- Name
- input_task_id
- Type
- string
- Diperlukan
- Description
ID bagi tugas berjaya yang anda miliki. Jenis tugas yang disokong: Imej ke 3D, Berbilang Imej ke 3D, Teks ke 3D, Remesh, dan Retekstur. Tugas tersebut mesti menggunakan Meshy 6 atau lebih baharu (termasuk Meshy 7) dan mesti mempunyai status
SUCCEEDED.
- Name
- model_url
- Type
- string
- Diperlukan
- Description
URL model 3D untuk dianalisis. Format yang disokong:
.glb,.gltf,.obj,.fbx,.stl. Saiz fail maksimum: 100 MB. Mesti menggunakanhttp,https, atau URLdata:(URL data melangkau semakan sambungan fail).
Pulangan
Sifat result bagi respons mengandungi id bagi tugas analisis-kebolehcetakan yang baharu dicipta.
Mod Kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak boleh diterima. Punca biasa:
- Parameter hilang: kedua-dua
input_task_iddanmodel_urltidak diberikan. - UUID tidak sah:
input_task_idbukan UUID yang sah. - URL model tidak sah:
model_urlmempunyai format yang salah, menggunakan skema yang tidak disokong, atau mempunyai sambungan fail yang tidak disokong. - Fail model terlalu besar: badan
model_urlmelebihi 100 MB. - Tugas tidak berjaya: tugas yang dirujuk masih tertangguh, sedang dijalankan, atau gagal.
- Parameter hilang: kedua-dua
- Name
401 - Unauthorized- Description
Pengesahan gagal. Sila semak kunci API anda.
- Name
403 - Forbidden- Description
Tugas tersebut wujud tetapi dimiliki oleh pengguna lain.
- Name
404 - Not Found- Description
Punca biasa:
- Tugas tersebut tidak wujud atau telah dipadamkan.
- Tugas tersebut menggunakan model yang lebih lama daripada Meshy 6, atau modenya tidak menghasilkan aset 3D.
- Fail model asas tersebut tidak lagi tersedia dalam storan.
- Name
429 - Too Many Requests- Description
Anda telah melebihi kuota tugas-tertangguh atau had kadar anda.
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"
}
Dapatkan Semula Tugas Analisis Kebolehcetakan
Endpoint ini mendapatkan semula tugas analisis-kebolehcetakan mengikut IDnya.
Parameter
- Name
- id
- Type
- path
- Description
ID tugas analisis-kebolehcetakan yang hendak didapatkan semula.
Pulangan
Objek Tugas Analisis Kebolehcetakan. Medan printability adalah null sehingga tugas mencapai SUCCEEDED.
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
}
Padam Tugas Analisis Kebolehcetakan
Endpoint ini memadam secara kekal satu tugas analisis-kebolehcetakan beserta hasil cache-nya. Tindakan ini tidak boleh diterbalikkan.
Parameter Laluan
- Name
- id
- Type
- path
- Description
ID tugas analisis-kebolehcetakan yang hendak dipadam.
Status Tugas
Tugas yang masih PENDING akan dipadam dan kredit yang digunakan semasa
penciptaan akan dikembalikan.
Tugas yang sudah IN_PROGRESS tidak boleh dipadam: permintaan akan
ditolak dengan 409 Conflict dan tugas terus berjalan. Kredit bagi tugas
yang pekerja (worker) telah mulakan tidak boleh dikembalikan, jadi memadamnya semasa ia
sedang berjalan akan menyebabkan anda kehilangan kedua-dua kredit dan hasilnya. Tunggu sehingga ia mencapai
status SUCCEEDED, FAILED atau CANCELED, kemudian padamkannya.
Tugas dalam keadaan terminal (SUCCEEDED, FAILED atau CANCELED) akan dipadam
tanpa bayaran balik.
Pulangan
Memulangkan 200 OK apabila berjaya, atau 409 Conflict apabila tugas
sedang IN_PROGRESS.
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."
}
Senaraikan Tugasan Analisis Kebolehcetakan
Endpoint ini membolehkan anda mendapatkan senarai tugasan analisis kebolehcetakan.
Parameter
Atribut pilihan
- Name
- page_num
- Type
- integer
- Description
Nombor halaman untuk penomboran halaman. Bermula dan lalai kepada
1.
- Name
- page_size
- Type
- integer
- Description
Had saiz halaman. Lalai kepada
10item. Maksimum yang dibenarkan adalah100item.
- Name
- sort_by
- Type
- string
- Description
Medan untuk disusun mengikut. Nilai yang tersedia:
+created_at: Susun mengikut masa penciptaan secara menaik.-created_at: Susun mengikut masa penciptaan secara menurun.
Pulangan
Mengembalikan senarai bernomborkan halaman bagi Objek Tugasan Analisis Kebolehcetakan.
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
}
]
Alirkan Tugas Analisis Kebolehcetakan
Endpoint ini mengalirkan kemas kini masa nyata untuk tugas analisis kebolehcetakan menggunakan Server-Sent Events (SSE).
Parameter
- Name
- id
- Type
- path
- Description
Pengecam unik untuk tugas analisis kebolehcetakan yang hendak dialirkan.
Pemulangan
Memulangkan aliran Objek Tugas Analisis Kebolehcetakan sebagai Server-Sent Events.
Setiap bingkai membawa objek tugas penuh untuk peringkat tersebut — bentuk yang sama
seperti yang dipulangkan oleh endpoint Get — jadi semasa tugas berstatus PENDING atau IN_PROGRESS,
medan output hanya belum diisi lagi (null, [] atau {}) dan
finished_at adalah null. Blok printability hanya dihantar sebaik sahaja tugas mencapai SUCCEEDED.
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
}
Objek Tugas Analisis Kebolehcetakan
- Name
- id
- Type
- string
- Description
Pengenal unik untuk tugas tersebut. Walaupun kami menggunakan UUID yang boleh disusun-k untuk id tugas sebagai butiran pelaksanaan, anda tidak seharusnya membuat sebarang andaian tentang format id tersebut.
- Name
- type
- Type
- string
- Description
Jenis tugas analyze-printability. Nilainya ialah
print-analyze.
- Name
- status
- Type
- string
- Description
Status tugas. Nilai yang mungkin ialah salah satu daripada
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- progress
- Type
- integer
- Description
Progress tugas. Jika tugas belum bermula, sifat ini akan menjadi
0. Setelah tugas berjaya, ini akan menjadi100.
- Name
- preceding_tasks
- Type
- integer
- Description
Kiraan tugas yang mendahului.
Nilai medan ini hanya bermakna jika status tugas adalah
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Cap masa bila tugas dicipta, dalam milisaat.
- Name
- started_at
- Type
- timestamp
- Description
Cap masa bila tugas dimulakan, dalam milisaat. Jika tugas belum dimulakan, sifat ini akan menjadi
0.
- Name
- finished_at
- Type
- timestamp
- Description
Cap masa bila tugas tamat, dalam milisaat. Jika tugas belum tamat, sifat ini akan menjadi
0.
- Name
- expires_at
- Type
- timestamp
- Description
Cap masa bila hasil tugas akan luput daripada sistem, dalam milisaat.
0jika tugas belum lagi tamat.
- Name
- task_error
- Type
- object
- Description
Maklumat ralat jika tugas gagal. Sifat ini adalah
nulljika tugas tidak gagal. Lihat Ralat untuk maklumat lanjut.- Name
message- Type
- string
- Description
Mesej ralat yang menerangkan apa yang tidak kena.
- Name
- printability
- Type
- object
- Description
Hasil penilaian kebolehcetakan.
nullsehingga tugas mencapaiSUCCEEDED.- Name
_version- Type
- string
- Description
Versi skema bagi hasil kebolehcetakan. Pada masa ini
v1.
- Name
status- Type
- string
- Description
Status keseluruhan. Salah satu daripada:
healthy: tiada ralat dan tiada amaran.warning: sekurang-kurangnya satu amaran, tiada ralat.error: sekurang-kurangnya satu ralat.unknown: model tidak dapat dianalisis.
- Name
issue_count- Type
- integer
- Description
Jumlah kiraan isu, bersamaan dengan
error_count + warning_count.
- Name
error_count- Type
- integer
- Description
Bilangan isu peringkat ralat. Ralat dibangkitkan apabila model tidak kalis air (watertight), mempunyai isi padu bukan-positif, atau mempunyai tepi non-manifold.
- Name
warning_count- Type
- integer
- Description
Bilangan isu peringkat amaran. Amaran dibangkitkan apabila model mengandungi muka degenerat atau lubang.
- Name
metrics- Type
- object
- Description
Metrik geometri mentah yang dikembalikan oleh penilai.
- Name
is_watertight- Type
- boolean
- Description
trueapabila jejaring tidak mempunyai tepi sempadan (iaitu, tertutup).
- Name
volume- Type
- number
- Description
Isi padu model dalam meter padu.
- Name
non_manifold_edges- Type
- integer
- Description
Kiraan tepi non-manifold.
- Name
degenerate_faces- Type
- integer
- Description
Kiraan muka degenerat (muka dengan luas sifar atau tidak sah).
- Name
holes- Type
- integer
- Description
Kiraan lubang (gelung sempadan) dalam jejaring.
- Name
evaluated_at- Type
- timestamp
- Description
Cap masa bila analisis tersebut dikira, dalam milisaat sejak epoch.
- Name
- consumed_credits
- Type
- integer
- Description
Sentiasa
0. Endpoint ini adalah percuma.
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
}