Multi-Color Print API
Конвертувати 3D-модель у файл 3MF з багатьма кольорами для 3D-друку. Виберіть палітру до 16 кольорів та пресет слайсера для вашого бренду принтера.
Створення задачі багатоколірного друку
Створює задачу багатоколірного друку, яка конвертує 3D-модель у багатоколірний файл 3MF для 3D-друку. Задача виконується у фоновому режимі. Про типову тривалість виконання задачі див. Час обробки.
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"
}
Параметри
- Name
- input_task_id
- Type
- string
- Обов'язковий
- Description
Обов'язково, якщо ви не надсилаєте
model_url. ID задачі, модель якої ви хочете надрукувати, наприклад задачі Зображення у 3D, Мульти-зображення у 3D, Текст у 3D, Ремеш або Ретекстурування. Задача має бути однією зі створених вами через API та мати статусSUCCEEDED.Багатоколірний друк зчитує файл GLB задачі, який може мати щонайбільше 8 000 000 граней. Модель з більшою кількістю граней поверне
400. У такому разі спочатку запустіть для неї задачу Ремеш, а потім надішліть ID задачі Ремешу замість цього.
- Name
- model_url
- Type
- string
- Обов'язковий
- Description
Обов'язково, якщо ви не надсилаєте
input_task_id. Модель для друку, у вигляді публічної URL-адреси або data URI. Якщо ви надішлете обидва, Meshy використаєinput_task_id.URL-адреса
httpабоhttpsповинна вказувати на файл.glbабо.fbxрозміром щонайбільше 400 МБ. Data URI повинен містити файл GLB у base64 розміром щонайбільше 100 МБ. Використовуйтеdata:model/gltf-binary;base64,. Файл.fbxнадсилайте як URL-адресуhttpабоhttps.Файл понад 100 МБ також повинен відповідати таким правилам:
- Він може мати щонайбільше 8 000 000 граней. Meshy рахує грані як трикутники, тож чотирикутник рахується як 2, а сітка, намальована кілька разів, рахується один раз за кожну копію.
- Файл FBX повинен бути у бінарному форматі FBX 7.1 або новішому.
- Файл GLB не повинен використовувати стиснення Draco.
- Name
- max_colors
- Type
- integer
- за замовчуванням 4
- Description
Максимальна кількість кольорів у вихідній палітрі, від
1до16. Щоб використати значення за замовчуванням, не надсилайте цей параметр, а не надсилайте0.
- Name
- style
- Type
- string
- за замовчуванням realistic
- Description
Стиль кольору файлу 3MF.
Доступні значення:
realistic: вибирає кольори безпосередньо з текстури моделі для детальної, фотореалістичної якості, і створює більший файл.cartoon: спрощує кольори до чистих, однорідних ділянок для стилізованого вигляду, і створює менший файл.
Модель повинна мати колір.
realisticпотребує єдину базову кольорову текстуру з UV-розгорткою на кожній частині сітки, аcartoonтакож приймає кольори вершин. Meshy відхиляє нетекстуровану (білу) модель. Див.model_missing_texture.
- Name
- max_depth
- Type
- integer
- за замовчуванням 4
- Description
Глибина підрозділу, яку Meshy використовує для накладання кольорів текстури на сітку, від
3до6.0еквівалентно пропуску цього параметра. Вищі значення дозволяють захопити тонші деталі кольору та створюють більший файл. Цей параметр використовує лише стильrealistic, аcartoonйого ігнорує.
- Name
- printer_brand
- Type
- string
- за замовчуванням bambu
- Description
Бренд принтера, для чийого пресету слайсера Meshy записує дані у файл 3MF. Потім файл відкривається у слайсері цього бренду з відповідним принтером, філаментом та профілем процесу. Пресет використовує принтер бренду за замовчуванням із соплом 0,4 мм.
Доступні значення:
bambuanycubiccrealityelegooflashforgeprusaqidisnapmakerankermake
Будь-яке інше значення поверне
400.
Результат
Поле result у відповіді містить ID нової задачі багатоколірного друку.
Режими збою
- Name
400 - Bad Request- Description
Запит не може бути виконаний. Повідомлення про помилку вказує, яку проблему було знайдено. Наприклад:
- Відсутній параметр: не було надіслано ні
model_url, ніinput_task_id. - Недійсний формат моделі: файл
model_urlне є файлом.glbабо.fbx. - Недоступна URL-адреса: Meshy не може завантажити файл
model_url. - Файл моделі завеликий: файл
model_urlперевищує 400 МБ як URL-адресаhttpабоhttps, або перевищує 100 МБ як data URI. - Забагато граней: файл
model_urlперевищує 100 МБ і має понад 8 000 000 граней. Зменшіть кількість граней, а потім надішліть файл знову. - ASCII FBX понад 100 МБ: файл
model_urlє ASCII FBX понад 100 МБ. Надішліть його як бінарний FBX або GLB. - Нечитабельний файл моделі: файл
model_urlперевищує 100 МБ, і Meshy не може прочитати його заголовок. Наприклад, це GLB зі стисненням Draco, або бінарний FBX старіший за 7.1. - Заголовок моделі надто складний: файл
model_urlперевищує 100 МБ, і його заголовок має забагато сіток, вузлів або записів для перевірки. Зменшіть кількість об'єктів у файлі, а потім надішліть його знову. - Недійсна вхідна задача:
input_task_idне є успішною задачею. - Забагато граней у вхідній задачі: модель
input_task_idмає понад 8 000 000 граней. Запустіть для неї задачу Ремеш, а потім надішліть ID задачі Ремешу замість цього. - Недійсне max_colors:
max_colorsвід'ємне або перевищує16. - Недійсний style:
styleне єrealisticабоcartoon. - Недійсне max_depth:
max_depthпоза межами від3до6, і не є0. - Недійсний printer_brand:
printer_brandне є одним із доступних значень. - Відсутнє джерело кольору: моделі бракує кольору, необхідного для
style.realisticпотребує єдину базову кольорову текстуру з UV-розгорткою на кожній частині сітки.cartoonприймає базову кольорову текстуру або кольори вершин. Спершу текстуруйте модель, або використайтеcartoonдля моделі з кольорами вершин. Meshy перевіряє завантаження.fbxлише після того, як задача нормалізує його, тому задача завершується помилкоюmodel_missing_textureзамість цього.
Виправте запит, а потім надішліть його знову. Див. Помилки.
- Відсутній параметр: не було надіслано ні
- Name
401 - Unauthorized- Description
API-ключ відсутній або недійсний. Перевірте заголовок
Authorization.
- Name
402 - Payment Required- Description
Наприклад:
- Недостатньо кредитів: на обліковому записі недостатньо кредитів для цієї задачі, або обліковий запис досяг ліміту кредитів. Перевірте свій баланс кредитів, а потім спробуйте ще раз.
- Безкоштовний план: для створення задачі потрібен платний план. Оновіть свій план у налаштуваннях підписки, а потім спробуйте ще раз.
- Name
403 - Forbidden- Description
input_task_idє моделлю барельєфу, яку ця кінцева точка не може надрукувати. Повідомлення:This model type does not support this operation. Надішліть іншу модель.
- Name
404 - Not Found- Description
input_task_idне відповідає жодній з ваших задач. Перевірте ID задачі, а потім надішліть запит знову.
- Name
429 - Too Many Requests- Description
Ви перевищили обмеження частоти. Зачекайте, а потім спробуйте ще раз. Див. Обмеження частоти.
Отримати завдання на багатоколірний друк
Повертає завдання на багатоколірний друк за його ID.
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
}
Параметри
- Name
- id
- Type
- path
- Description
ID завдання з відповіді на створення.
Повертає
Видалення задачі багатоколірного друку
Остаточно видаляє задачу багатоколірного друку, включно з її моделями та даними. Скасувати видалення неможливо.
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."
}
Параметри шляху
- Name
- id
- Type
- path
- Description
ID задачі, яку потрібно видалити.
Статус задачі
Видалення задачі зі статусом PENDING повертає кредити, витрачені на її створення.
Задачу зі статусом IN_PROGRESS видалити неможливо. Запит поверне 409 Conflict,
а задача продовжить виконуватися. Meshy не повертає кредити за задачу, яка вже почала
виконуватися, тому її видалення коштувало б вам і кредитів, і результату. Дочекайтеся,
поки вона досягне статусу SUCCEEDED, FAILED або CANCELED, а потім видаліть її.
Видалення задачі в кінцевому статусі (SUCCEEDED, FAILED або CANCELED)
не повертає витрачені кредити.
Повертає
200 OK, коли задачу видалено, або 409 Conflict, коли задача має статус
IN_PROGRESS.
List Multi-Color Print tasks
Повертає список ваших завдань багатоколірного друку.
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
}
]
Параметри
- 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: спочатку найновіші
Повертає
Список об'єктів завдань багатоколірного друку з пагінацією.
Потокова передача задачі багатоколірного друку
Передає оновлення задачі багатоколірного друку у вигляді 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
}
Параметри
- Name
- id
- Type
- path
- Description
ID задачі з відповіді на створення.
Повертає
Потік об'єктів задачі багатоколірного друку у вигляді Server-Sent Events.
Кожна подія містить повний об'єкт задачі, у тому ж форматі, що повертає кінцева точка отримання. Поки задача має статус PENDING або IN_PROGRESS, її поля результату ще не мають значень.
Об'єкт завдання багатоколірного друку
Об'єкт завдання багатоколірного друку описує одне перетворення 3D-моделі у файл багатоколірного друку 3MF. Він містить статус, progress і файл 3MF, коли завдання виконано успішно.
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 завдання. Розглядайте його як непрозорий рядок і не покладайтеся на його формат.
- Name
- type
- Type
- string
- Description
Тип завдання, завжди
print-multi-color.
- Name
- model_urls
- Type
- object
- Description
URL-адреси для завантаження надрукованої моделі, по одній для кожного формату файлу. Якщо формат не було згенеровано завданням, ключ для нього відсутній, а не містить порожній рядок.
- Name
3mf- Type
- string
- Description
Файл багатоколірного друку 3MF.
- 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
Деталі помилки, якщо завдання завершилося невдало. Див. Помилки.
- Name
- consumed_credits
- Type
- integer
- Description
Кількість кредитів, використаних завданням. Присутнє, коли статус —
PENDING,IN_PROGRESSабоSUCCEEDED. Для завдання зі статусомFAILEDзначення дорівнює0, оскільки Meshy повертає кредити, якщо завдання завершується невдало.