Multi-Color Print API
Chuyển đổi mô hình 3D sang định dạng 3MF nhiều màu để in 3D, với bảng màu có thể tùy chỉnh lên đến 16 màu.
Tạo tác vụ In 3D Đa Màu
Endpoint này tạo một tác vụ in 3D đa màu mới. Tác vụ này chuyển đổi một mô hình 3D thành tệp 3MF đa màu phù hợp cho việc in 3D.
Tham số
Chỉ một trong hai tham số input_task_id hoặc model_url là bắt buộc. Nếu cả hai đều được cung cấp, input_task_id sẽ được ưu tiên.
- Name
- input_task_id
- Type
- string
- Bắt buộc
- Description
ID của một tác vụ đã thành công để sử dụng làm đầu vào. Các loại tác vụ được hỗ trợ: Ảnh sang 3D, Nhiều ảnh sang 3D, Văn bản sang 3D, Remesh, và Tạo lại texture. Tác vụ phải có trạng thái
SUCCEEDED.
- Name
- model_url
- Type
- string
- Bắt buộc
- Description
URL công khai có thể truy cập được hoặc Data URI của một mô hình 3D. Chúng tôi hiện hỗ trợ định dạng
.glbvà.fbx.
- Name
- max_colors
- Type
- integer
- mặc định 4
- Description
Số lượng màu tối đa trong bảng màu đầu ra.
Phạm vi hợp lệ:
1đến16.
- Name
- style
- Type
- string
- mặc định realistic
- Description
Kiểu màu sắc trực quan của tệp 3MF được tạo ra.
Các giá trị khả dụng:
realistic: Lấy mẫu màu trực tiếp từ texture của mô hình để có chi tiết tinh tế, chân thực như ảnh chụp. Tạo ra tệp lớn hơn.cartoon: Làm phẳng màu sắc thành các vùng đồng nhất, gọn gàng để tạo phong cách cách điệu. Tạo ra tệp nhỏ hơn.
Đầu vào phải mang theo màu sắc:
realisticyêu cầu một texture màu nền duy nhất với tọa độ UV trên mỗi phần lưới;cartooncũng chấp nhận màu theo từng đỉnh (vertex). Các mô hình không có texture (màu trắng) sẽ bị từ chối — xemmodel_missing_texture.
Kết quả trả về
Thuộc tính result của phản hồi chứa id của tác vụ in 3D vừa được tạo.
Các chế độ Lỗi
- Name
400 - Bad Request- Description
Yêu cầu không được chấp nhận. Các nguyên nhân phổ biến:
- Thiếu tham số: Phải cung cấp
model_urlhoặcinput_task_id. - Định dạng mô hình không hợp lệ:
model_urltrỏ đến một tệp có phần mở rộng không được hỗ trợ (chỉ hỗ trợ.glbvà.fbx). - URL không thể truy cập: Không thể tải xuống
model_url. - Tác vụ đầu vào không hợp lệ:
input_task_idphải tham chiếu đến một tác vụ thành công. - max_colors không hợp lệ: Giá trị phải nằm trong khoảng từ 1 đến 16.
- style không hợp lệ: Giá trị phải là
realistichoặccartoon. - Không có nguồn màu: Mô hình đầu vào không có texture màu nền (
realisticcần một texture duy nhất, có UV, trên mỗi phần lưới) và không có màu theo đỉnh (cartoonchấp nhận cả hai). Hãy tạo texture cho mô hình trước, hoặc sử dụngcartooncho các mô hình có màu theo đỉnh. Các tệp.fbxđược tải lên sẽ được kiểm tra sau khi tác vụ chuẩn hóa chúng và sẽ thất bại với lỗimodel_missing_texturethay thế.
- Thiếu tham số: Phải cung cấp
- Name
401 - Unauthorized- Description
Xác thực thất bại. Vui lòng kiểm tra khóa API của bạn.
- Name
402 - Payment Required- Description
Không đủ tín dụng để thực hiện tác vụ này.
- Name
429 - Too Many Requests- Description
Bạn đã vượt quá giới hạn tốc độ.
Request
# Convert a 3D model to multi-color 3MF for printing
curl https://api.meshy.ai/openapi/v1/print/multi-color \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"max_colors": 8
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Truy xuất Tác vụ In 3D Đa Màu
Endpoint này truy xuất một tác vụ in 3D đa màu theo ID của nó.
Tham số
- Name
- id
- Type
- path
- Description
ID của tác vụ in 3D cần truy xuất.
Kết quả trả về
Đối tượng Tác vụ In 3D.
Request
curl https://api.meshy.ai/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-multi-color",
"model_urls": {
"3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 10
}
Xóa một Tác vụ In 3D Đa Màu
Endpoint này xóa vĩnh viễn một tác vụ in 3D đa màu, bao gồm tất cả các mô hình và dữ liệu liên quan. Hành động này không thể hoàn tác.
Tham số đường dẫn
- Name
- id
- Type
- path
- Description
ID của tác vụ in 3D đa màu cần xóa.
Trạng thái tác vụ
Một tác vụ vẫn đang ở trạng thái PENDING sẽ được xóa và số tín dụng đã
tiêu tốn tại thời điểm tạo sẽ được hoàn lại.
Một tác vụ đã ở trạng thái IN_PROGRESS thì không thể xóa: yêu cầu sẽ bị
từ chối với mã 409 Conflict và tác vụ vẫn tiếp tục chạy. Tín dụng cho một
tác vụ mà worker đã bắt đầu xử lý sẽ không được hoàn lại, vì vậy việc xóa
nó giữa chừng sẽ khiến bạn mất cả tín dụng lẫn kết quả. Hãy đợi cho đến khi
nó đạt trạng thái SUCCEEDED, FAILED hoặc CANCELED, rồi mới xóa.
Một tác vụ ở trạng thái cuối cùng (SUCCEEDED, FAILED hoặc CANCELED)
sẽ được xóa mà không được hoàn tín dụng.
Giá trị trả về
Trả về 200 OK khi thành công, hoặc 409 Conflict khi tác vụ đang ở
trạng thái IN_PROGRESS.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/multi-color/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."
}
Lấy danh sách tác vụ in 3D đa màu
Endpoint này cho phép bạn lấy danh sách các tác vụ in 3D đa màu.
Tham số
Thuộc tính tùy chọn
- Name
- page_num
- Type
- integer
- Description
Số trang dùng cho phân trang. Bắt đầu và mặc định là
1.
- Name
- page_size
- Type
- integer
- Description
Giới hạn số lượng mục trên mỗi trang. Mặc định là
10mục. Tối đa cho phép là100mục.
- Name
- sort_by
- Type
- string
- Description
Trường dùng để sắp xếp. Các giá trị khả dụng:
+created_at: Sắp xếp theo thời gian tạo tăng dần.-created_at: Sắp xếp theo thời gian tạo giảm dần.
Kết quả trả về
Trả về danh sách phân trang của Đối tượng tác vụ in 3D.
Request
curl https://api.meshy.ai/openapi/v1/print/multi-color?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-multi-color",
"model_urls": {
"3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 10
}
]
Stream a Multi-Color 3D Print Task
Endpoint này truyền trực tuyến các cập nhật theo thời gian thực cho một tác vụ in 3D nhiều màu bằng Server-Sent Events (SSE).
Tham số
- Name
- id
- Type
- path
- Description
Định danh duy nhất của tác vụ in 3D nhiều màu cần truyền trực tuyến.
Kết quả trả về
Trả về một luồng The 3D Print Task Objects dưới dạng Server-Sent Events.
Đối với các tác vụ ở trạng thái PENDING hoặc IN_PROGRESS, luồng phản hồi sẽ chỉ bao gồm các trường progress và status cần thiết.
Request
curl -N https://api.meshy.ai/openapi/v1/print/multi-color/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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"type": "print-multi-color",
"model_urls": {
"3mf": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.3mf?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 10
}
Đối tượng Tác vụ In 3D
- Name
- id
- Type
- string
- Description
Định danh duy nhất cho tác vụ. Mặc dù chúng tôi sử dụng UUID có thể sắp xếp theo k (k-sortable UUID) làm chi tiết triển khai cho id tác vụ, bạn không nên đưa ra bất kỳ giả định nào về định dạng của id.
- Name
- type
- Type
- string
- Description
Loại của tác vụ In 3D. Giá trị là
print-multi-color.
- Name
- model_urls
- Type
- object
- Description
URL có thể tải xuống cho tệp mô hình 3D được tạo bởi Meshy. Thuộc tính cho một định dạng sẽ bị bỏ qua nếu định dạng đó không được tạo ra, thay vì trả về một chuỗi rỗng.
- Name
3mf- Type
- string
- Description
URL có thể tải xuống cho tệp 3MF nhiều màu.
- Name
- progress
- Type
- integer
- Description
Tiến độ của tác vụ. Nếu tác vụ chưa bắt đầu, thuộc tính này sẽ là
0. Khi tác vụ đã thành công, giá trị này sẽ trở thành100.
- Name
- status
- Type
- string
- Description
Trạng thái của tác vụ. Các giá trị có thể là một trong các giá trị
PENDING,IN_PROGRESS,SUCCEEDED,FAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Số lượng tác vụ đứng trước.
Giá trị của trường này chỉ có ý nghĩa khi trạng thái tác vụ là
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Dấu thời gian khi tác vụ được tạo, tính bằng mili-giây.
- Name
- started_at
- Type
- timestamp
- Description
Dấu thời gian khi tác vụ được bắt đầu, tính bằng mili-giây. Nếu tác vụ chưa bắt đầu, thuộc tính này sẽ là
0.
- Name
- finished_at
- Type
- timestamp
- Description
Dấu thời gian khi tác vụ hoàn thành, tính bằng mili-giây. Nếu tác vụ chưa hoàn thành, thuộc tính này sẽ là
0.
- Name
- task_error
- Type
- object
- Description
Chi tiết lỗi cho các tác vụ thất bại. Xem Lỗi để biết toàn bộ tham chiếu đối tượng
task_error.
- Name
- consumed_credits
- Type
- integer
- Description
Số lượng tín dụng đã tiêu thụ bởi tác vụ này. Xuất hiện khi trạng thái tác vụ là
PENDING,IN_PROGRESS, hoặcSUCCEEDED. Trả về0đối với các tác vụFAILED(tín dụng được hoàn lại khi thất bại).
The 3D Print Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-multi-color",
"model_urls": {
"3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 10
}