Multi-Color Print API
Chuyển đổi mô hình 3D thành tệp 3MF in nhiều màu để in 3D. Chọn bảng màu lên đến 16 màu và một cấu hình phần mềm cắt lớp dành cho hãng máy in của bạn.
Tạo một tác vụ In nhiều màu
Tạo một tác vụ In nhiều màu, chuyển đổi một mô hình 3D thành một file 3MF nhiều màu để in 3D. Tác vụ chạy ở chế độ nền. Để biết thời gian một tác vụ thường mất bao lâu, xem Thời gian xử lý.
Request
# Convert a 3D model to a multi-color 3MF with a Creality slicer preset
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,
"printer_brand": "creality"
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Tham số
- Name
- input_task_id
- Type
- string
- Bắt buộc
- Description
Bắt buộc trừ khi bạn gửi
model_url. ID của tác vụ có mô hình bạn muốn in, ví dụ một tác vụ Ảnh sang 3D, Nhiều ảnh sang 3D, Văn bản sang 3D, Remesh, hoặc Tạo lại texture. Tác vụ đó phải là tác vụ bạn đã tạo bằng API, và có trạng tháiSUCCEEDED.In nhiều màu đọc file GLB của tác vụ, file này có thể có tối đa 8.000.000 mặt. Một mô hình có nhiều mặt hơn sẽ trả về
400. Trong trường hợp đó, hãy chạy một tác vụ Remesh trên mô hình trước, rồi gửi ID của tác vụ Remesh thay vào đó.
- Name
- model_url
- Type
- string
- Bắt buộc
- Description
Bắt buộc trừ khi bạn gửi
input_task_id. Mô hình cần in, dưới dạng một URL công khai hoặc một Data URI. Nếu bạn gửi cả hai, Meshy sẽ dùnginput_task_id.Một URL
httphoặchttpsphải trỏ đến một file.glbhoặc.fbxcó dung lượng tối đa 400 MB. Một Data URI phải chứa một file GLB dạng base64 có dung lượng tối đa 100 MB. Hãy dùngdata:model/gltf-binary;base64,. Gửi file.fbxdưới dạng URLhttphoặchttps.Một file trên 100 MB cũng phải tuân theo các quy tắc sau:
- Có thể có tối đa 8.000.000 mặt. Meshy tính mặt theo tam giác, nên một mặt tứ giác được tính là 2, và một lưới được vẽ nhiều lần được tính một lần cho mỗi bản sao.
- Một file FBX phải là FBX nhị phân phiên bản 7.1 trở lên.
- Một file GLB không được dùng nén Draco.
- 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, từ
1đến16. Để dùng giá trị mặc định, hãy bỏ qua tham số này thay vì gửi0.
- Name
- style
- Type
- string
- mặc định realistic
- Description
Kiểu màu của file 3MF.
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, và tạo ra file lớn hơn.cartoon: làm phẳng màu thành các vùng đồng nhất, rõ ràng để tạo phong cách cách điệu, và tạo ra file nhỏ hơn.
Mô hình phải có màu.
realisticcần một texture màu nền duy nhất, với UV trên mọi phần của lưới, còncartooncũng chấp nhận màu đỉnh (vertex colors). Meshy sẽ từ chối một mô hình không có texture (màu trắng). Xemmodel_missing_texture.
- Name
- max_depth
- Type
- integer
- mặc định 4
- Description
Độ sâu phân chia (subdivision depth) mà Meshy dùng để lấy mẫu màu texture lên lưới, từ
3đến6.0tương đương với việc bỏ qua tham số này. Giá trị cao hơn sẽ nắm bắt chi tiết màu tinh tế hơn, và tạo ra file lớn hơn. Chỉ kiểurealisticsử dụng tham số này, còncartoonsẽ bỏ qua nó.
- Name
- printer_brand
- Type
- string
- mặc định bambu
- Description
Thương hiệu máy in mà Meshy ghi cấu hình phần mềm cắt lớp (slicer preset) tương ứng vào file 3MF. Sau đó file này mở được trong phần mềm cắt lớp của thương hiệu đó với một máy in, sợi in (filament), và hồ sơ quy trình (process profile) phù hợp. Cấu hình này dùng máy in mặc định của thương hiệu, với đầu phun 0.4 mm.
Các giá trị khả dụng:
bambuanycubiccrealityelegooflashforgeprusaqidisnapmakerankermake
Bất kỳ giá trị nào khác sẽ trả về
400.
Giá trị trả về
Trường result của phản hồi chứa ID của tác vụ In nhiều màu mới.
Các trường hợp thất bại
- Name
400 - Bad Request- Description
Yêu cầu không thể chạy. Thông báo lỗi sẽ cho biết vấn đề mà hệ thống phát hiện. Ví dụ:
- Thiếu tham số: Không có
model_urllẫninput_task_idđược gửi. - Định dạng mô hình không hợp lệ: File
model_urlkhông phải là file.glbhoặc.fbx. - URL không thể truy cập: Meshy không thể tải file
model_url. - File mô hình quá lớn: File
model_urlvượt quá 400 MB khi là URLhttphoặchttps, hoặc vượt quá 100 MB khi là Data URI. - Quá nhiều mặt: File
model_urlvượt quá 100 MB và có hơn 8.000.000 mặt. Hãy giảm số lượng mặt, rồi gửi lại file. - FBX dạng ASCII vượt quá 100 MB: File
model_urllà file FBX dạng ASCII vượt quá 100 MB. Hãy gửi dưới dạng FBX nhị phân hoặc GLB. - File mô hình không đọc được: File
model_urlvượt quá 100 MB, và Meshy không thể đọc header của nó. Ví dụ, đó là một file GLB nén Draco, hoặc một file FBX nhị phân cũ hơn phiên bản 7.1. - Header mô hình quá phức tạp: File
model_urlvượt quá 100 MB, và header của nó có quá nhiều lưới, nút, hoặc bản ghi để kiểm tra. Hãy giảm số lượng đối tượng trong file, rồi gửi lại. - Tác vụ đầu vào không hợp lệ:
input_task_idkhông phải là một tác vụ thành công. - Quá nhiều mặt trong tác vụ đầu vào: Mô hình của
input_task_idcó hơn 8.000.000 mặt. Hãy chạy một tác vụ Remesh trên mô hình đó, rồi gửi ID của tác vụ Remesh thay vào đó. - max_colors không hợp lệ:
max_colorslà số âm hoặc vượt quá16. - style không hợp lệ:
stylekhông phải làrealistichoặccartoon. - max_depth không hợp lệ:
max_depthnằm ngoài khoảng3đến6, và không phải là0. - printer_brand không hợp lệ:
printer_brandkhông phải là một trong các giá trị khả dụng. - Không có nguồn màu: Mô hình thiếu màu mà
styleyêu cầu.realisticcần một texture màu nền duy nhất, có UV, trên mọi phần của lưới.cartoonchấp nhận một texture màu nền hoặc màu đỉnh. Hãy tạo texture cho mô hình trước, hoặc dùngcartooncho mô hình có màu đỉnh. Meshy chỉ kiểm tra một file.fbxđược tải lên sau khi tác vụ chuẩn hóa nó, nên tác vụ sẽ thất bại với lỗimodel_missing_texturethay vào đó.
Hãy sửa yêu cầu, rồi gửi lại. Xem Lỗi.
- Thiếu tham số: Không có
- Name
401 - Unauthorized- Description
Khóa API bị thiếu hoặc không hợp lệ. Hãy kiểm tra header
Authorization.
- Name
402 - Payment Required- Description
Ví dụ:
- Không đủ tín dụng: Tài khoản không có đủ tín dụng cho tác vụ này, hoặc tài khoản đã đạt giới hạn tín dụng. Hãy kiểm tra số dư tín dụng của bạn, rồi thử lại.
- Gói miễn phí: Việc tạo tác vụ yêu cầu một gói trả phí. Hãy nâng cấp gói của bạn trong cài đặt đăng ký, rồi thử lại.
- Name
403 - Forbidden- Description
input_task_idlà một mô hình phù điêu (bas-relief), mà endpoint này không thể in. Thông báo làThis model type does not support this operation. Hãy gửi một mô hình khác.
- Name
404 - Not Found- Description
input_task_idkhông khớp với bất kỳ tác vụ nào của bạn. Hãy kiểm tra ID tác vụ, rồi gửi lại yêu cầu.
- Name
429 - Too Many Requests- Description
Bạn đã vượt quá giới hạn tốc độ. Hãy chờ, rồi thử lại. Xem Giới hạn tốc độ.
Lấy một tác vụ in Nhiều Màu
Trả về một tác vụ in Nhiều Màu theo ID của nó.
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,
"expires_at": 1700259201000,
"task_error": null,
"consumed_credits": 10
}
Tham số
- Name
- id
- Type
- path
- Description
ID tác vụ từ phản hồi tạo.
Giá trị trả về
Xóa một tác vụ In nhiều màu
Xóa vĩnh viễn một tác vụ In nhiều màu, bao gồm cả mô hình và dữ liệu của nó. Bạn không thể hoàn tác việc xóa.
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 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."
}
Tham số đường dẫn
- Name
- id
- Type
- path
- Description
ID của tác vụ cần xóa.
Trạng thái tác vụ
Xóa một tác vụ PENDING sẽ hoàn lại số tín dụng đã sử dụng khi bạn tạo tác vụ đó.
Một tác vụ IN_PROGRESS không thể bị xóa. Yêu cầu sẽ trả về 409 Conflict,
và tác vụ vẫn tiếp tục chạy. Meshy không hoàn tín dụng cho một tác vụ đã bắt đầu chạy,
vì vậy việc xóa nó sẽ khiến bạn mất cả tín dụng lẫn kết quả. Hãy đợi cho đến khi
tác vụ đạt trạng thái SUCCEEDED, FAILED, hoặc CANCELED, rồi mới xóa nó.
Xóa một tác vụ ở trạng thái cuối cùng (SUCCEEDED, FAILED, hoặc CANCELED)
sẽ không hoàn lại tín dụng của tác vụ đó.
Kết quả trả về
200 OK khi tác vụ được xóa, hoặc 409 Conflict khi tác vụ đang ở trạng thái
IN_PROGRESS.
Liệt kê tác vụ In nhiều màu
Trả về danh sách các tác vụ In nhiều màu của bạn.
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,
"expires_at": 1700259201000,
"task_error": null,
"consumed_credits": 10
}
]
Tham số
- Name
- page_num
- Type
- integer
- mặc định 1
- Description
Số trang cần trả về. Số trang bắt đầu từ
1.
- Name
- page_size
- Type
- integer
- mặc định 10
- Description
Số lượng tác vụ trên mỗi trang, tối đa
100.
- Name
- sort_by
- Type
- string
- Description
Thứ tự sắp xếp.
Các giá trị khả dụng:
+created_at: cũ nhất trước-created_at: mới nhất trước
Giá trị trả về
Một danh sách phân trang các đối tượng tác vụ In nhiều màu.
Stream một tác vụ Multi-Color Print
Stream các cập nhật của tác vụ Multi-Color Print dưới dạng Server-Sent Events (SSE).
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.
// These examples are shortened. Each event holds 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-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,
"expires_at": 1700259201000,
"task_error": null,
"consumed_credits": 10
}
Tham số
- Name
- id
- Type
- path
- Description
ID tác vụ từ phản hồi tạo tác vụ.
Giá trị trả về
Một luồng (stream) các đối tượng tác vụ Multi-Color Print dưới dạng Server-Sent Events.
Mỗi sự kiện chứa toàn bộ đối tượng tác vụ, theo cùng định dạng mà endpoint Get trả về. Trong khi tác vụ đang ở trạng thái PENDING hoặc IN_PROGRESS, các trường kết quả của nó chưa có giá trị.
Đối tượng tác vụ In nhiều màu (Multi-Color Print task)
Một đối tượng tác vụ In nhiều màu mô tả một lần chuyển đổi mô hình 3D sang tệp 3MF in nhiều màu. Nó chứa trạng thái, progress, và tệp 3MF khi tác vụ thành công.
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,
"expires_at": 1700259201000,
"task_error": null,
"consumed_credits": 10
}
- Name
- id
- Type
- string
- Description
ID của tác vụ. Hãy coi đây là một chuỗi không minh bạch (opaque string), và đừng phụ thuộc vào định dạng của nó.
- Name
- type
- Type
- string
- Description
Loại tác vụ, luôn là
print-multi-color.
- Name
- model_urls
- Type
- object
- Description
URL tải xuống cho mô hình đã in, mỗi URL ứng với một định dạng tệp. Một định dạng mà tác vụ không tạo ra sẽ không có khóa tương ứng, thay vì có một chuỗi rỗng.
- Name
3mf- Type
- string
- Description
Tệp 3MF in nhiều màu.
- Name
- progress
- Type
- integer
- Description
Tác vụ đã hoàn thành bao nhiêu, tính theo phần trăm. Giá trị là
0cho đến khi tác vụ bắt đầu và100khi tác vụ thành công.
- Name
- status
- Type
- string
- Description
Trạng thái của tác vụ, là một trong các giá trị
PENDING,IN_PROGRESS,SUCCEEDED,FAILED, hoặcCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Số lượng tác vụ đứng trước tác vụ này trong hàng đợi. Giá trị này chỉ có ý nghĩa khi tác vụ đang ở trạng thái
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Thời điểm tác vụ được tạo, tính bằng mili-giây Unix.
- Name
- started_at
- Type
- timestamp
- Description
Thời điểm tác vụ bắt đầu, tính bằng mili-giây Unix. Giá trị là
0cho đến khi tác vụ bắt đầu.
- Name
- finished_at
- Type
- timestamp
- Description
Thời điểm tác vụ kết thúc, tính bằng mili-giây Unix. Giá trị là
0cho đến khi tác vụ kết thúc.
- Name
- expires_at
- Type
- timestamp
- Description
Thời điểm kết quả của tác vụ hết hạn, tính bằng mili-giây Unix. Giá trị là
0cho đến khi tác vụ kết thúc.
- Name
- task_error
- Type
- object
- Description
Chi tiết lỗi khi tác vụ thất bại. Xem Lỗi.
- Name
- consumed_credits
- Type
- integer
- Description
Số tín dụng mà tác vụ đã sử dụng. Có mặt khi trạng thái là
PENDING,IN_PROGRESS, hoặcSUCCEEDED. Giá trị là0đối với tác vụFAILED, vì Meshy sẽ hoàn lại tín dụng khi tác vụ thất bại.