API многоцветной печати
Конвертируйте 3D-модель в многоцветный файл 3MF для 3D-печати. Выберите палитру из до 16 цветов и пресет слайсера для вашего бренда принтера.
Создать задачу Multi-Color Print
Создаёт задачу Multi-Color Print, которая конвертирует 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.Multi-Color Print считывает файл 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 новой задачи Multi-Color Print.
Варианты сбоя
- 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
Идентификатор задачи, которую нужно удалить.
Статус задачи
Удаление задачи со статусом PENDING возвращает кредиты, потраченные при её создании.
Задачу со статусом IN_PROGRESS удалить нельзя. Запрос вернёт 409 Conflict,
а задача продолжит выполняться. Meshy не возвращает кредиты за задачу, которая уже началась,
поэтому её удаление обойдётся вам как в кредиты, так и в результат. Дождитесь, пока она
перейдёт в статус SUCCEEDED, FAILED или CANCELED, и только потом удаляйте её.
Удаление задачи в финальном статусе (SUCCEEDED, FAILED или CANCELED)
не возвращает кредиты.
Возвращает
200 OK, когда задача удалена, или 409 Conflict, когда задача имеет статус
IN_PROGRESS.
Список задач многоцветной печати
Возвращает список ваших задач многоцветной печати.
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
Ссылки для скачивания напечатанной модели, по одной на каждый формат файла. Для формата, который задача не сгенерировала, ключ отсутствует, а не содержит пустую строку.
- 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 возвращает кредиты, если задача завершилась неудачно.