Analyze Printability API
ตรวจสอบโมเดล 3 มิติเพื่อหาปัญหาในการพิมพ์ โดยการวัดความเป็นแบบกันน้ำ (watertightness) ปริมาตร รู ขอบ non-manifold และหน้าเสื่อม นอกจากนี้คุณยังสามารถตรวจสอบความหนาผนังที่ขนาดที่คุณวางแผนจะพิมพ์ได้อีกด้วย
สร้างงาน Analyze Printability
สร้างงาน วิเคราะห์ความสามารถในการพิมพ์ ซึ่งประเมินโมเดล 3D และรายงานค่าเมตริกความสามารถในการพิมพ์ งานนี้ทำงานในเบื้องหลัง สำหรับระยะเวลาที่งานมักใช้ ดูที่ Processing times
เมื่อ Meshy มีผลลัพธ์ความสามารถในการพิมพ์ของงาน input_task_id อยู่แล้ว งานใหม่จะพร้อมใช้งานทันที การเรียก GET ครั้งแรกของคุณจะคืนผลลัพธ์นั้น
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"
}'
# Also check wall thickness for a 100 mm tall SLA print
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",
"printer_type": "sla",
"intended_print_height_mm": 100
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
พารามิเตอร์
- Name
- input_task_id
- Type
- string
- จำเป็น
- Description
จำเป็นต้องระบุ เว้นแต่คุณจะส่ง
model_urlคือ ID ของงานที่มีโมเดลซึ่งคุณต้องการวิเคราะห์ งานนั้นต้องมีสถานะSUCCEEDEDและต้องเป็นของคุณหรืออยู่ในพื้นที่ทำงานที่คุณเป็นสมาชิกอยู่สามารถเป็นหนึ่งในประเภทงานเหล่านี้ โดยใช้ Meshy 6 ขึ้นไป รวมถึง Meshy 7:
งาน ซ่อมความสามารถในการพิมพ์ ก็ใช้ได้เช่นกัน
- Name
- model_url
- Type
- string
- จำเป็น
- Description
จำเป็นต้องระบุ เว้นแต่คุณจะส่ง
input_task_idคือโมเดลที่จะวิเคราะห์ ในรูปแบบ URL สาธารณะหรือ Data URI หากคุณส่งทั้งสองอย่าง Meshy จะใช้input_task_idจาก URL แบบ
httpหรือhttpsโมเดลต้องเป็นไฟล์.glb,.gltf,.obj,.fbxหรือ.stlขนาดไม่เกิน 400 MB ส่วน Data URI สามารถเก็บได้เฉพาะไฟล์ GLB แบบ base64 (data:model/gltf-binary;base64,...) หรือ glTF (data:model/gltf+json;base64,...) ขนาดไม่เกิน 100 MB เท่านั้น ให้ส่งไฟล์.obj,.fbxหรือ.stlในรูปแบบ URLhttpหรือhttpsไฟล์ที่มีขนาดเกิน 100 MB ต้องเป็นไปตามกฎเหล่านี้ด้วย:
- ไฟล์ GLB, glTF, FBX หรือ OBJ สามารถมีจำนวนหน้า (faces) ได้สูงสุด 10,000,000 หน้า Meshy นับหน้าเป็นสามเหลี่ยม ดังนั้นรูปสี่เหลี่ยม (quad) จะนับเป็น 2 หน้า และเมชที่ถูกวาดซ้ำมากกว่าหนึ่งครั้งจะนับหนึ่งครั้งต่อสำเนา
- ไฟล์ FBX ต้องเป็น binary FBX เวอร์ชัน 7.1 ขึ้นไป
- ไฟล์ GLB หรือ glTF ต้องไม่ใช้การบีบอัดแบบ Draco
Meshy download URL (
assets.meshy.ai/…?Expires=…&Signature=…) มีการเซ็นชื่อกำกับและจะหยุดทำงานเมื่อถึงexpires_atของงานนั้น การอ่านงานนั้นซ้ำอีกครั้งจะไม่ต่ออายุให้ สำหรับโมเดลที่คุณสร้างด้วย Meshy ให้ส่งinput_task_idแทน ซึ่งจะใช้งานได้ตราบเท่าที่ Meshy ยังเก็บรักษางานต้นทางไว้ (ดู Asset retention) หากต้องการใช้โมเดลหลังจากนั้น ให้ดาวน์โหลดก่อนถึงexpires_atแล้วส่งสำเนาของคุณเอง
หากต้องการตรวจสอบความหนาผนังที่ขนาดที่คุณวางแผนจะพิมพ์ด้วย ให้ส่ง printer_type, ขนาดงานพิมพ์ หรือทั้งสองอย่าง ผลลัพธ์จะอยู่ใน printability.thin_walls การตรวจสอบความหนาผนังใช้เวลานานกว่า ดังนั้นงานมักจะไม่พร้อมทันที แม้ว่า Meshy จะเคยวิเคราะห์โมเดลนี้มาก่อนก็ตาม
- Name
- printer_type
- Type
- string
- Description
เครื่องพิมพ์ที่คุณวางแผนจะใช้ ค่านี้กำหนดความหนาผนังขั้นต่ำสำหรับการตรวจสอบความหนาผนัง หากคุณส่งขนาดงานพิมพ์โดยไม่มี
printer_typeMeshy จะใช้fdmค่าที่ใช้ได้:
fdm: filament ผนังขั้นต่ำ 1.0 มม.sla: resin ผนังขั้นต่ำ 0.8 มม.full_color: full-color ผนังขั้นต่ำ 2.0 มม.
ค่าอื่นนอกเหนือจากนี้จะคืนค่า
400
- Name
- intended_print_height_mm
- Type
- number
- Description
ความสูงของชิ้นงานพิมพ์ เป็นมิลลิเมตร ตั้งแต่
1ถึง1000ค่าที่อยู่นอกช่วงนี้จะคืนค่า400ส่งพารามิเตอร์นี้หรือintended_print_longest_side_mmอย่างใดอย่างหนึ่ง ไม่ใช่ทั้งสองอย่างใช้งานได้เฉพาะกับอินพุตแบบ GLB เท่านั้น สำหรับ
model_urlที่ไม่ใช่ไฟล์.glbให้ส่งintended_print_longest_side_mmแทน
- Name
- intended_print_longest_side_mm
- Type
- number
- Description
ความยาวของด้านที่ยาวที่สุดของชิ้นงานพิมพ์ เป็นมิลลิเมตร ตั้งแต่
1ถึง1000ค่าที่อยู่นอกช่วงนี้จะคืนค่า400ใช้งานได้กับทุกรูปแบบอินพุต
หากคุณส่ง printer_type โดยไม่ระบุขนาด Meshy จะใช้ขนาดงานพิมพ์นี้:
- ไฟล์
.glbหรือinput_task_idใดๆ: สูง 150 มม. - ไฟล์
.stl: ด้านที่ยาวที่สุดของไฟล์เอง อ่านค่าเป็นมิลลิเมตร - ไฟล์
.obj,.fbxหรือ.gltf: 150 มม. ที่ด้านที่ยาวที่สุด
สำหรับไฟล์ STL ที่ใช้หน่วยอื่น ให้ส่ง intended_print_longest_side_mm
Meshy ปัดเศษขนาดงานพิมพ์ทั้งสองค่าให้เป็นมิลลิเมตรที่ใกล้ที่สุด
ค่าที่ส่งคืน
ฟิลด์ result ของการตอบกลับมี ID ของงาน วิเคราะห์ความสามารถในการพิมพ์ ใหม่
รูปแบบความล้มเหลว
- Name
400 - Bad Request- Description
คำขอนี้ไม่สามารถทำงานได้ ข้อความแสดงข้อผิดพลาดจะบอกว่าพบปัญหาใด ตัวอย่างเช่น:
- ขาดพารามิเตอร์: ไม่ได้ส่งทั้ง
input_task_idและmodel_url - UUID ไม่ถูกต้อง:
input_task_idไม่ใช่ UUID ที่ถูกต้อง - URL ของโมเดลไม่ถูกต้อง:
model_urlมีรูปแบบไม่ถูกต้อง ใช้ scheme ที่ไม่รองรับ หรือมีนามสกุลไฟล์ที่ไม่รองรับ - ไฟล์โมเดลใหญ่เกินไป: ไฟล์
model_urlมีขนาดเกิน 400 MB จาก URL แบบhttpหรือhttpsหรือเกิน 100 MB ในรูปแบบ Data URI - จำนวนหน้ามากเกินไป: ไฟล์
model_urlเป็นไฟล์ GLB, glTF, FBX หรือ OBJ ที่มีขนาดเกิน 100 MB และมีจำนวนหน้ามากกว่า 10,000,000 หน้า ให้ลดจำนวนหน้าลง แล้วส่งไฟล์อีกครั้ง - ASCII FBX เกิน 100 MB: ไฟล์
model_urlเป็น ASCII FBX ที่มีขนาดเกิน 100 MB ให้ส่งเป็น binary FBX หรือ GLB แทน - ไฟล์โมเดลไม่สามารถอ่านได้: ไฟล์
model_urlมีขนาดเกิน 100 MB และ Meshy ไม่สามารถอ่านส่วนหัวของไฟล์ได้ ตัวอย่างเช่น เป็น GLB หรือ glTF ที่บีบอัดแบบ Draco หรือเป็น binary FBX ที่เก่ากว่าเวอร์ชัน 7.1 - ส่วนหัวของโมเดลซับซ้อนเกินไป: ไฟล์
model_urlมีขนาดเกิน 100 MB และส่วนหัวมีเมช, โหนด หรือเรคคอร์ดมากเกินกว่าจะตรวจสอบได้ ให้ลดจำนวนวัตถุในไฟล์ลง แล้วส่งอีกครั้ง - ไม่สามารถดาวน์โหลดไฟล์โมเดลได้:
model_urlคืนค่าข้อผิดพลาด ซึ่งส่วนใหญ่มักเกิดจาก Meshy download URL ที่ลงนามไว้หมดอายุ การอ่านงานนั้นซ้ำอีกครั้งจะคืน URL เดิมพร้อมวันหมดอายุเดิม ให้ส่งสำเนาของไฟล์ของคุณเอง หรือส่งinput_task_idตราบเท่าที่ Meshy ยังเก็บรักษางานต้นทางไว้ - งานยังไม่สำเร็จ: งาน
input_task_idยังอยู่ในสถานะรอดำเนินการ กำลังดำเนินการ หรือล้มเหลว - ขนาดงานพิมพ์ไม่ถูกต้อง:
intended_print_height_mmหรือintended_print_longest_side_mmอยู่นอกช่วง1ถึง1000หรือคำขอมีทั้งสองพารามิเตอร์ - ประเภทเครื่องพิมพ์ไม่รู้จัก:
printer_typeไม่ใช่fdm,slaหรือfull_color - ระบุความสูงบนโมเดลที่ไม่ใช่ GLB: คำขอมี
intended_print_height_mmและmodel_urlที่ไม่ใช่ไฟล์.glbให้ส่งintended_print_longest_side_mmแทน - ไม่สามารถกำหนดขนาดโมเดลนี้ด้วยความสูงได้: ที่ความสูงที่ร้องขอ หรือค่าเริ่มต้น 150 มม. ด้านที่ยาวที่สุดของโมเดลจะอยู่นอกช่วง 1 ถึง 1,000 มม. เหตุการณ์นี้ยังเกิดขึ้นเมื่อโมเดลแบน หรือเมื่อ Meshy ไม่สามารถระบุขนาดของโมเดลได้ ให้ส่ง
intended_print_longest_side_mmแทน สำหรับmodel_urlแบบ.glbและงานinput_task_idบางงาน Meshy จะพบปัญหานี้ก็ต่อเมื่องานเริ่มทำงานไปแล้วเท่านั้น และงานจะจบลงด้วยสถานะFAILEDแทน - ขนาด STL ใช้งานไม่ได้: คำขอมี
printer_typeโดยไม่ระบุขนาด และ Meshy ไม่สามารถอ่านด้านที่ยาวที่สุดของไฟล์.stlเองได้ หรือค่านั้นอยู่นอกช่วง 1 ถึง 1,000 มม. ให้ส่งintended_print_longest_side_mm
แก้ไขคำขอ แล้วส่งอีกครั้ง ดูที่ ข้อผิดพลาด
- ขาดพารามิเตอร์: ไม่ได้ส่งทั้ง
- Name
401 - Unauthorized- Description
ไม่มี API คีย์ หรือ API คีย์ไม่ถูกต้อง ตรวจสอบ header
Authorization
- Name
403 - Forbidden- Description
input_task_idเป็นโมเดลแบบ bas-relief ซึ่งเอนด์พอยต์นี้ไม่สามารถวิเคราะห์ได้ ข้อความแสดงข้อผิดพลาดคือThis model type does not support this operationให้ส่งโมเดลอื่น
- Name
404 - Not Found- Description
Meshy ไม่พบโมเดลที่จะวิเคราะห์สำหรับ
input_task_idตัวอย่างเช่น:- งานนั้นไม่มีอยู่ ถูกลบไปแล้ว หรือไม่ใช่ของคุณหรืออยู่ในพื้นที่ทำงานที่คุณเป็นสมาชิกอยู่
- งานนั้นใช้โมเดลที่เก่ากว่า Meshy 6 หรือประเภทของงานไม่ได้สร้างโมเดล 3D
- ไฟล์โมเดลของงานนั้นไม่มีอยู่ในที่จัดเก็บแล้ว
ตรวจสอบว่า
input_task_idเป็นงานประเภทที่รองรับและเป็นของคุณหรืออยู่ในพื้นที่ทำงานของคุณ หรือส่งโมเดลเป็นmodel_urlแทน
- Name
429 - Too Many Requests- Description
คุณเกินการจำกัดอัตราของคุณ หรือคุณมีงานที่รอดำเนินการมากเกินไป โปรดรอสักครู่แล้วลองใหม่อีกครั้ง ดูที่ Rate limits
รับงานวิเคราะห์ความสามารถในการพิมพ์
ส่งคืนงานวิเคราะห์ความสามารถในการพิมพ์ตาม ID ของงานนั้น
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
}
Response (wall thickness checked)
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000012000,
"expires_at": 1715725412000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "error",
"issue_count": 2,
"error_count": 1,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"intended_print": {
"printer_type": "sla",
"height_mm": 100,
"longest_side_mm": 118,
"wall_thickness_mm": 0.8,
"dimensions_mm": [118, 72.41, 99.87]
},
"thin_walls": {
"thin_area_ratio": 0.083,
"has_thin_walls": true,
"status": "error"
},
"evaluated_at": 1700000012000
},
"consumed_credits": 0
}
พารามิเตอร์
- Name
- id
- Type
- path
- Description
ID ของงานจากการตอบกลับตอนสร้างงาน
สิ่งที่ส่งคืน
ออบเจ็กต์งานวิเคราะห์ความสามารถในการพิมพ์ ฟิลด์ printability จะยังไม่ปรากฏจนกว่างานจะมีสถานะเป็น SUCCEEDED เมื่อ Meshy ตรวจสอบความหนาผนัง printability จะมี intended_print และ thin_walls รวมอยู่ด้วย
ลบงานวิเคราะห์ความสามารถในการพิมพ์
ลบงานวิเคราะห์ความสามารถในการพิมพ์อย่างถาวร รวมถึงผลลัพธ์ที่แคชไว้ด้วย คุณไม่สามารถย้อนกลับการลบได้
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 keeps 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."
}
พารามิเตอร์พาธ
- Name
- id
- Type
- path
- Description
ID ของงานที่ต้องการลบ
สถานะของงาน
การลบงานที่มีสถานะ PENDING จะคืนเครดิตที่ใช้ไปตอนที่คุณสร้างงานนั้น
งานที่มีสถานะ IN_PROGRESS ไม่สามารถลบได้ คำขอจะส่งคืน 409 Conflict
และงานจะยังคงทำงานต่อไป Meshy จะไม่คืนเครดิตสำหรับงานที่เริ่มทำงานไปแล้ว
ดังนั้นการลบงานนี้จะทำให้คุณเสียทั้งเครดิตและผลลัพธ์ รอให้งานถึงสถานะ
SUCCEEDED, FAILED หรือ CANCELED ก่อน แล้วจึงลบ
การลบงานที่อยู่ในสถานะสุดท้าย (SUCCEEDED, FAILED หรือ CANCELED)
จะไม่คืนเครดิต
ค่าที่ส่งกลับ
200 OK เมื่อลบงานสำเร็จ หรือ 409 Conflict เมื่องานมีสถานะ
IN_PROGRESS
List Analyze Printability tasks
คืนค่ารายการงานวิเคราะห์ความสามารถในการพิมพ์ของคุณ
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
}
]
Parameters
- Name
- page_num
- Type
- integer
- ค่าเริ่มต้น 1
- Description
หมายเลขหน้าที่ต้องการให้คืนค่า เริ่มต้นที่
1
- Name
- page_size
- Type
- integer
- ค่าเริ่มต้น 10
- Description
จำนวนงานต่อหน้า สูงสุด
100
- Name
- sort_by
- Type
- string
- Description
ลำดับการเรียง
ค่าที่ใช้ได้:
+created_at: เก่าสุดก่อน-created_at: ใหม่สุดก่อน
Returns
รายการแบบแบ่งหน้าของ อ็อบเจกต์งานวิเคราะห์ความสามารถในการพิมพ์
Stream an Analyze Printability task
สตรีมการอัปเดตของงานวิเคราะห์ความสามารถในการพิมพ์ในรูปแบบ Server-Sent Events (SSE)
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 following PENDING frame 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
}
พารามิเตอร์
- Name
- id
- Type
- path
- Description
ไอดีของงานจากการตอบกลับของการสร้าง
ผลลัพธ์ที่ส่งกลับ
สตรีมของ อ็อบเจกต์งานวิเคราะห์ความสามารถในการพิมพ์ ในรูปแบบ Server-Sent Events
แต่ละอีเวนต์จะมีอ็อบเจกต์งานแบบเต็ม ในรูปแบบเดียวกับที่เอนด์พอยต์ Get ส่งคืน
ขณะที่งานยังอยู่ในสถานะ PENDING หรือ IN_PROGRESS ฟิลด์ผลลัพธ์ของงาน
จะว่างเปล่า (null, [], หรือ {}) และ finished_at จะเป็น 0 Meshy จะส่ง
ฟิลด์ printability ก็ต่อเมื่องานมีสถานะเป็น SUCCEEDED แล้วเท่านั้น
The Analyze Printability task object
ออบเจ็กต์งาน Analyze Printability อธิบายการวิเคราะห์โมเดล 3D หนึ่งครั้ง โดยเก็บสถานะ progress และผลลัพธ์ความสามารถในการพิมพ์เมื่องานสำเร็จ
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
}
The Analyze Printability Task Object (wall thickness checked)
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000012000,
"expires_at": 1715725412000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "error",
"issue_count": 2,
"error_count": 1,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"intended_print": {
"printer_type": "sla",
"height_mm": 100,
"longest_side_mm": 118,
"wall_thickness_mm": 0.8,
"dimensions_mm": [118, 72.41, 99.87]
},
"thin_walls": {
"thin_area_ratio": 0.083,
"has_thin_walls": true,
"status": "error"
},
"evaluated_at": 1700000012000
},
"consumed_credits": 0
}
- Name
- id
- Type
- string
- Description
รหัสของงาน ถือว่าเป็นสตริงทึบ (opaque string) และไม่ควรอ้างอิงรูปแบบของมัน
- Name
- type
- Type
- string
- Description
ประเภทของงาน ซึ่งจะเป็น
print-analyzeเสมอ
- Name
- status
- Type
- string
- Description
สถานะของงาน ซึ่งเป็นหนึ่งใน
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDหรือCANCELED
- Name
- progress
- Type
- integer
- Description
งานเสร็จไปเท่าไหร่แล้ว แสดงเป็นเปอร์เซ็นต์ โดยจะเป็น
0จนกว่างานจะเริ่ม และเป็น100เมื่องานสำเร็จ
- Name
- preceding_tasks
- Type
- integer
- Description
จำนวนงานที่อยู่ก่อนหน้างานนี้ในคิว ค่านี้มีความหมายเฉพาะตอนที่งานอยู่ในสถานะ
PENDINGเท่านั้น
- Name
- created_at
- Type
- timestamp
- Description
เวลาที่สร้างงาน หน่วยเป็นมิลลิวินาทีแบบ Unix
- Name
- started_at
- Type
- timestamp
- Description
เวลาที่งานเริ่มต้น หน่วยเป็นมิลลิวินาทีแบบ Unix โดยจะเป็น
0จนกว่างานจะเริ่ม
- Name
- finished_at
- Type
- timestamp
- Description
เวลาที่งานเสร็จสิ้น หน่วยเป็นมิลลิวินาทีแบบ Unix โดยจะเป็น
0จนกว่างานจะเสร็จสิ้น
- Name
- expires_at
- Type
- timestamp
- Description
เวลาที่ผลลัพธ์ของงานหมดอายุ หน่วยเป็นมิลลิวินาทีแบบ Unix โดยจะเป็น
0จนกว่างานจะเสร็จสิ้น
- Name
- task_error
- Type
- object
- Description
รายละเอียดข้อผิดพลาดเมื่องานล้มเหลว โดยจะเป็น
nullหากงานยังไม่ล้มเหลว ดู ข้อผิดพลาด- Name
message- Type
- string
- Description
คำอธิบายว่าเกิดข้อผิดพลาดอะไรขึ้น
- Name
- printability
- Type
- object
- Description
ผลลัพธ์ของการวิเคราะห์ ซึ่งจะยังไม่ปรากฏจนกว่างานจะมีสถานะ
SUCCEEDED- Name
_version- Type
- string
- Description
เวอร์ชันของสคีมาของผลลัพธ์ความสามารถในการพิมพ์ ค่านี้คือ
v1
- Name
status- Type
- string
- Description
ผลสรุปโดยรวม ซึ่งเป็นหนึ่งใน:
healthy: ไม่มีข้อผิดพลาดและไม่มีคำเตือนwarning: มีคำเตือนอย่างน้อยหนึ่งรายการ และไม่มีข้อผิดพลาดerror: มีข้อผิดพลาดอย่างน้อยหนึ่งรายการunknown: Meshy ไม่สามารถวิเคราะห์โมเดลได้
เมื่อ Meshy ตรวจสอบความหนาผนัง ค่านี้จะเป็นค่าที่แย่กว่าระหว่างผลการตรวจสอบเมชและ
thin_walls.statusโดยเรียงลำดับจากแย่ที่สุดไปดีที่สุดคือerror,warning,unknownและhealthy
- Name
issue_count- Type
- integer
- Description
จำนวนปัญหาทั้งหมด ซึ่งเท่ากับ
error_count + warning_count
- Name
error_count- Type
- integer
- Description
จำนวนปัญหาระดับข้อผิดพลาด Meshy จะนับเป็นข้อผิดพลาดหนึ่งรายการสำหรับแต่ละกรณีต่อไปนี้:
- โมเดลไม่กันน้ำ (watertight) และมีรูมากกว่า 8 รู
- โมเดลมีรูมากกว่า 8 รู
- ปริมาตรเป็นศูนย์หรือน้อยกว่า
- โมเดลมีขอบ non-manifold มากกว่า 50 ขอบ
เมื่อ Meshy ตรวจสอบความหนาผนัง ผนังที่บางเกินไป (
thin_walls.statusเป็นerror) จะถูกนับเป็นข้อผิดพลาดเพิ่มอีกหนึ่งรายการ
- Name
warning_count- Type
- integer
- Description
จำนวนปัญหาระดับคำเตือน Meshy จะนับเป็นคำเตือนหนึ่งรายการสำหรับแต่ละกรณีต่อไปนี้:
- โมเดลไม่กันน้ำ (watertight) และมีรู 8 รูหรือน้อยกว่า
- โมเดลมีรู 1 ถึง 8 รู
- โมเดลมีขอบ non-manifold 1 ถึง 50 ขอบ
- โมเดลมีหน้าเสื่อม
- Name
metrics- Type
- object
- Description
ค่าการวัดจีออเมทรีดิบของโมเดล
- Name
is_watertight- Type
- boolean
- Description
trueเมื่อเมชไม่มีขอบขอบเขต (boundary edges) กล่าวคือเป็นโมเดลแบบปิด
- Name
volume- Type
- number
- Description
ปริมาตรของโมเดล หน่วยเป็นลูกบาศก์เมตร
- Name
non_manifold_edges- Type
- integer
- Description
จำนวนขอบ non-manifold
- Name
degenerate_faces- Type
- integer
- Description
จำนวนหน้าเสื่อม ซึ่งเป็นหน้าที่มีพื้นที่เป็นศูนย์หรือเป็นหน้าที่ไม่ถูกต้อง
- Name
holes- Type
- integer
- Description
จำนวนรูในเมช ซึ่งนับเป็นลูปขอบเขต (boundary loops)
- Name
intended_print- Type
- object
- Description
เครื่องพิมพ์และขนาดที่ใช้ในการตรวจสอบความหนาผนัง ค่านี้จะปรากฏเฉพาะเมื่อ Meshy ตรวจสอบความหนาผนังเท่านั้น
- Name
printer_type- Type
- string
- Description
ประเภทเครื่องพิมพ์
fdm,slaหรือfull_color
- Name
height_mm- Type
- number
- Description
ความสูงของงานพิมพ์ หน่วยเป็นมิลลิเมตร เมื่อขนาดของงานพิมพ์ถูกกำหนดด้วยความสูง มิฉะนั้นจะเป็น
null
- Name
longest_side_mm- Type
- number
- Description
ความยาวของด้านที่ยาวที่สุดของงานพิมพ์ หน่วยเป็นมิลลิเมตร เมื่องานพิมพ์ถูกกำหนดขนาดด้วยความสูง Meshy จะคำนวณค่านี้จากสัดส่วนของโมเดล
- Name
wall_thickness_mm- Type
- number
- Description
ความหนาผนังขั้นต่ำสำหรับ
printer_typeหน่วยเป็นมิลลิเมตร Meshy จะรายงานผนังที่บางกว่าค่านี้ว่าบางเกินไป
- Name
dimensions_mm- Type
- array
- Description
ขนาด
[width, depth, height]ของงานพิมพ์ หน่วยเป็นมิลลิเมตร ความสูงอาจแตกต่างจากheight_mmได้เล็กน้อยในระดับเศษมิลลิเมตร ค่านี้จะเป็นnullสำหรับไฟล์ที่ไม่ใช่ GLB หรือเมื่อ Meshy ไม่สามารถระบุขนาดของโมเดลได้
- Name
thin_walls- Type
- object
- Description
ผลลัพธ์ของการตรวจสอบความหนาผนัง ค่านี้จะปรากฏเฉพาะเมื่อ Meshy ตรวจสอบความหนาผนังเท่านั้น
- Name
thin_area_ratio- Type
- number
- Description
สัดส่วนของพื้นผิวที่บางกว่า
intended_print.wall_thickness_mmมีค่าตั้งแต่0ถึง1ค่านี้จะเป็นnullเมื่อ Meshy ไม่สามารถวัดโมเดลได้
- Name
has_thin_walls- Type
- boolean
- Description
trueหากมีส่วนใดของพื้นผิวที่บางเกินไป มุมแหลมเพียงอย่างเดียวก็อาจทำให้ค่านี้เป็นtrueได้ ดังนั้นควรใช้statusในการตัดสินใจว่าผนังจำเป็นต้องทำให้หนาขึ้นหรือไม่ ค่านี้จะเป็นnullเมื่อ Meshy ไม่สามารถวัดโมเดลได้
- Name
status- Type
- string
- Description
ผลสรุปความหนาผนัง ซึ่งเป็นหนึ่งใน:
healthy: พื้นผิวที่บางเกินไปมีไม่เกิน 5%error: พื้นผิวที่บางเกินไปมีมากกว่า 5% หากต้องการทำให้ผนังหนาขึ้น ให้ส่งidของงานนี้ไปยัง ซ่อมความสามารถในการพิมพ์ ในชื่อinput_task_idหากงานนี้วิเคราะห์ไฟล์.stl,.fbxหรือ.gltfจากmodel_urlให้ส่งไฟล์นั้นเป็นmodel_urlแทนunknown: Meshy ไม่สามารถวัดโมเดลได้ หากการตรวจสอบความหนาผนังเองล้มเหลว งานจะจบลงด้วยสถานะFAILED
- Name
evaluated_at- Type
- timestamp
- Description
เวลาที่ Meshy คำนวณผลการวิเคราะห์ หน่วยเป็นมิลลิวินาทีแบบ Unix
- Name
- consumed_credits
- Type
- integer
- Description
จำนวนเครดิตที่งานนี้ใช้ไป ค่านี้จะเป็น
0เสมอ เนื่องจากการวิเคราะห์ไม่มีค่าใช้จ่าย