Repair Printability API
ซ่อมโมเดล 3D เพื่อให้พร้อมสำหรับการพิมพ์ Meshy จะแก้ไขขอบ non-manifold, หน้าเสื่อม, รูโหว่ และปัญหา topology อื่น ๆ นอกจากนี้คุณยังสามารถเพิ่มความหนาของผนังที่บางเกินไปตามขนาดที่คุณวางแผนจะพิมพ์ได้อีกด้วย
สร้างงาน Repair Printability
สร้างงาน Repair Printability ซึ่งซ่อมแซม topology ของโมเดล 3D และคืนค่าเวอร์ชันที่ไม่มีรอยรั่ว (watertight) พร้อมสำหรับการพิมพ์ งานนี้ทำงานในเบื้องหลัง สำหรับระยะเวลาที่งานมักใช้ ดูที่ Processing times
โมเดลที่ซ่อมแล้วมีรูปแบบเดียวกับไฟล์นำเข้า ตัวอย่างเช่น สำหรับไฟล์ .stl ใน model_url ตัว model_urls.stl จะเก็บเมชที่ซ่อมแล้ว และ model_urls จะไม่มีคีย์รูปแบบอื่น เมื่อใช้ input_task_id Meshy จะซ่อมไฟล์ GLB ของงานต้นทางเสมอ ดังนั้นผลลัพธ์จึงเป็นไฟล์ .glb
Meshy จะลบเท็กซ์เจอร์ของโมเดลระหว่างการซ่อมแซม เนื่องจากจีออเมทรีมีการเปลี่ยนแปลง หากต้องการเพิ่มเท็กซ์เจอร์กลับเข้าไป ให้ส่งโมเดลที่ซ่อมแล้วไปยัง Retexture API
Request
# Repair an existing task
curl https://api.meshy.ai/openapi/v1/print/repair \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Or repair a model URL directly
curl https://api.meshy.ai/openapi/v1/print/repair \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/model.stl"
}'
# Also thicken walls that are too thin for a 100 mm tall SLA print
curl https://api.meshy.ai/openapi/v1/print/repair \
-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ไอดีของงานที่มีโมเดลที่คุณต้องการซ่อม เช่น งาน Image to 3D, Multi-Image to 3D, Text to 3D, Remesh, Retexture หรือ Analyze Printability งานนั้นต้องเป็นงานที่คุณสร้างด้วย API โดยมีสถานะSUCCEEDEDและมีโมเดล GLBงาน Analyze Printability ที่ตรวจสอบความหนาผนังจะส่งต่อข้อมูลเครื่องพิมพ์และขนาดด้วย การซ่อมแซมจะตรวจสอบความหนาผนังและทำให้ผนังบางเพิ่มความหนา แม้ว่าคุณจะไม่ได้ส่งทั้งสองอย่างก็ตาม
printer_typeหรือขนาดพิมพ์ที่คุณส่งจะแทนที่ค่าที่ได้จากการวิเคราะห์ งาน Analyze Printability ของไฟล์.stl,.fbxหรือ.gltfจากmodel_urlใช้งานไม่ได้ ให้ส่งไฟล์นั้นเป็นmodel_urlแทน
- 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เป็น URL แบบhttpหรือhttpsไฟล์ที่มีขนาดเกิน 100 MB ยังต้องปฏิบัติตามกฎเหล่านี้ด้วย:
- ไฟล์ GLB, glTF, FBX หรือ OBJ มีได้มากที่สุด 10,000,000 หน้า Meshy นับหน้าเป็นสามเหลี่ยม ดังนั้นรูปสี่เหลี่ยมนับเป็น 2 หน้า และเมชที่ถูกวาดซ้ำมากกว่าหนึ่งครั้งจะนับหนึ่งครั้งต่อสำเนา
- ไฟล์ FBX ต้องเป็น binary FBX เวอร์ชัน 7.1 ขึ้นไป
- ไฟล์ GLB หรือ glTF ต้องไม่ใช้การบีบอัดแบบ Draco
URL ดาวน์โหลดของ Meshy (
assets.meshy.ai/…?Expires=…&Signature=…) ถูกเซ็นชื่อไว้และจะหยุดทำงานเมื่อถึงexpires_atของงานนั้น การอ่านงานใหม่อีกครั้งจะไม่ต่ออายุให้ สำหรับโมเดลที่คุณสร้างด้วย Meshy ให้ส่งinput_task_idแทน ซึ่งจะใช้งานได้ตราบเท่าที่ Meshy ยังเก็บรักษางานต้นทางไว้ (ดู Asset retention) หากต้องการใช้โมเดลหลังจากนั้น ให้ดาวน์โหลดก่อนถึงexpires_atแล้วส่งสำเนาของคุณเอง
- Name
- alpha_thumbnail
- Type
- boolean
- ค่าเริ่มต้น false
- Description
ระบุว่าจะเรนเดอร์ภาพพรีวิวที่มีพื้นหลังโปร่งใส (RGBA) ด้วยหรือไม่ ซึ่งจะถูกส่งกลับใน
alpha_thumbnail_urlเมื่อคุณดึงข้อมูลงานนั้น ส่วนthumbnail_urlจะไม่เปลี่ยนแปลง
หากต้องการทำให้ผนังที่บางเกินไปสำหรับขนาดที่คุณวางแผนจะพิมพ์มีความหนาเพิ่มขึ้นด้วย ให้ส่ง printer_type, ขนาดพิมพ์ หรือทั้งสองอย่าง Meshy จะเพิ่มความหนาผนังเฉพาะเมื่อมากกว่า 5% ของพื้นผิวบางเกินไปสำหรับเครื่องพิมพ์นั้น โมเดลที่ซ่อมแล้วจะคงสเกลเดิมไว้ หากต้องการปรับขนาด ให้ใช้ Resize API ซึ่งรับค่าขนาดเป็นเมตร ดังนั้น 100 มม. คือ 0.1
- Name
- printer_type
- Type
- string
- Description
เครื่องพิมพ์ที่คุณวางแผนจะใช้ ค่านี้กำหนดความหนาผนังขั้นต่ำที่การซ่อมแซมจะมุ่งหวัง หากคุณส่งขนาดพิมพ์โดยไม่ระบุ
printer_typeMeshy จะใช้fdmเว้นแต่งาน Analyze Printability ในinput_task_idจะระบุเครื่องพิมพ์ไว้ค่าที่ใช้ได้:
fdm: ฟิลาเมนต์ ความหนาผนังขั้นต่ำ 1.0 มม.sla: เรซิน ความหนาผนังขั้นต่ำ 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 ไม่ได้นำขนาดจากงาน Analyze Printability มาใช้ซ้ำ Meshy จะใช้ขนาดพิมพ์นี้:
- ไฟล์
.glbหรือinput_task_idใดๆ: สูง 150 มม. - ไฟล์
.stl: ด้านที่ยาวที่สุดของไฟล์เอง อ่านค่าเป็นมิลลิเมตร - ไฟล์
.obj,.fbxหรือ.gltf: 150 มม. ที่ด้านยาวที่สุด
สำหรับไฟล์ STL ที่ใช้หน่วยอื่น ให้ส่ง intended_print_longest_side_mm
Meshy ปัดเศษขนาดพิมพ์ทั้งสองค่าเป็นมิลลิเมตรที่ใกล้ที่สุด
ค่าที่ส่งกลับ
ฟิลด์ result ของการตอบกลับเก็บไอดีของงาน Repair Printability ใหม่
รูปแบบความล้มเหลว
- 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คืนค่าข้อผิดพลาด ซึ่งมักเกิดจาก URL ดาวน์โหลดของ Meshy ที่เซ็นชื่อไว้หมดอายุ การอ่านงานใหม่อีกครั้งจะคืนค่า URL เดิมพร้อมวันหมดอายุเดิม ให้ส่งสำเนาไฟล์ของคุณเอง หรือส่งinput_task_idในขณะที่ Meshy ยังเก็บรักษางานต้นทางไว้ - งานยังไม่สำเร็จ: งาน
input_task_idยังอยู่ระหว่างรอดำเนินการ กำลังดำเนินการ หรือล้มเหลว - ไม่มี GLB: งาน
input_task_idไม่มีโมเดล GLB ให้ซ่อมแซม - ขนาดพิมพ์ไม่ถูกต้อง:
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
แก้ไขคำขอ แล้วส่งอีกครั้ง ดูที่ Errors
- พารามิเตอร์หายไป: ไม่ได้ส่งทั้ง
- Name
401 - Unauthorized- Description
API คีย์หายไปหรือไม่ถูกต้อง ตรวจสอบ header
Authorization
- Name
402 - Payment Required- Description
ตัวอย่างเช่น:
- เครดิตไม่เพียงพอ: บัญชีมีเครดิตไม่เพียงพอสำหรับงานนี้ หรือบัญชีถึงขีดจำกัดเครดิตแล้ว ตรวจสอบยอดเครดิตคงเหลือของคุณ แล้วลองใหม่
- แผนฟรี: การสร้างงานต้องใช้แผนแบบชำระเงิน อัปเกรดแผนของคุณในการตั้งค่าการสมัครสมาชิก แล้วลองใหม่
- Name
403 - Forbidden- Description
input_task_idเป็นโมเดลแบบนูนต่ำ (bas-relief) ซึ่งเอนด์พอยต์นี้ไม่สามารถซ่อมแซมได้ ข้อความคือThis model type does not support this operationให้ส่งโมเดลอื่นแทน
- Name
404 - Not Found- Description
งาน
input_task_idไม่มีอยู่จริงหรือเป็นของผู้ใช้อื่น ตรวจสอบไอดี และใช้ API คีย์จากบัญชีที่สร้างงานนั้น
- Name
429 - Too Many Requests- Description
คุณเกินขีดจำกัดอัตราการร้องขอ หรือมีงานที่รอดำเนินการมากเกินไป รอสักครู่ แล้วลองใหม่ ดูที่ Rate limits
รับงาน Repair Printability
ส่งคืนงาน Repair Printability ตาม ID ของงานนั้น
Request
curl https://api.meshy.ai/openapi/v1/print/repair/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-repair",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1715725401000,
"task_error": null,
"model_urls": {
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10
}
Response (wall thickness checked)
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-repair",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000090000,
"expires_at": 1715725490000,
"task_error": null,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10,
"intended_print": {
"printer_type": "sla",
"height_mm": 100,
"longest_side_mm": 118,
"wall_thickness_mm": 0.8,
"dimensions_mm": [118, 72.41, 99.87]
},
"print_repair_report": {
"route": "thin_wall",
"applied": true,
"faces_before": 243112,
"faces_after": 251870,
"thin_area_ratio_before": 0.083,
"thin_area_ratio_after": 0.004
}
}
พารามิเตอร์
- Name
- id
- Type
- path
- Description
ID ของงานจากการตอบกลับการสร้างงาน
สิ่งที่ส่งคืน
ออบเจ็กต์งาน Repair Printability โดยฟิลด์ model_urls จะว่างเปล่าจนกว่างานจะมีสถานะเป็น SUCCEEDED หลังจากนั้นจะมีเฉพาะคีย์ที่ตรงกับรูปแบบของอินพุตเท่านั้น การซ่อมความหนาผนังจะมี intended_print ตั้งแต่เริ่มต้น และจะมี print_repair_report หลังจากที่งานสำเร็จแล้ว
ลบงานซ่อมความสามารถในการพิมพ์
ลบงานซ่อมความสามารถในการพิมพ์อย่างถาวร รวมถึงโมเดลที่ซ่อมแล้วด้วย คุณไม่สามารถยกเลิกการลบได้
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/repair/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
ไอดีของงานที่ต้องการลบ
สถานะของงาน
การลบงานที่มีสถานะ PENDING จะคืนเครดิตที่ใช้ไปตอนสร้างงานนั้น
งานที่มีสถานะ IN_PROGRESS ไม่สามารถลบได้ คำขอจะคืนค่า 409 Conflict
และงานจะยังคงทำงานต่อไป Meshy ไม่คืนเครดิตให้กับงานที่เริ่มทำงานไปแล้ว
ดังนั้นการลบงานนี้จะทำให้คุณเสียทั้งเครดิตและผลลัพธ์ ให้รอจนกว่างาน
จะถึงสถานะ SUCCEEDED, FAILED หรือ CANCELED แล้วจึงค่อยลบ
การลบงานที่อยู่ในสถานะสุดท้าย (SUCCEEDED, FAILED หรือ CANCELED)
จะไม่คืนเครดิต
ค่าที่ส่งกลับ
200 OK เมื่อลบงานสำเร็จ หรือ 409 Conflict เมื่องานมีสถานะ
IN_PROGRESS
แสดงรายการงานซ่อมความสามารถในการพิมพ์
คืนค่ารายการงานซ่อมความสามารถในการพิมพ์ของคุณ
Request
curl https://api.meshy.ai/openapi/v1/print/repair?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-repair",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1715725401000,
"task_error": null,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10
}
]
พารามิเตอร์
- 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: ใหม่สุดก่อน
ค่าที่คืนกลับ
รายการแบบแบ่งหน้าของ ออบเจ็กต์งานซ่อมความสามารถในการพิมพ์
สตรีมงาน Repair Printability
สตรีมการอัปเดตของงานซ่อมความสามารถในการพิมพ์ในรูปแบบ Server-Sent Events (SSE)
Request
curl -N https://api.meshy.ai/openapi/v1/print/repair/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-repair",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1715725401000,
"task_error": null,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10
}
พารามิเตอร์
- Name
- id
- Type
- path
- Description
รหัสงานจากการตอบกลับตอนสร้างงาน
ค่าที่ส่งกลับ
สตรีมของ อ็อบเจ็กต์งานซ่อมความสามารถในการพิมพ์ ในรูปแบบ Server-Sent Events
แต่ละอีเวนต์จะมีอ็อบเจ็กต์งานฉบับเต็ม ในรูปแบบเดียวกับที่เอนด์พอยต์ Get
ส่งกลับ ในขณะที่งานยังมีสถานะ PENDING หรือ IN_PROGRESS ฟิลด์เอาต์พุต
ของงานจะว่างเปล่า (null, [], หรือ {}) และ finished_at จะเป็น 0
ส่วน model_urls จะเป็นอ็อบเจ็กต์ว่างจนกว่างานจะมีสถานะ SUCCEEDED
The Repair Printability task object
Repair Printability task object อธิบายการซ่อมโมเดล 3D หนึ่งครั้ง โดยเก็บสถานะ, progress และโมเดลที่ซ่อมแล้วเมื่องานสำเร็จ
The Repair Printability Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-repair",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1715725401000,
"task_error": null,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10
}
The Repair Printability Task Object (wall thickness checked)
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-repair",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000090000,
"expires_at": 1715725490000,
"task_error": null,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10,
"intended_print": {
"printer_type": "sla",
"height_mm": 100,
"longest_side_mm": 118,
"wall_thickness_mm": 0.8,
"dimensions_mm": [118, 72.41, 99.87]
},
"print_repair_report": {
"route": "thin_wall",
"applied": true,
"faces_before": 243112,
"faces_after": 251870,
"thin_area_ratio_before": 0.083,
"thin_area_ratio_after": 0.004
}
}
- Name
- id
- Type
- string
- Description
ไอดีของงาน ให้ถือว่าเป็นสตริงทึบ และอย่าอ้างอิงรูปแบบของมัน
- Name
- type
- Type
- string
- Description
ประเภทของงาน ซึ่งเป็น
print-repairเสมอ
- 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
- model_urls
- Type
- object
- Description
URL สำหรับดาวน์โหลดโมเดลที่ซ่อมแล้ว โดยจะมีเฉพาะคีย์ที่ตรงกับรูปแบบของอินพุตเท่านั้น รูปแบบที่งานไม่ได้สร้างจะไม่มีคีย์นั้นเลย แทนที่จะเป็นสตริงว่าง
- Name
glb- Type
- string
- Description
ไฟล์ GLB ที่ซ่อมแล้ว จะถูกกำหนดเมื่ออินพุตเป็นไฟล์ GLB หรือคุณส่ง
input_task_idมา
- Name
gltf- Type
- string
- Description
ไฟล์ glTF ที่ซ่อมแล้ว จะถูกกำหนดเมื่ออินพุตเป็นไฟล์ glTF
- Name
fbx- Type
- string
- Description
ไฟล์ FBX ที่ซ่อมแล้ว จะถูกกำหนดเมื่ออินพุตเป็นไฟล์ FBX
- Name
obj- Type
- string
- Description
ไฟล์ OBJ ที่ซ่อมแล้ว จะถูกกำหนดเมื่ออินพุตเป็นไฟล์ OBJ
- Name
stl- Type
- string
- Description
ไฟล์ STL ที่ซ่อมแล้ว จะถูกกำหนดเมื่ออินพุตเป็นไฟล์ STL
- Name
- thumbnail_url
- Type
- string
- Description
URL สำหรับดาวน์โหลดภาพตัวอย่างของโมเดลที่ซ่อมแล้ว
- Name
- alpha_thumbnail_url
- Type
- string
- Description
URL สำหรับดาวน์โหลดเวอร์ชันของ
thumbnail_urlที่มีพื้นหลังโปร่งใส (RGBA) จะปรากฏเฉพาะเมื่อคุณสร้างงานโดยระบุalpha_thumbnail: trueและ Meshy เรนเดอร์ภาพตัวอย่างแบบโปร่งใสแล้วเท่านั้น
- Name
- texture_urls
- Type
- array
- Description
เป็นอาร์เรย์ว่างเสมอ การซ่อมจะเก็บเฉพาะจีออเมทรีของอินพุตไว้เท่านั้น และไม่ได้ทำการ bake texture ใหม่
- Name
- consumed_credits
- Type
- integer
- Description
จำนวนเครดิตที่งานนี้ใช้ไป โดยจะเป็น
10เมื่องานนั้นSUCCEEDEDและเป็น0สำหรับงานที่FAILEDเนื่องจาก Meshy จะคืนเครดิตเมื่องานล้มเหลว
- Name
- intended_print
- Type
- object
- Description
เครื่องพิมพ์และขนาดที่ใช้ในการซ่อม ไม่ว่าคุณจะส่งค่ามาเองหรือ Meshy นำมาใช้ซ้ำจากงานวิเคราะห์ความสามารถในการพิมพ์ จะปรากฏตั้งแต่เริ่มต้นสำหรับการซ่อมความหนาผนัง รวมถึงขณะที่งานยังเป็น
PENDINGค่าที่ Meshy ยังไม่ทราบจะเป็นnull- 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 จะคำนวณค่านี้จากสัดส่วนของโมเดล และจะเป็น
nullจนกว่า Meshy จะวัดโมเดลเสร็จ
- Name
wall_thickness_mm- Type
- number
- Description
ความหนาผนังขั้นต่ำสำหรับ
printer_typeหน่วยเป็นมิลลิเมตร
- Name
dimensions_mm- Type
- array
- Description
[width, depth, height]ของงานพิมพ์ หน่วยเป็นมิลลิเมตร ความสูงอาจแตกต่างจากheight_mmไปเล็กน้อยไม่ถึงหนึ่งมิลลิเมตร จะเป็นnullจนกว่างานจะสำเร็จ และจะเป็นnullเสมอสำหรับอินพุตที่ไม่ใช่ GLB
- Name
- print_repair_report
- Type
- object
- Description
สิ่งที่การซ่อมความหนาผนังได้ทำไป จะปรากฏหลังจากการซ่อมความหนาผนังสำเร็จ
- Name
route- Type
- string
- Description
การซ่อมแบบใดที่ทำงาน หนึ่งใน:
thin_wall: พื้นผิวมากกว่า 5% บางเกินไป จึงมีการเพิ่มความหนาผนังด้วย หากต้องการดูว่ามันเปลี่ยนแปลงเมชหรือไม่ ให้ตรวจสอบappliedtopology: ผนังหนาพอแล้ว จึงมีเพียงการซ่อม topology เท่านั้นที่ทำงานtopology_unmeasured: Meshy ไม่สามารถวัดผนังได้ จึงมีเพียงการซ่อม topology เท่านั้นที่ทำงาน
- Name
applied- Type
- boolean
- Description
การเพิ่มความหนาผนังเปลี่ยนแปลงเมชหรือไม่ จะปรากฏเฉพาะเมื่อ
routeเป็นthin_wall
- Name
faces_before- Type
- integer
- Description
จำนวนหน้าของเมชอินพุต จะปรากฏเฉพาะเมื่อ
routeเป็นthin_wall
- Name
faces_after- Type
- integer
- Description
จำนวนหน้าของเมชที่ซ่อมแล้ว จะปรากฏเฉพาะเมื่อ
routeเป็นthin_wall
- Name
thin_area_ratio_before- Type
- number
- Description
สัดส่วนของพื้นผิวของอินพุตที่บางกว่า
intended_print.wall_thickness_mmมีค่าตั้งแต่0ถึง1จะถูกละไว้เมื่อ Meshy ไม่สามารถวัดอินพุตได้
- Name
thin_area_ratio_after- Type
- number
- Description
สัดส่วนเดียวกัน แต่วัดจากโมเดลที่ซ่อมแล้ว จะถูกละไว้เมื่อ Meshy ไม่สามารถวัดได้ งานยังคงสำเร็จอยู่