API วิเคราะห์ความสามารถในการพิมพ์
วิเคราะห์โมเดล 3D เพื่อตรวจสอบความสามารถในการพิมพ์ — ความปิดสนิท ปริมาตร รู ขอบ non-manifold และหน้าเสื่อม นอกจากนี้ยังสามารถตรวจสอบความหนาผนังตามขนาดที่คุณวางแผนจะพิมพ์ได้อีกด้วย
Create an Analyze Printability Task
เอนด์พอยต์นี้สร้างงานวิเคราะห์ความสามารถในการพิมพ์ใหม่ งานนี้จะประเมินโมเดล 3D และรายงานค่าเมตริกความสามารถในการพิมพ์
งานนี้ทำงานอยู่เบื้องหลัง สำหรับระยะเวลาที่ใช้โดยทั่วไป โปรดดูที่ Processing Times
หากงานที่ป้อนเข้าไปมีข้อมูลความสามารถในการพิมพ์ที่แคชไว้อยู่แล้ว งานที่ส่งกลับมาจะพร้อมใช้งานทันที และการเรียก GET ครั้งแรกบนงานนั้นจะส่งคืนผลการวิเคราะห์โดยไม่ต้องผ่าน worker
หากต้องการตรวจสอบความหนาผนังที่ขนาดที่คุณวางแผนจะพิมพ์ด้วย ให้ส่ง printer_type, ขนาดการพิมพ์ หรือทั้งสองอย่าง ผลลัพธ์จะถูกส่งคืนใน printability.thin_walls การตรวจสอบความหนาผนังใช้เวลานานกว่า ดังนั้นงานมักจะยังไม่พร้อมใช้งานทันที แม้ว่าโมเดลจะเคยถูกวิเคราะห์มาก่อนแล้วก็ตาม
พารามิเตอร์
ต้องระบุเพียงหนึ่งใน input_task_id หรือ model_url เท่านั้น ซึ่งจำเป็นต้องมี หากระบุทั้งสองอย่าง input_task_id จะมีความสำคัญกว่า
- Name
- input_task_id
- Type
- string
- จำเป็น
- Description
ID ของงานที่สำเร็จแล้วซึ่งคุณเป็นเจ้าของ ประเภทงานที่รองรับ: รูปภาพเป็น 3D, หลายรูปเป็น 3D, ข้อความเป็น 3D, รีเมช, และ รีเท็กซ์เจอร์ งานต้องใช้ Meshy 6 ขึ้นไป (รวมถึง Meshy 7) และต้องมีสถานะเป็น
SUCCEEDEDงาน ซ่อมความสามารถในการพิมพ์ ก็ได้รับการยอมรับเช่นกัน
- Name
- model_url
- Type
- string
- จำเป็น
- Description
URL ของโมเดล 3D ที่จะวิเคราะห์ รูปแบบที่รองรับ:
.glb,.gltf,.obj,.fbx,.stlใช้ URL แบบhttpหรือhttpsหรือ URL แบบ base64data:สำหรับ GLB (data:model/gltf-binary;base64,...) หรือ glTF (data:model/gltf+json;base64,...) ไฟล์.obj,.fbxและ.stlต้องส่งเป็น URL แบบhttpหรือhttpsขนาดไฟล์สูงสุด: 400 MB สำหรับ URL แบบ
httpหรือhttps, 100 MB สำหรับ URI แบบdata:ไฟล์ GLB, glTF, FBX หรือ OBJ ที่มีขนาดเกิน 100 MB สามารถมีหน้า (faces) ได้สูงสุด 10,000,000 หน้า หน้าจะถูกนับเป็นสามเหลี่ยม: quad หนึ่งอันนับเป็น 2 หน้า และเมชที่ถูกวาดมากกว่าหนึ่งครั้งจะนับหนึ่งครั้งต่อสำเนา สำหรับไฟล์ที่มีขนาดเกิน 100 MB ไฟล์ FBX ต้องเป็น binary FBX เวอร์ชัน 7.1 ขึ้นไป และไฟล์ GLB หรือ glTF ต้องไม่ใช้การบีบอัดแบบ Draco
URL ดาวน์โหลดของ Meshy (
assets.meshy.ai/…?Expires=…&Signature=…) มีการลงนามและจะใช้งานไม่ได้เมื่อถึงexpires_atของงาน การเรียกดูงานนั้นอีกครั้งจะไม่ต่ออายุ URL ดังกล่าว สำหรับโมเดลที่สร้างด้วย Meshy ให้ส่งinput_task_idแทน ซึ่งจะใช้งานได้ตราบใดที่งานต้นทางยังถูกเก็บรักษาอยู่ (ดู การเก็บรักษาแอสเซ็ต) หากต้องการนำโมเดลกลับมาใช้ใหม่หลังจากนั้น ให้ดาวน์โหลดก่อนถึงexpires_atแล้วส่งสำเนาของคุณเอง
ส่งฟิลด์ขนาดการพิมพ์ได้อย่างมากหนึ่งในสองฟิลด์เท่านั้น หากคุณส่ง printer_type โดยไม่ระบุขนาด ขนาดเริ่มต้นจะเป็น:
.glbและinput_task_idใดๆ: สูง 150 มม..stl: ด้านที่ยาวที่สุดของไฟล์เอง อ่านค่าเป็นมิลลิเมตร สำหรับ STL ที่ใช้หน่วยอื่น ให้ส่งintended_print_longest_side_mm.obj,.fbx,.gltf: 150 มม. ที่ด้านที่ยาวที่สุด
- Name
- printer_type
- Type
- string
- Description
เครื่องพิมพ์ที่คุณวางแผนจะใช้ ค่านี้กำหนดความหนาผนังขั้นต่ำสำหรับการตรวจสอบความหนาผนัง ค่าเริ่มต้นจะเป็น
fdmเมื่อคุณส่งขนาดการพิมพ์โดยไม่ระบุค่านี้ค่าที่ใช้ได้:
fdm: filament ความหนาผนังขั้นต่ำ 1.0 มม.sla: resin ความหนาผนังขั้นต่ำ 0.8 มม.full_color: full-color ความหนาผนังขั้นต่ำ 2.0 มม.
- Name
- intended_print_height_mm
- Type
- number
- Description
ความสูงของชิ้นงานพิมพ์ หน่วยเป็นมิลลิเมตร ช่วงค่า:
[1, 1000]ปัดเศษให้เป็นมิลลิเมตรที่ใกล้ที่สุด รองรับเฉพาะอินพุตแบบ GLB เท่านั้น
- Name
- intended_print_longest_side_mm
- Type
- number
- Description
ความยาวของด้านที่ยาวที่สุดของชิ้นงานพิมพ์ หน่วยเป็นมิลลิเมตร ช่วงค่า:
[1, 1000]ปัดเศษให้เป็นมิลลิเมตรที่ใกล้ที่สุด ใช้ได้กับทุกรูปแบบอินพุต
ค่าที่ส่งคืน
พร็อพเพอร์ตี้ 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 (URI แบบdata:) - มีจำนวนหน้ามากเกินไป:
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 และไม่สามารถอ่าน header ได้ ตัวอย่างเช่น GLB หรือ glTF ที่บีบอัดด้วย Draco หรือ binary FBX ที่เก่ากว่าเวอร์ชัน 7.1 - Header ของโมเดลซับซ้อนเกินไป:
model_urlมีขนาดเกิน 100 MB และ header มีจำนวนเมช โหนด หรือเรคอร์ดมากเกินกว่าจะตรวจสอบได้ ให้ลดจำนวนออบเจ็กต์ในไฟล์ แล้วส่งอีกครั้ง - ไม่สามารถดาวน์โหลดไฟล์โมเดลได้:
model_urlส่งคืนข้อผิดพลาด ซึ่งมักเกิดจาก URL ดาวน์โหลดของ Meshy ที่ลงนามไว้หมดอายุแล้ว การเรียกดูงานอีกครั้งจะส่งคืน URL เดิมพร้อมวันหมดอายุเดิม ดังนั้นให้ส่งสำเนาไฟล์ของคุณเอง หรือใช้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, 1000]มม. โมเดลแบนเกินไป หรือไม่สามารถระบุขนาดได้ ให้ใช้intended_print_longest_side_mmแทน สำหรับmodel_urlแบบ.glbและงานinput_task_idบางงาน จะพบปัญหานี้หลังจากที่งานเริ่มต้นเท่านั้น และงานจะจบลงด้วยสถานะFAILEDแทน - ขนาด STL ใช้งานไม่ได้: มีการส่ง
printer_typeโดยไม่ระบุขนาด และด้านที่ยาวที่สุดของไฟล์.stlเองไม่สามารถอ่านได้หรืออยู่นอกช่วง[1, 1000]มม. ให้ส่งintended_print_longest_side_mm
- ขาดพารามิเตอร์: ไม่มีการระบุทั้ง
- Name
401 - Unauthorized- Description
การยืนยันตัวตนล้มเหลว โปรดตรวจสอบ API คีย์ของคุณ
- Name
404 - Not Found- Description
สาเหตุทั่วไป:
- งานไม่มีอยู่ ถูกลบไปแล้ว หรือเป็นของผู้ใช้รายอื่น
- งานใช้โมเดลที่เก่ากว่า Meshy 6 หรือ mode ของงานไม่ได้สร้างแอสเซ็ต 3D
- ไฟล์โมเดลต้นฉบับไม่สามารถใช้งานได้ในพื้นที่จัดเก็บข้อมูลอีกต่อไป
- Name
429 - Too Many Requests- Description
คุณเกินโควตางานที่รอดำเนินการหรือการจำกัดอัตราของคุณแล้ว
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"
}
ดึงข้อมูลงานวิเคราะห์ความสามารถในการพิมพ์
เอนด์พอยต์นี้ใช้ดึงข้อมูลงานวิเคราะห์ความสามารถในการพิมพ์ด้วย ID ของงานนั้น
พารามิเตอร์
- Name
- id
- Type
- path
- Description
ID ของงานวิเคราะห์ความสามารถในการพิมพ์ที่ต้องการดึงข้อมูล
ค่าที่ส่งกลับ
Analyze Printability Task Object โดยฟิลด์ printability จะเป็น null จนกว่างานจะมีสถานะเป็น SUCCEEDED เมื่อมีการตรวจสอบความหนาผนัง printability จะมี intended_print และ thin_walls รวมอยู่ด้วย
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
}
ลบงานวิเคราะห์ความสามารถในการพิมพ์
เอนด์พอยต์นี้จะลบงานวิเคราะห์ความสามารถในการพิมพ์และผลลัพธ์ที่แคชไว้อย่างถาวร การกระทำนี้ไม่สามารถย้อนกลับได้
Path Parameters
- Name
- id
- Type
- path
- Description
ID ของงานวิเคราะห์ความสามารถในการพิมพ์ที่ต้องการลบ
สถานะของงาน
งานที่ยังอยู่ในสถานะ PENDING จะถูกลบ และเครดิตที่ถูกใช้ไปตอนสร้างงานจะได้รับการคืน
งานที่อยู่ในสถานะ IN_PROGRESS แล้วไม่สามารถลบได้ โดยคำขอจะถูกปฏิเสธด้วย
409 Conflict และงานจะยังคงทำงานต่อไป เครดิตสำหรับงานที่ worker
เริ่มดำเนินการไปแล้วจะไม่สามารถขอคืนได้ ดังนั้นการลบงานขณะที่กำลังทำงานอยู่
จะทำให้คุณเสียทั้งเครดิตและผลลัพธ์ ให้รอจนกว่างานจะถึงสถานะ
SUCCEEDED, FAILED หรือ CANCELED แล้วจึงค่อยลบ
งานที่อยู่ในสถานะสุดท้าย (SUCCEEDED, FAILED หรือ CANCELED) จะถูกลบ
โดยไม่มีการคืนเงิน
ค่าที่ส่งกลับ
ส่งกลับ 200 OK เมื่อสำเร็จ หรือ 409 Conflict เมื่อสถานะของงานเป็น
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."
}
List Analyze Printability Tasks
เอนด์พอยต์นี้ช่วยให้คุณสามารถดึงรายการงานวิเคราะห์ความสามารถในการพิมพ์ได้
พารามิเตอร์
แอตทริบิวต์ที่ไม่บังคับ
- Name
- page_num
- Type
- integer
- Description
หมายเลขหน้าสำหรับการแบ่งหน้า เริ่มต้นและค่าเริ่มต้นคือ
1
- Name
- page_size
- Type
- integer
- Description
จำนวนจำกัดขนาดของหน้า ค่าเริ่มต้นคือ
10รายการ สูงสุดที่อนุญาตคือ100รายการ
- Name
- sort_by
- Type
- string
- Description
ฟิลด์ที่ใช้สำหรับเรียงลำดับ ค่าที่ใช้ได้:
+created_at: เรียงลำดับตามเวลาที่สร้างจากน้อยไปมาก-created_at: เรียงลำดับตามเวลาที่สร้างจากมากไปน้อย
ค่าที่ส่งกลับ
ส่งคืนรายการแบบแบ่งหน้าของ Analyze Printability Task Objects
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
}
]
สตรีมงานวิเคราะห์ความสามารถในการพิมพ์
เอนด์พอยต์นี้สตรีมการอัปเดตแบบเรียลไทม์สำหรับงานวิเคราะห์ความสามารถในการพิมพ์โดยใช้ Server-Sent Events (SSE)
พารามิเตอร์
- Name
- id
- Type
- path
- Description
ตัวระบุเฉพาะสำหรับงานวิเคราะห์ความสามารถในการพิมพ์ที่ต้องการสตรีม
ค่าที่ส่งกลับ
ส่งกลับสตรีมของ Analyze Printability Task Objects ในรูปแบบ Server-Sent Events
แต่ละเฟรมจะมีออบเจ็กต์งานฉบับเต็มสำหรับขั้นตอนนั้น ๆ — มีรูปแบบเดียวกันกับที่
เอนด์พอยต์ Get ส่งกลับมา — ดังนั้นในขณะที่งานยังอยู่ในสถานะ PENDING หรือ IN_PROGRESS
ฟิลด์ผลลัพธ์จะยังไม่ถูกเติมข้อมูล (null, [] หรือ {}) และ
finished_at จะเป็น null ส่วนบล็อก printability จะถูกส่งก็ต่อเมื่องานมีสถานะเป็น 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
}
The Analyze Printability Task Object
- Name
- id
- Type
- string
- Description
ตัวระบุเฉพาะสำหรับ task นี้ แม้ว่าเราจะใช้ k-sortable UUID สำหรับ task id เป็นรายละเอียดการ implement แต่คุณไม่ควรตั้งสมมติฐานใดๆ เกี่ยวกับรูปแบบของ id
- Name
- type
- Type
- string
- Description
ประเภทของ task วิเคราะห์ความสามารถในการพิมพ์ ค่าคือ
print-analyze
- Name
- status
- Type
- string
- Description
สถานะของ task ค่าที่เป็นไปได้คือ
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED
- Name
- progress
- Type
- integer
- Description
progress ของ task หากยังไม่เริ่ม task คุณสมบัตินี้จะเป็น
0เมื่อ task สำเร็จแล้ว ค่านี้จะกลายเป็น100
- Name
- preceding_tasks
- Type
- integer
- Description
จำนวนของ task ที่อยู่ก่อนหน้า
ค่าของฟิลด์นี้มีความหมายก็ต่อเมื่อสถานะของ task เป็น
PENDING
- Name
- created_at
- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่สร้าง task หน่วยเป็นมิลลิวินาที
- Name
- started_at
- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่เริ่ม task หน่วยเป็นมิลลิวินาที หากยังไม่เริ่ม task คุณสมบัตินี้จะเป็น
0
- Name
- finished_at
- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่ task เสร็จสิ้น หน่วยเป็นมิลลิวินาที หากยังไม่เสร็จสิ้น คุณสมบัตินี้จะเป็น
0
- Name
- expires_at
- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่ผลลัพธ์ของ task จะหมดอายุจากระบบ หน่วยเป็นมิลลิวินาที เป็น
0หาก task ยังไม่เสร็จสิ้น
- Name
- task_error
- Type
- object
- Description
ข้อมูลข้อผิดพลาดหาก task ล้มเหลว คุณสมบัตินี้จะเป็น
nullหาก task ไม่ได้ล้มเหลว ดู ข้อผิดพลาด สำหรับรายละเอียดเพิ่มเติม- Name
message- Type
- string
- Description
ข้อความข้อผิดพลาดที่อธิบายว่าเกิดอะไรขึ้น
- Name
- printability
- Type
- object
- Description
ผลลัพธ์การประเมินความสามารถในการพิมพ์ เป็น
nullจนกว่า task จะถึงสถานะSUCCEEDED- Name
_version- Type
- string
- Description
เวอร์ชันสคีมาของผลลัพธ์ความสามารถในการพิมพ์ ปัจจุบันคือ
v1
- Name
status- Type
- string
- Description
สถานะโดยรวม เป็นหนึ่งใน:
healthy: ไม่มีข้อผิดพลาดและไม่มีคำเตือนwarning: มีคำเตือนอย่างน้อยหนึ่งรายการ ไม่มีข้อผิดพลาดerror: มีข้อผิดพลาดอย่างน้อยหนึ่งรายการunknown: ไม่สามารถวิเคราะห์โมเดลได้
เมื่อมีการตรวจสอบความหนาผนัง ค่านี้คือค่าที่แย่ที่สุดระหว่างการตรวจสอบข้างต้นกับ
thin_walls.statusโดยเรียงจากแย่ที่สุดไปดีที่สุดคือerror,warning,unknown,healthy
- Name
issue_count- Type
- integer
- Description
จำนวนรวมของปัญหา เท่ากับ
error_count + warning_count
- Name
error_count- Type
- integer
- Description
จำนวนปัญหาระดับข้อผิดพลาด ข้อผิดพลาดจะเกิดขึ้นเมื่อโมเดลไม่เป็น watertight มีปริมาตรที่ไม่เป็นบวก หรือมีขอบ non-manifold เมื่อมีการตรวจสอบความหนาผนัง ผนังที่บางเกินไป (
thin_walls.statusเป็นerror) จะนับเป็นข้อผิดพลาดเพิ่มอีกหนึ่งรายการ
- Name
warning_count- Type
- integer
- Description
จำนวนปัญหาระดับคำเตือน คำเตือนจะเกิดขึ้นเมื่อโมเดลมีหน้าเสื่อม หรือรู
- Name
metrics- Type
- object
- Description
เมตริกจีออเมทรีดิบที่ส่งคืนโดยตัวประเมิน
- Name
is_watertight- Type
- boolean
- Description
trueเมื่อเมชไม่มีขอบขอบเขต (กล่าวคือ ปิดสนิท)
- 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
เครื่องพิมพ์และขนาดที่ใช้ในการตรวจสอบความหนาผนัง จะปรากฏเฉพาะเมื่อมีการตรวจสอบความหนาผนัง
- Name
printer_type- Type
- string
- Description
fdm,sla, หรือfull_color
- Name
height_mm- Type
- number
- Description
ความสูงของงานพิมพ์เป็นมิลลิเมตร หากงานพิมพ์ถูกกำหนดขนาดตามความสูง มิฉะนั้นเป็น
null
- Name
longest_side_mm- Type
- number
- Description
ด้านที่ยาวที่สุดของงานพิมพ์เป็นมิลลิเมตร เมื่อกำหนดขนาดตามความสูง ค่านี้จะคำนวณจากสัดส่วนของโมเดล
- Name
wall_thickness_mm- Type
- number
- Description
ความหนาผนังขั้นต่ำสำหรับ
printer_typeหน่วยเป็นมิลลิเมตร ผนังที่บางกว่านี้จะถูกรายงานว่าบางเกินไป
- Name
dimensions_mm- Type
- array
- Description
ขนาด
[width, depth, height]ของงานพิมพ์เป็นมิลลิเมตร ความสูงอาจแตกต่างจากheight_mmเพียงเศษส่วนของมิลลิเมตร เป็นnullสำหรับอินพุตที่ไม่ใช่ GLB หรือหากไม่สามารถกำหนดขนาดของโมเดลได้
- Name
thin_walls- Type
- object
- Description
ผลลัพธ์การตรวจสอบความหนาผนัง จะปรากฏเฉพาะเมื่อมีการตรวจสอบความหนาผนัง
- Name
thin_area_ratio- Type
- number
- Description
สัดส่วนของพื้นผิว ตั้งแต่
0ถึง1ที่บางกว่าintended_print.wall_thickness_mmเป็นnullหากไม่สามารถวัดโมเดลได้
- Name
has_thin_walls- Type
- boolean
- Description
trueหากส่วนใดส่วนหนึ่งของพื้นผิวบางเกินไป มุมแหลมเพียงอย่างเดียวก็สามารถทำให้ค่านี้เป็นtrueได้ ดังนั้นให้ใช้statusในการตัดสินใจว่าจำเป็นต้องเพิ่มความหนาของผนังหรือไม่ เป็นnullหากไม่สามารถวัดโมเดลได้
- Name
status- Type
- string
- Description
ผลตัดสินความหนาผนัง เป็นหนึ่งใน:
healthy: พื้นผิว 5% หรือน้อยกว่าที่บางเกินไปerror: พื้นผิวมากกว่า 5% ที่บางเกินไป หากต้องการเพิ่มความหนาของผนัง ให้ส่งidของ task นี้ไปยัง ซ่อมความสามารถในการพิมพ์ เป็นinput_task_id(สำหรับmodel_urlที่เป็น.stl,.fbx, หรือ.gltfให้ส่งไฟล์เป็นmodel_urlแทน)unknown: ไม่สามารถวัดโมเดลได้ หากการตรวจสอบความหนาผนังเองล้มเหลว task จะสิ้นสุดด้วยสถานะFAILED
- Name
evaluated_at- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่คำนวณการวิเคราะห์ หน่วยเป็นมิลลิวินาทีนับจาก epoch
- Name
- consumed_credits
- Type
- integer
- Description
เป็น
0เสมอ เอนด์พอยต์นี้ใช้งานฟรี
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
}