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

Auto Split API

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


POST/openapi/v1/print/split

สร้างงาน Auto Split

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

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

Request

POST
/openapi/v1/print/split
# Simple request: let Meshy choose the cuts
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
  }'

# Advanced request: name the parts, keep the texture, add connectors, export glb and obj
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "mode": "by_parts",
    "prompt": "split into the figure and the base",
    "target_formats": ["glb", "obj"],
    "layout": "on_plate",
    "keep_texture": true,
    "connectors": true,
    "connector_type": "cylinder",
    "connector_size": 0.4
  }'

Response

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

พารามิเตอร์

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

    ID ของงานที่ต้องการแบ่งโมเดล งานนั้นต้องมีสถานะ SUCCEEDED ประเภทงานต่อไปนี้ใช้ได้:

    โมเดลต้องถูกสร้างด้วย Meshy 6 หรือ Meshy 7 นั่นคือ ตั้งค่า ai_model เป็น meshy-6-lite, meshy-6, meshy-7, meshy-7.1 หรือ latest โมเดล Smart Topology (meshy-t2 และ meshy-t2.5) ไม่รองรับ สำหรับงาน refine, รีเท็กซ์เจอร์, รีเมช, แปลง หรือปรับขนาด กฎนี้ใช้กับโมเดลที่งานนั้นเริ่มต้นจาก งานรีเท็กซ์เจอร์, รีเมช, แปลง หรือปรับขนาดที่สร้างจากโมเดลที่อัปโหลดจะคืนค่า 400

    โมเดลสามารถมีได้สูงสุด 8,000,000 หน้า โมเดลที่มีหน้ามากกว่านี้จะคืนค่า 400 ในกรณีนั้น ให้รันงานรีเมชกับโมเดลนั้นก่อน แล้วส่ง ID ของงานรีเมชแทน

    คุณสามารถแบ่งโมเดลที่มีเท็กซ์เจอร์ได้ หากต้องการให้ชิ้นส่วนคงเท็กซ์เจอร์ไว้ ให้ส่ง keep_texture: true

  • Name
    mode
    Type
    string
    ค่าเริ่มต้น auto
    Description

    วิธีแบ่งโมเดลออกเป็นชิ้นส่วน

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

    • auto: Meshy เลือกตำแหน่งตัดเองและละเลย prompt prompt ที่ยาวเกิน 600 ตัวอักษรยังคืนค่า 400 อยู่ดี
    • by_parts: Meshy ตัดตามโครงสร้างชิ้นส่วนที่คุณระบุใน prompt เช่น ศีรษะ แขน และลำตัว
    • by_color: Meshy ตัดตามพื้นที่สีที่คุณระบุใน prompt Meshy จะหาพื้นที่เหล่านี้จากภาพต้นฉบับ ไม่ใช่จากเท็กซ์เจอร์ของโมเดลอินพุต อินพุตต้องถูกสร้างจากภาพที่อัปโหลด ด้วย รูปภาพเป็น 3D หรือ หลายรูปเป็น 3D อินพุตแบบอื่นจะคืนค่า 400 สำหรับหลายรูปเป็น 3D Meshy จะใช้ภาพต้นฉบับภาพแรก
ใช้เฉพาะเมื่อ mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    จำเป็น
    Description

    ชิ้นส่วนที่ต้องการแบ่งโมเดลออกเป็น ใช้ภาษาใดก็ได้ ความยาวสูงสุด 600 ตัวอักษร ข้อความที่ยาวกว่านี้จะคืนค่า 400 แม้ mode จะเป็น auto ก็ตาม

    Meshy จะอ่านชื่อชิ้นส่วน 1 ถึง 10 ชื่อจาก prompt ดังนั้นให้ระบุชื่อชิ้นส่วนแทนการอธิบายโมเดล ตัวอย่างเช่น split into the figure and the base หรือ head, torso, left arm, right arm, legs คุณสามารถระบุชิ้นส่วนเดียวได้ สิ่งที่คุณไม่ได้ระบุจะกลายเป็นชิ้นส่วนเพิ่มอีกหนึ่งชิ้น ดังนั้น the head จะแบ่งโมเดลออกเป็นศีรษะและส่วนที่เหลือ เช่นเดียวกับในเว็บแอป

    prompt ที่ขอให้ไม่มีการแบ่ง หรือระบุชิ้นส่วนมากกว่า 10 ชิ้น จะคืนค่า 400 และ Meshy จะไม่คิดเครดิตสำหรับคำขอนี้

    หาก Meshy ไม่สามารถอ่านชื่อชิ้นส่วนใดๆ จาก prompt ได้ จะใช้ภาพอ้างอิงของโมเดลแทน โดยจะแบ่งตามชิ้นส่วนที่พบในภาพนั้น ตาม mode ที่คุณเลือก งานยังคงดำเนินการต่อไป Meshy จะคิดเครดิตสำหรับงานนี้ และงานนั้นจะมี prompt_ignored: true หากโมเดลไม่มีภาพอ้างอิง หรือ Meshy พบชิ้นส่วนน้อยกว่า 2 ชิ้นในภาพนั้น คำขอจะคืนค่า 400 และ Meshy จะไม่คิดเครดิตสำหรับคำขอนี้

  • Name
    target_formats
    Type
    array
    ค่าเริ่มต้น ["glb"]
    Description

    รูปแบบไฟล์ที่จะสร้าง Meshy จะสร้าง glb เสมอและคืนค่าใน model_urls พร้อมกับรูปแบบอื่นๆ ที่คุณระบุ

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

    • glb
    • obj
    • fbx
    • stl
    • usdz
    • blend
    • 3mf

    ทุกรูปแบบยกเว้น stl รองรับอ็อบเจกต์ในซีนและเก็บแต่ละชิ้นส่วนเป็นอ็อบเจกต์แยกกัน ไฟล์ STL ไม่สามารถเก็บอ็อบเจกต์แยกกันได้ ดังนั้น Meshy จะรวมชิ้นส่วนเข้าด้วยกันเป็นชิ้นเดียว โดยจัดเรียงตาม layout หากต้องการชิ้นส่วนที่สามารถเลือกแยกกันได้ในสไลเซอร์ ให้ขอ 3mf

    เมื่อตั้งค่า keep_texture: true รูปแบบเหล่านี้จะเก็บเท็กซ์เจอร์ไว้:

    • glb, fbx, usdz และ blend: เท็กซ์เจอร์อยู่ในไฟล์
    • obj: เท็กซ์เจอร์อยู่ในไฟล์แมททีเรียล ซึ่ง model_urls จะคืนค่าภายใต้ mtl
    • stl และ 3mf: ไฟล์เก็บเฉพาะจีออเมทรีเท่านั้น โดยไม่มีเท็กซ์เจอร์
  • Name
    layout
    Type
    string
    ค่าเริ่มต้น assembled
    Description

    วิธีที่ Meshy จัดเรียงชิ้นส่วน ในทุกรูปแบบไฟล์และในภาพย่อ

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

    • assembled: Meshy จะคงชิ้นส่วนไว้ในตำแหน่งเดิมตามโมเดลต้นฉบับ
    • on_plate: Meshy จะวางชิ้นส่วนให้แบนราบและกระจายออกบนแผ่นพิมพ์ พร้อมสำหรับการสไลซ์ นี่คือการจัดเรียงแบบเดียวกับมุมมอง On Plate ในเว็บแอป

    ทั้งสอง layout นี้ Meshy จะเอาชิ้นส่วนที่บางหรือมีลักษณะเป็นจุดที่เหลือจากการตัดออกก่อนการส่งออก เพื่อให้ทุกชิ้นส่วนที่คุณได้รับสามารถพิมพ์ได้ รูปแบบที่รองรับอ็อบเจกต์ในซีนจะเก็บหนึ่งอ็อบเจกต์ต่อหนึ่งชิ้นส่วน และ stl จะรวมชิ้นส่วนเข้าด้วยกันเป็นชิ้นเดียว

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

    ว่าจะคงเท็กซ์เจอร์ของโมเดลอินพุตไว้บนชิ้นส่วนหรือไม่ true จะให้ทุกชิ้นส่วนมีเท็กซ์เจอร์ของอินพุต และงานจะคืนค่าแมปใน texture_urls false จะให้แต่ละชิ้นส่วนมีสีจุดยอดแบบเรียบ

    เมื่อตั้งค่าเป็น true งานจะใช้เวลานานขึ้นประมาณสองเท่า และค่าใช้จ่ายเครดิตจะไม่เปลี่ยนแปลง อินพุตที่ไม่มีเท็กซ์เจอร์จะถูกแบ่งในลักษณะเดียวกับเมื่อตั้งค่าเป็น false หาก Meshy ไม่สามารถคงเท็กซ์เจอร์ไว้ได้ งานจะล้มเหลวพร้อมรหัสข้อผิดพลาด textured_split_refused ดูที่ ข้อผิดพลาด

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

    ว่าจะเพิ่มตัวเชื่อมแบบเดือยและเบ้า (mortise-and-tenon) ที่แต่ละจุดตัดหรือไม่ เพื่อให้ชิ้นส่วนที่พิมพ์ออกมาประกอบเข้ากันได้

ใช้เฉพาะเมื่อ connectors = true
  • Name
    connector_type
    Type
    string
    ค่าเริ่มต้น cube
    Description

    รูปทรงของตัวเชื่อมที่แต่ละพื้นผิวตัด cube หรือ cylinder

  • Name
    connector_size
    Type
    number
    ค่าเริ่มต้น 0.5
    Description

    ขนาดของตัวเชื่อม เมื่อเทียบกับพื้นผิวตัด ตั้งแต่ 0.1 ถึง 0.8 ค่านอกช่วงนี้จะคืนค่า 400 แม้ connectors จะเป็น false ก็ตาม

  • Name
    connector_height
    Type
    number
    ค่าเริ่มต้น 0.1
    Description

    ความสูงที่ตัวเชื่อมยื่นออกจากพื้นผิวตัด เมื่อเทียบกับพื้นผิวตัด ตั้งแต่ 0.1 ถึง 0.8 ค่านอกช่วงนี้จะคืนค่า 400 แม้ connectors จะเป็น false ก็ตาม

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

ฟิลด์ result ของการตอบกลับเก็บ ID ของงาน Auto Split ใหม่

รูปแบบความล้มเหลว

  • Name
    400 - Bad Request
    Description

    คำขอไม่สามารถทำงานได้ ข้อความแสดงข้อผิดพลาดจะบอกว่าพบปัญหาใด ตัวอย่างเช่น:

    • ไม่มี prompt: mode เป็น by_parts หรือ by_color และไม่มี prompt
    • prompt อธิบายว่าไม่มีการแบ่ง หรือมีชิ้นส่วนมากเกินไป: prompt ขอให้คงโมเดลไว้เป็นชิ้นเดียว หรือระบุชิ้นส่วนมากกว่า 10 ชิ้น by_parts และ by_color รองรับชิ้นส่วนที่ระบุชื่อได้ 1 ถึง 10 ชิ้น Meshy จะไม่คิดเครดิตสำหรับคำขอนี้
    • งานอินพุตไม่รองรับ: input_task_id ไม่ใช่งานที่สำเร็จของประเภทที่รองรับ ซึ่งสร้างด้วย Meshy 6 หรือ Meshy 7
    • ไม่มีภาพอ้างอิง: mode เป็น by_color และอินพุตไม่ได้ถูกสร้างจากภาพที่อัปโหลด
    • ตัวเชื่อมนอกช่วงที่กำหนด: connector_size หรือ connector_height อยู่นอกช่วง 0.1 ถึง 0.8

    แก้ไขคำขอ แล้วส่งใหม่อีกครั้ง ดูที่ ข้อผิดพลาด

  • Name
    401 - Unauthorized
    Description

    API คีย์หายไปหรือไม่ถูกต้อง ตรวจสอบเฮดเดอร์ Authorization

  • Name
    402 - Payment Required
    Description

    ตัวอย่างเช่น:

    • เครดิตไม่เพียงพอ: บัญชีมีเครดิตไม่เพียงพอสำหรับงานนี้ หรือบัญชีถึงขีดจำกัดเครดิตแล้ว ตรวจสอบยอดคงเหลือเครดิตของคุณ แล้วลองใหม่
    • แพ็กเกจฟรี: การสร้างงานต้องใช้แพ็กเกจแบบชำระเงิน อัปเกรดแพ็กเกจของคุณในการตั้งค่าการสมัครสมาชิก แล้วลองใหม่
  • Name
    403 - Forbidden
    Description

    หนึ่งในกรณีต่อไปนี้:

    • การตรวจสอบเนื้อหาบล็อก prompt ข้อความคือ explicit content หรือ prohibited content เปลี่ยน prompt แล้วลองใหม่
    • input_task_id เป็นโมเดลภาพนูนต่ำ (bas-relief) ซึ่งเอนด์พอยต์นี้ไม่สามารถแบ่งได้ ข้อความคือ This model type does not support this operation ส่งโมเดลอื่นแทน
  • Name
    404 - Not Found
    Description

    input_task_id ไม่มีอยู่หรือไม่ได้เป็นของบัญชีคุณ ตรวจสอบ ID และใช้ API คีย์จากบัญชีที่สร้างงานนั้น

  • Name
    429 - Too Many Requests
    Description

    คุณเกินการจำกัดอัตราแล้ว รอสักครู่แล้วลองใหม่ ดูที่ การจำกัดอัตรา

    คำขอ by_parts และ by_color ยังใช้ขีดจำกัดการอ่าน prompt ร่วมกันที่ 12 คำขอต่อนาทีต่อบัญชี

  • Name
    503 - Service Unavailable
    Description

    การแบ่งตาม prompt (by_parts และ by_color) ไม่พร้อมใช้งานชั่วคราว ลองใหม่ภายหลัง หรือส่ง mode: "auto" ซึ่งยังคงใช้งานได้ Meshy จะไม่คิดเครดิตสำหรับคำขอนี้


GET/openapi/v1/print/split/:id

ดึงข้อมูลงาน Auto Split

คืนค่างาน Auto Split ตามรหัส ID ของงานนั้น

Request

GET
/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl https://api.meshy.ai/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-split",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/texture_0_metallic.png?Expires=***",
      "normal": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/texture_0_normal.png?Expires=***",
      "roughness": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/texture_0_roughness.png?Expires=***"
    }
  ],
  "part_count": 4,
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000082000,
  "task_error": null,
  "consumed_credits": 10
}

พารามิเตอร์

  • Name
    id
    Type
    path
    Description

    รหัสงานจากการตอบกลับการสร้างงาน

ผลลัพธ์ที่ได้

ออบเจ็กต์งาน Auto Split


DELETE/openapi/v1/print/split/:id

ลบงาน Auto Split

ลบงาน Auto Split อย่างถาวร รวมถึงโมเดลและข้อมูลของงานนั้น คุณไม่สามารถยกเลิกการลบได้

Request

DELETE
/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/print/split/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."
}

พารามิเตอร์ของ Path

  • Name
    id
    Type
    path
    Description

    ID ของงานที่ต้องการลบ

สถานะของงาน

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

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

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

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

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


GET/openapi/v1/print/split

List Auto Split tasks

คืนค่ารายการงาน Auto Split ของคุณ

Request

GET
/openapi/v1/print/split
curl https://api.meshy.ai/openapi/v1/print/split?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "print-split",
    "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=***",
    "part_count": 4,
    "progress": 100,
    "status": "SUCCEEDED",
    "preceding_tasks": 0,
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000082000,
    "task_error": null,
    "consumed_credits": 10
  }
]

พารามิเตอร์

  • Name
    page_num
    Type
    integer
    Description

    หมายเลขหน้าที่ต้องการคืนค่า เริ่มต้นและมีค่าเริ่มต้นเป็น 1

  • Name
    page_size
    Type
    integer
    Description

    จำนวนงานต่อหน้า สูงสุด 100 ค่าเริ่มต้นคือ 10 Meshy จะถือว่าค่าที่มากกว่านี้เป็น 100

  • Name
    sort_by
    Type
    string
    Description

    ลำดับการเรียง

    ค่าที่สามารถใช้ได้:

    • +created_at: เก่าสุดก่อน
    • -created_at: ใหม่สุดก่อน

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

รายการแบบแบ่งหน้าของ อ็อบเจกต์งาน Auto Split


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

สตรีมความคืบหน้าของงาน Auto Split

สตรีมการอัปเดตของงาน Auto Split ในรูปแบบ Server-Sent Events (SSE)

Request

GET
/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/print/split/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 (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "type": "print-split",
  "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=***",
  "part_count": 4,
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000082000,
  "task_error": null,
  "consumed_credits": 10
}

พารามิเตอร์

  • Name
    id
    Type
    path
    Description

    รหัสงานจากคำตอบของคำขอสร้างงาน

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

สตรีมของ อ็อบเจกต์งาน Auto Split ในรูปแบบ Server-Sent Events

แต่ละอีเวนต์ message จะเก็บอ็อบเจกต์งานแบบเต็ม ซึ่งเป็นอ็อบเจกต์เดียวกับที่ ดึงข้อมูลงาน Auto Split ส่งกลับมา ซึ่งรวมถึง consumed_credits การประทับเวลาต่าง ๆ และ prompt_ignored ในขณะที่งานยังอยู่ในสถานะ PENDING หรือ IN_PROGRESS ฟิลด์ที่เปลี่ยนแปลงระหว่างแต่ละอีเวนต์คือ progress, status, started_at และ preceding_tasks ส่วน model_urls และ thumbnail_url จะได้รับค่า และ part_count จะปรากฏขึ้น เมื่องานมีสถานะเป็น SUCCEEDED

อีเวนต์ error จะเก็บเพียง status_code และ message เท่านั้น ดังนั้นควรตรวจสอบชื่ออีเวนต์ก่อนที่จะอ่านค่า status


The Auto Split task object

อ็อบเจกต์ของงาน Auto Split อธิบายการแบ่งโมเดล 3D หนึ่งครั้ง โดยเก็บสถานะ, progress และไฟล์ของแต่ละชิ้นส่วนเมื่องานสำเร็จ

อ็อบเจกต์นี้ไม่มีฟิลด์ prompt ของอ็อบเจกต์งานประเภทอื่น เช่น name, object_prompt และ texture_prompt และยังไม่มี model_url เดี่ยวด้วย โดย thumbnail_url, model_urls และไทม์สแตมป์ต่าง ๆ จะถูกเติมค่าเข้ามาขณะที่งานดำเนินไป ฟิลด์เหล่านี้จะปรากฏอยู่เสมอ และจะว่างเปล่าจนกว่าจะมีค่า

The Auto Split Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-split",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/texture_0_metallic.png?Expires=***",
      "normal": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/texture_0_normal.png?Expires=***",
      "roughness": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/texture_0_roughness.png?Expires=***"
    }
  ],
  "part_count": 4,
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000082000,
  "task_error": null,
  "consumed_credits": 10
}
  • Name
    id
    Type
    string
    Description

    รหัสของงาน ให้ถือว่าเป็นสตริงที่ไม่มีความหมายตายตัว และอย่าอ้างอิงรูปแบบของมัน

  • Name
    type
    Type
    string
    Description

    ประเภทของงาน ซึ่งจะเป็น print-split เสมอ

  • Name
    model_urls
    Type
    object
    Description

    URL สำหรับดาวน์โหลดโมเดลที่ถูกแบ่งแล้ว หนึ่ง URL ต่อหนึ่งฟอร์แมตที่คุณขอ ฟอร์แมตที่คุณไม่ได้ขอจะไม่มีคีย์ปรากฏ ฟอร์แมตที่รองรับอ็อบเจกต์ของซีนจะเก็บแต่ละชิ้นส่วนเป็นอ็อบเจกต์แยกกัน ส่วน stl จะรวมทุกชิ้นส่วนเข้าเป็นชิ้นเดียว

    • Name
      glb
      Type
      string
      Description

      ไฟล์ GLB

    • Name
      obj
      Type
      string
      Description

      ไฟล์ OBJ

    • Name
      mtl
      Type
      string
      Description

      ไฟล์ MTL จะปรากฏคู่กับไฟล์ OBJ เมื่อ keep_texture เป็น true และโมเดลนำเข้ามีเท็กซ์เจอร์

    • Name
      fbx
      Type
      string
      Description

      ไฟล์ FBX

    • Name
      stl
      Type
      string
      Description

      ไฟล์ STL ซึ่งรวมทุกชิ้นส่วนเข้าเป็นชิ้นเดียว หากต้องการชิ้นส่วนที่เลือกแยกกันได้ ให้ขอ 3mf

    • Name
      usdz
      Type
      string
      Description

      ไฟล์ USDZ

    • Name
      blend
      Type
      string
      Description

      ไฟล์ Blender

    • Name
      3mf
      Type
      string
      Description

      ไฟล์ 3MF

  • Name
    thumbnail_url
    Type
    string
    Description

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

  • Name
    texture_urls
    Type
    array
    Description

    แผนที่เท็กซ์เจอร์ของโมเดลที่ถูกแบ่งแล้ว เป็นอาร์เรย์ที่มีหนึ่งอ็อบเจกต์ ทุกชิ้นส่วนใช้แผนที่เหล่านี้ร่วมกัน จะปรากฏเฉพาะเมื่อ keep_texture เป็น true และโมเดลนำเข้ามีเท็กซ์เจอร์

    • Name
      base_color
      Type
      string
      Description

      URL สำหรับดาวน์โหลดแผนที่สีพื้นฐาน

    • Name
      metallic
      Type
      string
      Description

      URL สำหรับดาวน์โหลดแผนที่โลหะ (metallic) จะไม่ปรากฏเมื่อโมเดลนำเข้าไม่มีแผนที่โลหะ

    • Name
      normal
      Type
      string
      Description

      URL สำหรับดาวน์โหลดนอร์มัลแมป จะไม่ปรากฏเมื่อโมเดลนำเข้าไม่มีนอร์มัลแมป

    • Name
      roughness
      Type
      string
      Description

      URL สำหรับดาวน์โหลดแผนที่ความขรุขระ (roughness) จะไม่ปรากฏเมื่อโมเดลนำเข้าไม่มีแผนที่ความขรุขระ

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

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

  • Name
    prompt_ignored
    Type
    boolean
    Description

    ระบุว่า Meshy เพิกเฉยต่อ prompt หรือไม่ ค่านี้จะเป็น true เมื่อ prompt ของคำขอแบบ by_parts หรือ by_color ไม่ได้ระบุชื่อชิ้นส่วนใด ๆ ทำให้ Meshy แบ่งโมเดลโดยอัตโนมัติแทน ชื่อชิ้นส่วนในผลลัพธ์จะเป็นชื่อที่ Meshy ตั้งให้ ไม่ใช่ของคุณ ฟิลด์นี้จะปรากฏตั้งแต่สถานะ PENDING เป็นต้นไป Meshy จะไม่ใส่ฟิลด์นี้สำหรับงานแบบ auto และเมื่อใดก็ตามที่ทำตาม prompt แล้ว

  • Name
    part_count
    Type
    integer
    Description

    จำนวนชิ้นส่วนที่พิมพ์ได้ซึ่งการแบ่งนี้สร้างขึ้น ฟอร์แมตที่รองรับอ็อบเจกต์ของซีนจะมีหนึ่งอ็อบเจกต์ต่อหนึ่งชิ้นส่วน stl รวมทุกชิ้นส่วนเข้าเป็นชิ้นเดียว แต่ part_count ยังคงนับจำนวนชิ้นส่วนอยู่ ก่อนส่งออก Meshy จะลบส่วนที่ยุบตัวบางเกินกว่าจะเป็นชิ้นส่วนที่พิมพ์ได้ออกไป และไม่นับรวมส่วนเหล่านั้น

  • Name
    progress
    Type
    integer
    Description

    ความคืบหน้าของงาน เป็นเปอร์เซ็นต์ โดยจะเป็น 0 จนกว่างานจะเริ่ม และเป็น 100 เมื่องานสำเร็จ

  • Name
    status
    Type
    string
    Description

    สถานะของงาน หนึ่งใน PENDING, IN_PROGRESS, SUCCEEDED, FAILED หรือ CANCELED

  • 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

    รายละเอียดข้อผิดพลาดเมื่องานล้มเหลว ดูข้อผิดพลาด

    หากการตรวจสอบความปลอดภัยปฏิเสธโมเดลที่นำเข้า งานจะล้มเหลวโดยตั้งค่า task_error.type เป็น invalid_input และ task_error.code เป็น provider_content_refused โปรดส่งโมเดลอื่น ดูข้อผิดพลาด

    เมื่อตั้งค่า keep_texture: true หาก Meshy ไม่สามารถคงเท็กซ์เจอร์ไว้ได้ งานจะล้มเหลวโดยตั้งค่า task_error.code เป็น textured_split_refused ดูข้อผิดพลาด

  • Name
    consumed_credits
    Type
    integer
    Description

    จำนวนเครดิตที่งานนี้ใช้ไป ฟิลด์นี้จะปรากฏอยู่เสมอ โดยจะเป็น 10 หลังจาก Meshy ยอมรับงาน และเป็น 0 สำหรับงานที่ FAILED เนื่องจาก Meshy จะคืนเครดิตเมื่องานล้มเหลว การลบงานที่ยังอยู่ในสถานะ PENDING ก็จะได้รับการคืนเครดิตเช่นกัน