lowpoly จะยุติการให้บริการในวันที่ 30 ต.ค. 2569 โปรดเปลี่ยนโมเดลก่อนวันที่เหล่านี้เพื่อหลีกเลี่ยงข้อผิดพลาดของคำขอ

Repair Printability API

ซ่อมความสามารถในการพิมพ์ของโมเดล 3D — แก้ไขขอบ non-manifold, หน้าเสื่อม, รู และปัญหา topology อื่น ๆ เพื่อให้เมชพร้อมสำหรับการพิมพ์ นอกจากนี้ยังสามารถเพิ่มความหนาของผนังที่บางเกินไปตามขนาดที่คุณวางแผนจะพิมพ์ได้อีกด้วย


POST/openapi/v1/print/repair

สร้างงานซ่อมความสามารถในการพิมพ์

เอนด์พอยต์นี้สร้างงานซ่อมความสามารถในการพิมพ์ใหม่ งานนี้จะทำการซ่อม topology บนโมเดล 3D และส่งคืนเวอร์ชันที่ไม่รั่วน้ำ (watertight) และพร้อมพิมพ์

งานนี้ทำงานในเบื้องหลัง สำหรับระยะเวลาที่มักใช้ โปรดดู Processing Times

รูปแบบไฟล์ผลลัพธ์จะตรงกับรูปแบบไฟล์อินพุต หากคุณส่ง .stl ผ่าน model_url คำตอบใน model_urls.stl จะมีเมชที่ซ่อมแล้ว และฟิลด์รูปแบบอื่นจะว่างเปล่า ส่วน path ของ input_task_id จะอ่าน GLB ของงานต้นทางเสมอ ดังนั้นผลลัพธ์จึงเป็น .glb

หากต้องการทำให้ผนังที่บางเกินไปสำหรับขนาดที่คุณวางแผนจะพิมพ์มีความหนาขึ้นด้วย ให้ส่ง printer_type, ขนาดการพิมพ์ หรือทั้งสองอย่าง ผนังจะถูกทำให้หนาขึ้นก็ต่อเมื่อพื้นผิวมากกว่า 5% บางเกินไปสำหรับเครื่องพิมพ์นั้น โมเดลที่ซ่อมแล้วจะคงสเกลเดิมไว้ หากต้องการปรับสเกล ให้ใช้ Resize API ซึ่งรับค่าเป็นเมตร (100 มม. คือ 0.1)

พารามิเตอร์

  • Name
    input_task_id
    Type
    string
    จำเป็น
    Description

    ID ของงานที่สำเร็จแล้วซึ่งคุณเป็นเจ้าของ ประเภทงานที่รองรับ: รูปภาพเป็น 3D, หลายรูปเป็น 3D, ข้อความเป็น 3D, รีเมช, รีเท็กซ์เจอร์ และ วิเคราะห์ความสามารถในการพิมพ์ งานนั้นต้องมีสถานะ SUCCEEDED และต้องผลิตแอสเซ็ต GLB ออกมาแล้ว

    งานวิเคราะห์ที่ตรวจสอบความหนาผนังจะส่งต่อข้อมูลเครื่องพิมพ์และขนาดของมันไปด้วย ดังนั้นงานซ่อมจะตรวจสอบความหนาผนังและทำให้ผนังบางหนาขึ้น แม้ว่าคุณจะไม่ได้ส่งค่าใดเลยก็ตาม ส่วน printer_type หรือขนาดการพิมพ์ที่คุณส่งมาจะเขียนทับค่านั้น งานวิเคราะห์ที่สร้างจาก model_url ที่เป็น .stl, .fbx หรือ .gltf จะไม่ถูกยอมรับ: ให้ส่งไฟล์เป็น model_url แทน

  • Name
    model_url
    Type
    string
    จำเป็น
    Description

    URL ของโมเดล 3D ที่จะซ่อม รูปแบบที่รองรับ: .glb, .gltf, .obj, .fbx, .stl ใช้ URL แบบ http หรือ https หรือ URL แบบ base64 data: สำหรับ 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 สำหรับ data: URI

    ไฟล์ GLB, glTF, FBX หรือ OBJ ที่มีขนาดเกิน 100 MB สามารถมีได้สูงสุด 10,000,000 หน้า โดยหน้าจะถูกนับเป็นสามเหลี่ยม: หนึ่งสี่เหลี่ยมนับเป็น 2 และเมชที่วาดซ้ำมากกว่าหนึ่งครั้งจะถูกนับหนึ่งครั้งต่อสำเนา สำหรับไฟล์ที่เกิน 100 MB ไฟล์ FBX ต้องเป็น binary FBX 7.1 หรือใหม่กว่า และไฟล์ GLB หรือ glTF ต้องไม่ใช้การบีบอัดแบบ Draco

    URL ดาวน์โหลดของ Meshy (assets.meshy.ai/…?Expires=…&Signature=…) มีการเซ็นชื่อกำกับและจะหยุดทำงานเมื่อถึง expires_at ของงานนั้น การดึงข้อมูลงานซ้ำอีกครั้งจะไม่ต่ออายุให้ สำหรับโมเดลที่สร้างด้วย Meshy ให้ส่ง input_task_id แทน ซึ่งจะใช้งานได้ตราบเท่าที่งานต้นทางยังถูกเก็บรักษาไว้ (ดู Asset Retention) หากต้องการนำโมเดลกลับมาใช้ใหม่หลังจากนั้น ให้ดาวน์โหลดก่อนถึง expires_at แล้วส่งสำเนาของคุณเอง

  • Name
    alpha_thumbnail
    Type
    boolean
    ค่าเริ่มต้น false
    Description

    เมื่อตั้งค่าเป็น true งานจะเรนเดอร์ภาพตัวอย่างแบบพื้นหลังโปร่งใส (RGBA) เพิ่มเติม และส่งคืนเป็น alpha_thumbnail_url ในคำตอบ GET ฟิลด์ thumbnail_url เดิมจะไม่เปลี่ยนแปลง

  • Name
    printer_type
    Type
    string
    Description

    เครื่องพิมพ์ที่คุณวางแผนจะใช้ ค่านี้กำหนดความหนาผนังขั้นต่ำที่การซ่อมมุ่งหมาย จะมีค่าเริ่มต้นเป็น fdm เมื่อคุณส่งขนาดการพิมพ์โดยไม่ระบุค่านี้ เว้นแต่งานวิเคราะห์ที่ส่งเป็น input_task_id จะให้ข้อมูลเครื่องพิมพ์มา

    ค่าที่ใช้ได้:

    • fdm: ฟิลาเมนต์ ผนังขั้นต่ำ 1.0 มม.
    • sla: เรซิน ผนังขั้นต่ำ 0.8 มม.
    • 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 (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 และไม่สามารถอ่านส่วนหัวได้ เช่น GLB หรือ glTF ที่บีบอัดแบบ Draco หรือ binary FBX รุ่นเก่ากว่า 7.1
    • ส่วนหัวโมเดลซับซ้อนเกินไป: model_url มีขนาดเกิน 100 MB และส่วนหัวมีเมช โหนด หรือเรคคอร์ดมากเกินกว่าจะตรวจสอบได้ ให้ลดจำนวนวัตถุในไฟล์ลง แล้วส่งไฟล์อีกครั้ง
    • ไม่สามารถดาวน์โหลดไฟล์โมเดลได้: model_url ส่งคืนข้อผิดพลาด ซึ่งมักเกิดจาก URL ดาวน์โหลดของ Meshy ที่เซ็นชื่อหมดอายุแล้ว การดึงข้อมูลงานซ้ำอีกครั้งจะได้ URL เดิมพร้อมวันหมดอายุเดิม ดังนั้นให้ส่งสำเนาไฟล์ของคุณเอง หรือใช้ input_task_id ในขณะที่งานต้นทางยังถูกเก็บรักษาอยู่
    • งานยังไม่สำเร็จ: งานที่อ้างถึงยังอยู่ระหว่างรอดำเนินการ กำลังดำเนินการ หรือล้มเหลว
    • ไม่มี GLB: งานที่อ้างถึงไม่มีแอสเซ็ต 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, 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
    402 - Payment Required
    Description

    สาเหตุที่พบได้บ่อย:

    • แผนฟรี: การสร้างงานต้องใช้แผนแบบชำระเงิน อัปเกรดได้ที่หน้าการสมัครสมาชิก
    • เครดิตไม่เพียงพอ: ถึงขีดจำกัดเครดิตของพื้นที่ทำงานแล้ว
  • Name
    404 - Not Found
    Description

    งานที่อ้างถึงไม่มีอยู่ หรือเป็นของผู้ใช้รายอื่น

  • Name
    429 - Too Many Requests
    Description

    คุณใช้งานเกินโควตางานที่รอดำเนินการหรือการจำกัดอัตราของคุณแล้ว

Request

POST
/openapi/v1/print/repair
# 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"
}

GET/openapi/v1/print/repair/:id

ดึงข้อมูล Repair Printability Task

เอนด์พอยต์นี้ใช้ดึงข้อมูลงานซ่อมความสามารถในการพิมพ์โดยใช้ ID ของงานนั้น

พารามิเตอร์

  • Name
    id
    Type
    path
    Description

    ID ของงานซ่อมความสามารถในการพิมพ์ที่ต้องการดึงข้อมูล

ค่าที่ส่งกลับ

Repair Printability Task Object โดยบล็อก model_urls จะว่างเปล่าจนกว่างานจะมีสถานะเป็น SUCCEEDED และมีเพียงฟิลด์ model_urls ที่ตรงกับรูปแบบอินพุตเท่านั้นที่จะถูกเติมข้อมูล การซ่อมความหนาผนังจะมี intended_print ตั้งแต่เริ่มต้น และจะมี print_repair_report เมื่องานสำเร็จแล้ว

Request

GET
/openapi/v1/print/repair/a43b5c6d-7e8f-901a-234b-567c890d1e2f
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": {
    "glb": "",
    "gltf": "",
    "fbx": "",
    "obj": "",
    "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***",
    "usdz": "",
    "3mf": "",
    "mtl": ""
  },
  "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=***",
    "gltf": "",
    "fbx": "",
    "obj": "",
    "stl": "",
    "usdz": "",
    "3mf": "",
    "mtl": ""
  },
  "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
  }
}

DELETE/openapi/v1/print/repair/:id

ลบงานซ่อมความสามารถในการพิมพ์

เอนด์พอยต์นี้จะลบงานซ่อมความสามารถในการพิมพ์และผลลัพธ์ที่ซ่อมแล้วอย่างถาวร การกระทำนี้ไม่สามารถย้อนกลับได้

Path Parameters

  • Name
    id
    Type
    path
    Description

    ID ของงานซ่อมความสามารถในการพิมพ์ที่ต้องการลบ

สถานะของงาน

งานที่ยังอยู่ในสถานะ PENDING จะถูกลบ และเครดิตที่ใช้ไปตอนสร้างงาน จะได้รับการคืนกลับ

งานที่อยู่ในสถานะ IN_PROGRESS ไม่สามารถลบได้: คำขอจะถูกปฏิเสธด้วย 409 Conflict และงานจะยังคงทำงานต่อไป เครดิตสำหรับงานที่ worker ได้เริ่มดำเนินการไปแล้วจะไม่สามารถขอคืนได้ ดังนั้นการลบงานระหว่างที่กำลังทำงานอยู่ จะทำให้คุณเสียทั้งเครดิตและผลลัพธ์ไปด้วย ให้รอจนกว่างานจะถึงสถานะ SUCCEEDED, FAILED หรือ CANCELED แล้วจึงลบ

งานที่อยู่ในสถานะสุดท้าย (SUCCEEDED, FAILED หรือ CANCELED) จะถูกลบ โดยไม่มีการคืนเครดิต

Returns

คืนค่า 200 OK เมื่อสำเร็จ หรือ 409 Conflict เมื่อสถานะของงานคือ IN_PROGRESS

Request

DELETE
/openapi/v1/print/repair/a43b5c6d-7e8f-901a-234b-567c890d1e2f
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 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."
}

GET/openapi/v1/print/repair

แสดงรายการงานซ่อมความสามารถในการพิมพ์

เอนด์พอยต์นี้ช่วยให้คุณสามารถดึงรายการงานซ่อมความสามารถในการพิมพ์ได้

พารามิเตอร์

แอตทริบิวต์ที่ไม่บังคับ

  • 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: เรียงลำดับตามเวลาที่สร้างจากมากไปน้อย

ค่าที่ส่งกลับ

ส่งคืนรายการแบบแบ่งหน้าของ ออบเจ็กต์งานซ่อมความสามารถในการพิมพ์

Request

GET
/openapi/v1/print/repair
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=***",
      "gltf": "",
      "fbx": "",
      "obj": "",
      "stl": "",
      "usdz": "",
      "3mf": "",
      "mtl": ""
    },
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
    "texture_urls": [],
    "consumed_credits": 10
  }
]

GET/openapi/v1/print/repair/:id/stream

สตรีมงานซ่อมความสามารถในการพิมพ์

เอนด์พอยต์นี้สตรีมการอัปเดตแบบเรียลไทม์สำหรับงานซ่อมความสามารถในการพิมพ์โดยใช้ Server-Sent Events (SSE)

พารามิเตอร์

  • Name
    id
    Type
    path
    Description

    ตัวระบุเฉพาะสำหรับงานซ่อมความสามารถในการพิมพ์ที่ต้องการสตรีม

ค่าที่ส่งกลับ

ส่งกลับสตรีมของ Repair Printability Task Objects ในรูปแบบ Server-Sent Events

ทุกเฟรมจะมีออบเจ็กต์งานฉบับเต็มสำหรับขั้นตอนนั้น ๆ — มีรูปแบบเดียวกับที่ เอนด์พอยต์ Get ส่งกลับ — ดังนั้นในขณะที่งานยังอยู่ในสถานะ PENDING หรือ IN_PROGRESS ฟิลด์ผลลัพธ์จะยังไม่ถูกเติมข้อมูล (null, [] หรือ {}) และ finished_at จะเป็น null ส่วนบล็อก model_urls จะถูกส่งมาก็ต่อเมื่องานถึงสถานะ SUCCEEDED แล้วเท่านั้น

Request

GET
/openapi/v1/print/repair/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
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 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-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=***",
    "gltf": "",
    "fbx": "",
    "obj": "",
    "stl": "",
    "usdz": "",
    "3mf": "",
    "mtl": ""
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
  "texture_urls": [],
  "consumed_credits": 10
}

The Repair Printability Task Object

  • Name
    id
    Type
    string
    Description

    ตัวระบุเฉพาะสำหรับงานนี้ แม้ว่าเราจะใช้ k-sortable UUID สำหรับ id ของงานในฐานะรายละเอียดการ implement แต่คุณไม่ควรตั้งสมมติฐานใดๆ เกี่ยวกับรูปแบบของ id

  • Name
    type
    Type
    string
    Description

    ประเภทของงานซ่อมความสามารถในการพิมพ์ ค่านี้คือ print-repair

  • Name
    status
    Type
    string
    Description

    สถานะของงาน ค่าที่เป็นไปได้คือค่าใดค่าหนึ่งจาก PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED

  • Name
    progress
    Type
    integer
    Description

    progress ของงาน หากงานยังไม่เริ่ม ค่านี้จะเป็น 0 เมื่องานเสร็จสมบูรณ์แล้ว ค่านี้จะกลายเป็น 100

  • Name
    preceding_tasks
    Type
    integer
    Description

    จำนวนงานที่อยู่ก่อนหน้า

  • Name
    created_at
    Type
    timestamp
    Description

    ไทม์สแตมป์ของเวลาที่สร้างงาน หน่วยเป็นมิลลิวินาที

  • Name
    started_at
    Type
    timestamp
    Description

    ไทม์สแตมป์ของเวลาที่งานเริ่มต้น หน่วยเป็นมิลลิวินาที หากงานยังไม่เริ่ม ค่านี้จะเป็น 0

  • Name
    finished_at
    Type
    timestamp
    Description

    ไทม์สแตมป์ของเวลาที่งานเสร็จสิ้น หน่วยเป็นมิลลิวินาที หากงานยังไม่เสร็จสิ้น ค่านี้จะเป็น 0

  • Name
    expires_at
    Type
    timestamp
    Description

    ไทม์สแตมป์ของเวลาที่ผลลัพธ์ของงานจะหมดอายุจากระบบ หน่วยเป็นมิลลิวินาที เป็น 0 หากงานยังไม่เสร็จสิ้น

  • Name
    task_error
    Type
    object
    Description

    ข้อมูลข้อผิดพลาดหากงานล้มเหลว คุณสมบัตินี้จะเป็น null หากงานไม่ได้ล้มเหลว ดู ข้อผิดพลาด สำหรับรายละเอียดเพิ่มเติม

    • Name
      message
      Type
      string
      Description

      ข้อความแสดงข้อผิดพลาดที่อธิบายว่าเกิดอะไรขึ้น

  • Name
    model_urls
    Type
    object
    Description

    URL สำหรับดาวน์โหลดโมเดล 3D ที่ซ่อมแล้ว เฉพาะฟิลด์ที่ตรงกับรูปแบบอินพุตเท่านั้นที่จะมีค่า; ฟิลด์รูปแบบอื่นๆ จะเป็นสตริงว่าง

    • Name
      glb
      Type
      string
      Description

      URL สำหรับดาวน์โหลด GLB ที่ซ่อมแล้ว จะมีค่าเมื่ออินพุตเป็น GLB หรือเมื่อใช้ input_task_id

    • Name
      gltf
      Type
      string
      Description

      URL สำหรับดาวน์โหลด GLTF ที่ซ่อมแล้ว จะมีค่าเมื่ออินพุตเป็นการอัปโหลด GLTF

    • Name
      fbx
      Type
      string
      Description

      URL สำหรับดาวน์โหลด FBX ที่ซ่อมแล้ว จะมีค่าเมื่ออินพุตเป็นการอัปโหลด FBX

    • Name
      obj
      Type
      string
      Description

      URL สำหรับดาวน์โหลด OBJ ที่ซ่อมแล้ว จะมีค่าเมื่ออินพุตเป็นการอัปโหลด OBJ

    • Name
      stl
      Type
      string
      Description

      URL สำหรับดาวน์โหลด STL ที่ซ่อมแล้ว จะมีค่าเมื่ออินพุตเป็นการอัปโหลด STL

    • Name
      usdz
      Type
      string
      Description

      สงวนไว้สำหรับเอาต์พุต USDZ จะเป็นสตริงว่างเสมอสำหรับงานซ่อมความสามารถในการพิมพ์

    • Name
      3mf
      Type
      string
      Description

      สงวนไว้สำหรับเอาต์พุต 3MF จะเป็นสตริงว่างเสมอสำหรับงานซ่อมความสามารถในการพิมพ์

    • Name
      mtl
      Type
      string
      Description

      สงวนไว้สำหรับเอาต์พุต MTL จะเป็นสตริงว่างเสมอสำหรับงานซ่อมความสามารถในการพิมพ์

  • Name
    thumbnail_url
    Type
    string
    Description

    URL ของภาพตัวอย่างที่เรนเดอร์จากโมเดลที่ซ่อมแล้ว

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    URL สำหรับดาวน์โหลดเวอร์ชันพื้นหลังโปร่งใส (RGBA) ของ thumbnail_url จะปรากฏเฉพาะเมื่อสร้างงานด้วย alpha_thumbnail: true และเรนเดอร์ภาพตัวอย่างโปร่งใสสำเร็จ มิฉะนั้นฟิลด์นี้จะถูกละไว้

  • Name
    texture_urls
    Type
    array
    Description

    เป็นอาร์เรย์ว่างเสมอ การซ่อมรักษาจีออเมทรีของอินพุตไว้เท่านั้น และไม่ได้เบค texture ใหม่

  • Name
    consumed_credits
    Type
    integer
    Description

    จำนวนเครดิตที่ใช้ไปสำหรับงานนี้ เป็น 10 เมื่องานไปถึงสถานะ SUCCEEDED คืนค่า 0 สำหรับงานที่ FAILED (เครดิตจะถูกคืนเมื่อล้มเหลว)

  • Name
    intended_print
    Type
    object
    Description

    เครื่องพิมพ์และขนาดที่ใช้ในการซ่อม ไม่ว่าจะส่งมาหรือนำกลับมาใช้จากงานวิเคราะห์ จะปรากฏตั้งแต่เริ่มต้นสำหรับการซ่อมความหนาผนัง (PENDING); ค่าที่ยังไม่ทราบจะเป็น 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

      ด้านที่ยาวที่สุดของการพิมพ์ในหน่วยมิลลิเมตร เมื่อกำหนดขนาดด้วยความสูง จะคำนวณจากสัดส่วนของโมเดล และจะเป็น null จนกว่าจะมีการวัดโมเดลแล้ว

    • Name
      wall_thickness_mm
      Type
      number
      Description

      ความหนาผนังขั้นต่ำสำหรับ printer_type ในหน่วยมิลลิเมตร

    • Name
      dimensions_mm
      Type
      array
      Description

      [กว้าง, ลึก, สูง] ของการพิมพ์ในหน่วยมิลลิเมตร ความสูงอาจแตกต่างจาก height_mm ไปเล็กน้อยเป็นเศษส่วนของมิลลิเมตร เป็น null จนกว่างานจะสำเร็จ และเป็น null เสมอสำหรับอินพุตที่ไม่ใช่ GLB

  • Name
    print_repair_report
    Type
    object
    Description

    สิ่งที่การซ่อมความหนาผนังได้ทำ จะปรากฏเมื่อการซ่อมความหนาผนังสำเร็จแล้ว

    • Name
      route
      Type
      string
      Description

      การซ่อมแบบใดที่ทำงาน ค่าใดค่าหนึ่งจาก:

      • thin_wall: มากกว่า 5% ของพื้นผิวบางเกินไป จึงมีการทำให้ผนังหนาขึ้นด้วย (ดู applied)
      • topology: ผนังหนาเพียงพอแล้ว; มีเพียงการซ่อม topology ที่ทำงาน
      • topology_unmeasured: ไม่สามารถวัดผนังได้; มีเพียงการซ่อม 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

      สัดส่วนของพื้นผิวของอินพุต ตั้งแต่ 0 ถึง 1 ที่บางกว่า intended_print.wall_thickness_mm จะถูกละไว้หากไม่สามารถวัดอินพุตได้

    • Name
      thin_area_ratio_after
      Type
      number
      Description

      สัดส่วนเดียวกัน วัดจากโมเดลที่ซ่อมแล้ว จะถูกละไว้หากไม่สามารถวัดได้; งานยังคงสำเร็จ

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=***",
    "gltf": "",
    "fbx": "",
    "obj": "",
    "stl": "",
    "usdz": "",
    "3mf": "",
    "mtl": ""
  },
  "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=***",
    "gltf": "",
    "fbx": "",
    "obj": "",
    "stl": "",
    "usdz": "",
    "3mf": "",
    "mtl": ""
  },
  "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
  }
}