API Відновлення придатності до друку
Відновіть 3D-модель для придатності до друку FDM — виправте немноговидні ребра, вироджені грані, отвори та інші проблеми topology, щоб сітка була готова до друку.
Створення завдання Відновлення придатності до друку
Ця кінцева точка створює нове завдання відновлення придатності до друку. Завдання виконує відновлення topology для 3D-моделі та повертає водонепроникну версію, готову до друку.
Формат виводу відповідає формату вводу. Якщо ви надішлете .stl через model_url, поле model_urls.stl у відповіді міститиме відновлену сітку, а інші поля форматів будуть порожніми. Шлях input_task_id завжди зчитує GLB вихідного завдання, тому вихідний файл має формат .glb.
Параметри
Потрібен лише один із input_task_id або model_url. Якщо надано обидва, input_task_id має пріоритет.
Наявні текстури видаляються під час відновлення через зміни геометрії. Щоб додати текстури назад, використайте API Ретекстурування для відновленої моделі.
- Name
- input_task_id
- Type
- string
- Обов'язковий
- Description
ID успішного завдання, яким ви володієте. Підтримувані типи завдань: Зображення у 3D, Мульти-зображення у 3D, Текст у 3D, Ремеш і Ретекстурування. Завдання повинно мати статус
SUCCEEDEDі створити GLB-асет.
- Name
- model_url
- Type
- string
- Обов'язковий
- Description
URL 3D-моделі для відновлення. Підтримувані формати:
.glb,.stl,.obj. Максимальний розмір файлу: 100 MB. Потрібно використовуватиhttp,httpsабо URLdata:(URL даних обходять перевірки розширень).
- Name
- alpha_thumbnail
- Type
- boolean
- за замовчуванням false
- Description
Якщо встановлено
true, завдання додатково рендерить версію попереднього перегляду з прозорим фоном (RGBA) і повертає її якalpha_thumbnail_urlу відповіді GET. Наявне полеthumbnail_urlне змінюється.
Повертає
Властивість result у відповіді містить id щойно створеного завдання відновлення придатності до друку.
Режими помилок
- Name
400 - Bad Request- Description
Запит був неприйнятним. Поширені причини:
- Відсутній параметр: не було надано ні
input_task_id, ніmodel_url. - Недійсний UUID:
input_task_idне є дійсним UUID. - Недійсний URL моделі:
model_urlмає неправильний формат, використовує непідтримувану схему або має непідтримуване розширення файлу. - Файл моделі завеликий: тіло
model_urlперевищило 100 MB. - Завдання не успішне: завдання, на яке є посилання, усе ще очікує, перебуває в процесі виконання або завершилося помилкою.
- Відсутній GLB: завдання, на яке є посилання, не має GLB-асета для відновлення.
- Відсутній параметр: не було надано ні
- Name
401 - Unauthorized- Description
Автентифікація не вдалася. Перевірте свій API-ключ.
- Name
402 - Payment Required- Description
Поширені причини:
- Безкоштовний план: створення завдання потребує платного плану. Оновіть його на сторінці підписки.
- Недостатньо кредитів: досягнуто ліміту кредитів робочої області.
- Name
404 - Not Found- Description
Завдання, на яке є посилання, не існує або належить іншому користувачу.
- Name
429 - Too Many Requests- Description
Ви перевищили квоту завдань у черзі або обмеження частоти.
Request
# Repair an existing task
curl https://api.meshy.ai/openapi/v1/print/repair \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Or repair a model URL directly
curl https://api.meshy.ai/openapi/v1/print/repair \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/model.stl"
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Отримати завдання Відновлення придатності до друку
Ця кінцева точка отримує завдання відновлення придатності до друку за його ID.
Параметри
- Name
- id
- Type
- path
- Description
ID завдання відновлення придатності до друку, яке потрібно отримати.
Повертає
Об’єкт завдання Відновлення придатності до друку. Блок model_urls порожній, доки завдання не досягне SUCCEEDED. Заповнюється лише поле model_urls, що відповідає вхідному формату.
Request
curl https://api.meshy.ai/openapi/v1/print/repair/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-repair",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1715725401000,
"task_error": null,
"model_urls": {
"glb": "",
"fbx": "",
"obj": "",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***",
"usdz": "",
"3mf": "",
"mtl": ""
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10
}
Видалити завдання Відновлення придатності до друку
Ця кінцева точка назавжди видаляє завдання відновлення придатності до друку та його відновлений результат. Ця дія є незворотною.
Параметри шляху
- Name
- id
- Type
- path
- Description
ID завдання відновлення придатності до друку, яке потрібно видалити.
Повертає
Повертає 200 OK у разі успіху.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/repair/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 200 Ok on success.
Список завдань Відновлення придатності до друку
Ця кінцева точка дозволяє отримати список завдань відновлення придатності до друку.
Параметри
Необов’язкові атрибути
- Name
- page_num
- Type
- integer
- Description
Номер сторінки для пагінації. Починається з
1і за замовчуванням дорівнює1.
- Name
- page_size
- Type
- integer
- Description
Обмеження розміру сторінки. За замовчуванням
10елементів. Максимально дозволено50елементів.
- Name
- sort_by
- Type
- string
- Description
Поле для сортування. Доступні значення:
+created_at: Сортувати за часом створення в порядку зростання.-created_at: Сортувати за часом створення в порядку спадання.
Повертає
Повертає список із пагінацією об’єктів завдання Відновлення придатності до друку.
Request
curl https://api.meshy.ai/openapi/v1/print/repair?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-repair",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1715725401000,
"task_error": null,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "",
"obj": "",
"stl": "",
"usdz": "",
"3mf": "",
"mtl": ""
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10
}
]
Потоково передавати завдання Відновлення придатності до друку
Ця кінцева точка потоково передає оновлення в реальному часі для завдання відновлення придатності до друку за допомогою Server-Sent Events (SSE).
Параметри
- Name
- id
- Type
- path
- Description
Унікальний ідентифікатор завдання відновлення придатності до друку для потокової передачі.
Повертає
Повертає потік об’єктів завдання Відновлення придатності до друку як Server-Sent Events.
Для завдань PENDING або IN_PROGRESS потік відповіді міститиме лише необхідні поля progress і status. Блок model_urls надсилається лише після того, як завдання досягне SUCCEEDED.
Request
curl -N https://api.meshy.ai/openapi/v1/print/repair/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-repair",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1715725401000,
"task_error": null,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***",
"fbx": "",
"obj": "",
"stl": "",
"usdz": "",
"3mf": "",
"mtl": ""
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10
}
Об’єкт завдання Відновлення придатності до друку
- Name
- id
- Type
- string
- Description
Унікальний ідентифікатор завдання. Хоча ми використовуємо k-сортований UUID для ідентифікаторів завдань як деталь реалізації, вам не слід робити жодних припущень щодо формату id.
- Name
- type
- Type
- string
- Description
Тип завдання відновлення придатності до друку. Значення —
print-repair.
- Name
- status
- Type
- string
- Description
Статус завдання. Можливі значення: одне з
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- progress
- Type
- integer
- Description
Progress завдання. Якщо завдання ще не запущено, ця властивість буде
0. Щойно завдання буде успішно виконано, вона стане100.
- Name
- preceding_tasks
- Type
- integer
- Description
Кількість попередніх завдань.
Значення цього поля має сенс лише якщо статус завдання —
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Мітка часу створення завдання, у мілісекундах.
- Name
- started_at
- Type
- timestamp
- Description
Мітка часу запуску завдання, у мілісекундах. Якщо завдання ще не запущено, ця властивість буде
0.
- Name
- finished_at
- Type
- timestamp
- Description
Мітка часу завершення завдання, у мілісекундах. Якщо завдання ще не завершено, ця властивість буде
0.
- Name
- expires_at
- Type
- timestamp
- Description
Мітка часу, коли результат завдання буде видалено із системи, у мілісекундах.
0, якщо завдання ще не завершено.
- Name
- task_error
- Type
- object
- Description
Інформація про помилку, якщо завдання завершилося невдачею. Ця властивість дорівнює
null, якщо завдання не завершилося невдачею. Докладніше див. Помилки.- Name
message- Type
- string
- Description
Повідомлення про помилку, яке описує, що пішло не так.
- Name
- model_urls
- Type
- object
- Description
URL-адреси для завантаження відновленої 3D-моделі. Заповнюється лише поле, що відповідає вхідному формату; інші поля форматів є порожніми рядками.
- Name
glb- Type
- string
- Description
URL-адреса для завантаження відновленого GLB. Заповнюється, коли вхідними даними був GLB або коли використовувався
input_task_id.
- Name
fbx- Type
- string
- Description
Зарезервовано для виводу FBX. Завжди порожній рядок для завдань відновлення придатності до друку.
- Name
obj- Type
- string
- Description
URL-адреса для завантаження відновленого OBJ. Заповнюється, коли вхідними даними було завантаження OBJ.
- Name
stl- Type
- string
- Description
URL-адреса для завантаження відновленого STL. Заповнюється, коли вхідними даними було завантаження STL.
- Name
usdz- Type
- string
- Description
Зарезервовано для виводу USDZ. Завжди порожній рядок для завдань відновлення придатності до друку.
- Name
3mf- Type
- string
- Description
Зарезервовано для виводу 3MF. Завжди порожній рядок для завдань відновлення придатності до друку.
- Name
mtl- Type
- string
- Description
Зарезервовано для виводу MTL. Завжди порожній рядок для завдань відновлення придатності до друку.
- Name
- thumbnail_url
- Type
- string
- Description
URL-адреса зображення попереднього перегляду, відрендереного з відновленої моделі.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
URL-адреса для завантаження версії
thumbnail_urlз прозорим фоном (RGBA). Наявна лише коли завдання було створено зalpha_thumbnail: trueі прозорий попередній перегляд було успішно відрендерено; інакше це поле опускається.
- Name
- texture_urls
- Type
- array
- Description
Завжди порожній масив. Відновлення зберігає лише вхідну геометрію й не запікає мапи матеріалів повторно.
- Name
- consumed_credits
- Type
- integer
- Description
Кількість кредитів, спожитих цим завданням.
10після того, як завдання досяглоSUCCEEDED. Повертає0для завданьFAILED(кредити повертаються в разі невдачі).
The Repair Printability Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-repair",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1715725401000,
"task_error": null,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "",
"obj": "",
"stl": "",
"usdz": "",
"3mf": "",
"mtl": ""
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"texture_urls": [],
"consumed_credits": 10
}