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

Repair Printability API

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


POST/openapi/v1/print/repair

สร้างงาน 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

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"
}

พารามิเตอร์

  • 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_type Meshy จะใช้ 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


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

รับงาน Repair Printability

ส่งคืนงาน Repair Printability ตาม ID ของงานนั้น

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": {
    "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 หลังจากที่งานสำเร็จแล้ว


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

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

ลบงานซ่อมความสามารถในการพิมพ์อย่างถาวร รวมถึงโมเดลที่ซ่อมแล้วด้วย คุณไม่สามารถยกเลิกการลบได้

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 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


GET/openapi/v1/print/repair

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

คืนค่ารายการงานซ่อมความสามารถในการพิมพ์ของคุณ

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=***"
    },
    "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: ใหม่สุดก่อน

ค่าที่คืนกลับ

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


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

สตรีมงาน Repair Printability

สตรีมการอัปเดตของงานซ่อมความสามารถในการพิมพ์ในรูปแบบ Server-Sent Events (SSE)

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 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% บางเกินไป จึงมีการเพิ่มความหนาผนังด้วย หากต้องการดูว่ามันเปลี่ยนแปลงเมชหรือไม่ ให้ตรวจสอบ applied
      • topology: ผนังหนาพอแล้ว จึงมีเพียงการซ่อม 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 ไม่สามารถวัดได้ งานยังคงสำเร็จอยู่