API druku wielokolorowego
Konwertuj model 3D na wielokolorowy plik 3MF przeznaczony do druku 3D. Wybierz paletę do 16 kolorów oraz ustawienie wstępne slicera odpowiednie dla marki Twojej drukarki.
Utwórz zadanie druku wielokolorowego
Tworzy zadanie druku wielokolorowego, które konwertuje model 3D na wielokolorowy plik 3MF do druku 3D. Zadanie działa w tle. Informacje o tym, jak długo zwykle trwa zadanie, znajdziesz w Czasach przetwarzania.
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"
}
Parametry
- Name
- input_task_id
- Type
- string
- Wymagane
- Description
Wymagane, chyba że wyślesz
model_url. ID zadania, którego model chcesz wydrukować, na przykład zadania Obraz na 3D, Wiele obrazów na 3D, Tekst na 3D, Remesh lub Reteksturowanie. Zadanie musi być utworzone przez Ciebie za pomocą API i mieć statusSUCCEEDED.Druk wielokolorowy odczytuje plik GLB zadania, który może mieć co najwyżej 8 000 000 ścian. Model z większą liczbą ścian zwraca
400. W takim przypadku najpierw uruchom na nim zadanie Remesh i wyślij zamiast tego ID zadania Remesh.
- Name
- model_url
- Type
- string
- Wymagane
- Description
Wymagane, chyba że wyślesz
input_task_id. Model do wydrukowania, jako publiczny URL lub Data URI. Jeśli wyślesz oba, Meshy użyjeinput_task_id.Adres URL
httplubhttpsmusi wskazywać na plik.glblub.fbxo rozmiarze co najwyżej 400 MB. Data URI musi zawierać plik GLB zakodowany w base64 o rozmiarze co najwyżej 100 MB. Użyjdata:model/gltf-binary;base64,. Plik.fbxwyślij jako adres URLhttplubhttps.Plik powyżej 100 MB musi dodatkowo spełniać następujące zasady:
- Może mieć co najwyżej 8 000 000 ścian. Meshy liczy ściany jako trójkąty, więc czworokąt liczy się jako 2, a siatka narysowana więcej niż raz liczy się raz na każdą kopię.
- Plik FBX musi być binarnym FBX w wersji 7.1 lub nowszej.
- Plik GLB nie może używać kompresji Draco.
- Name
- max_colors
- Type
- integer
- domyślne 4
- Description
Maksymalna liczba kolorów w wynikowej palecie, od
1do16. Aby użyć wartości domyślnej, pomiń ten parametr zamiast wysyłać0.
- Name
- style
- Type
- string
- domyślne realistic
- Description
Styl kolorów pliku 3MF.
Dostępne wartości:
realistic: pobiera kolory bezpośrednio z tekstury modelu, dając drobne, fotorealistyczne detale, i tworzy większy plik.cartoon: spłaszcza kolory do czystych, jednolitych obszarów, dając stylizowany wygląd, i tworzy mniejszy plik.
Model musi mieć kolor.
realisticwymaga pojedynczej tekstury koloru bazowego, z UV-ami na każdej części siatki, acartoonakceptuje też kolory wierzchołków. Meshy odrzuca model bez tekstury (biały). Zobaczmodel_missing_texture.
- Name
- max_depth
- Type
- integer
- domyślne 4
- Description
Głębokość podziału, której Meshy używa do próbkowania kolorów tekstury na siatkę, od
3do6.0to to samo, co pominięcie parametru. Wyższe wartości wychwytują drobniejsze szczegóły kolorów i tworzą większy plik. Używa go tylko stylrealistic, acartoongo ignoruje.
- Name
- printer_brand
- Type
- string
- domyślne bambu
- Description
Marka drukarki, której profil slicera Meshy zapisuje w pliku 3MF. Plik otwiera się następnie w slicerze tej marki z dopasowanym profilem drukarki, filamentu i procesu. Profil używa domyślnej drukarki danej marki, z dyszą 0,4 mm.
Dostępne wartości:
bambuanycubiccrealityelegooflashforgeprusaqidisnapmakerankermake
Każda inna wartość zwraca
400.
Zwraca
Pole result odpowiedzi zawiera ID nowego zadania druku wielokolorowego.
Tryby niepowodzenia
- Name
400 - Bad Request- Description
Żądanie nie może zostać wykonane. Komunikat o błędzie wskazuje, jaki problem został wykryty. Na przykład:
- Brak parametru: Nie wysłano ani
model_url, aniinput_task_id. - Nieprawidłowy format modelu: Plik
model_urlnie jest plikiem.glbani.fbx. - Niedostępny URL: Meshy nie może pobrać pliku
model_url. - Plik modelu zbyt duży: Plik
model_urlprzekracza 400 MB z adresu URLhttplubhttps, albo przekracza 100 MB jako Data URI. - Zbyt dużo ścian: Plik
model_urlma ponad 100 MB i ponad 8 000 000 ścian. Zmniejsz liczbę ścian, a następnie wyślij plik ponownie. - ASCII FBX powyżej 100 MB: Plik
model_urlto ASCII FBX powyżej 100 MB. Wyślij go jako binarny FBX lub GLB. - Nieczytelny plik modelu: Plik
model_urlprzekracza 100 MB, a Meshy nie może odczytać jego nagłówka. Na przykład jest to GLB skompresowany Draco lub binarny FBX starszy niż 7.1. - Nagłówek modelu zbyt złożony: Plik
model_urlprzekracza 100 MB, a jego nagłówek zawiera zbyt wiele siatek, węzłów lub rekordów do sprawdzenia. Zmniejsz liczbę obiektów w pliku, a następnie wyślij go ponownie. - Nieprawidłowe zadanie wejściowe:
input_task_idnie jest zakończonym powodzeniem zadaniem. - Zbyt dużo ścian w zadaniu wejściowym: Model
input_task_idma ponad 8 000 000 ścian. Uruchom na nim zadanie Remesh, a następnie wyślij zamiast tego ID zadania Remesh. - Nieprawidłowe max_colors:
max_colorsjest ujemne lub większe niż16. - Nieprawidłowy style:
stylenie jestrealisticanicartoon. - Nieprawidłowe max_depth:
max_depthjest poza zakresem3do6i nie jest0. - Nieprawidłowe printer_brand:
printer_brandnie jest jedną z dostępnych wartości. - Brak źródła koloru: Modelowi brakuje koloru wymaganego przez
style.realisticwymaga pojedynczej tekstury koloru bazowego, z UV-ami, na każdej części siatki.cartoonakceptuje teksturę koloru bazowego lub kolory wierzchołków. Najpierw nałóż teksturę na model lub użyjcartoondla modelu z kolorami wierzchołków. Meshy sprawdza przesłany plik.fbxdopiero po tym, jak zadanie go znormalizuje, więc zadanie kończy się niepowodzeniem zmodel_missing_texture.
Popraw żądanie, a następnie wyślij je ponownie. Zobacz Błędy.
- Brak parametru: Nie wysłano ani
- Name
401 - Unauthorized- Description
Brak klucza API lub klucz API jest nieprawidłowy. Sprawdź nagłówek
Authorization.
- Name
402 - Payment Required- Description
Na przykład:
- Niewystarczające kredyty: Konto nie ma wystarczającej liczby kredytów na to zadanie lub konto osiągnęło limit kredytów. Sprawdź saldo kredytów, a następnie spróbuj ponownie.
- Plan darmowy: Utworzenie zadania wymaga płatnego planu. Uaktualnij swój plan w ustawieniach subskrypcji, a następnie spróbuj ponownie.
- Name
403 - Forbidden- Description
input_task_idto model płaskorzeźby, którego ten punkt końcowy nie może wydrukować. Komunikat toThis model type does not support this operation. Wyślij inny model.
- Name
404 - Not Found- Description
input_task_idnie pasuje do żadnego z Twoich zadań. Sprawdź ID zadania, a następnie wyślij żądanie ponownie.
- Name
429 - Too Many Requests- Description
Przekroczono limit szybkości. Poczekaj, a następnie spróbuj ponownie. Zobacz Limity szybkości.
Pobierz zadanie druku wielokolorowego
Zwraca zadanie druku wielokolorowego na podstawie jego 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
}
Parametry
- Name
- id
- Type
- path
- Description
ID zadania pochodzące z odpowiedzi tworzenia.
Zwraca
Usuń zadanie druku wielokolorowego
Trwale usuwa zadanie druku wielokolorowego, wraz z jego modelami i danymi. Nie można cofnąć usunięcia.
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."
}
Parametry ścieżki
- Name
- id
- Type
- path
- Description
ID zadania do usunięcia.
Status zadania
Usunięcie zadania o statusie PENDING zwraca kredyty wykorzystane przy jego utworzeniu.
Zadania o statusie IN_PROGRESS nie można usunąć. Żądanie zwraca 409 Conflict,
a zadanie nadal się wykonuje. Meshy nie zwraca kredytów za zadanie, które już się rozpoczęło,
więc usunięcie go kosztowałoby zarówno kredyty, jak i wynik. Poczekaj, aż
osiągnie status SUCCEEDED, FAILED lub CANCELED, a następnie je usuń.
Usunięcie zadania o statusie końcowym (SUCCEEDED, FAILED lub CANCELED)
nie powoduje zwrotu kredytów.
Zwraca
200 OK, gdy zadanie zostało usunięte, lub 409 Conflict, gdy zadanie ma status
IN_PROGRESS.
Lista zadań druku wielokolorowego
Zwraca listę Twoich zadań druku wielokolorowego.
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
}
]
Parametry
- Name
- page_num
- Type
- integer
- domyślne 1
- Description
Numer strony do zwrócenia. Numeracja stron zaczyna się od
1.
- Name
- page_size
- Type
- integer
- domyślne 10
- Description
Liczba zadań na stronę, maksymalnie
100.
- Name
- sort_by
- Type
- string
- Description
Kolejność sortowania.
Dostępne wartości:
+created_at: od najstarszych-created_at: od najnowszych
Zwraca
Stronicowaną listę obiektów zadań druku wielokolorowego.
Strumieniowanie zadania druku wielokolorowego
Strumieniuje aktualizacje zadania druku wielokolorowego jako zdarzenia wysyłane przez serwer (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
}
Parametry
- Name
- id
- Type
- path
- Description
Identyfikator zadania z odpowiedzi tworzenia.
Zwraca
Strumień obiektów zadania druku wielokolorowego jako zdarzenia wysyłane przez serwer.
Każde zdarzenie zawiera pełny obiekt zadania, w tym samym kształcie, jaki zwraca punkt końcowy Get. Gdy zadanie ma status PENDING lub IN_PROGRESS, jego pola wynikowe nie mają jeszcze wartości.
Obiekt zadania druku wielokolorowego
Obiekt zadania druku wielokolorowego opisuje pojedynczą konwersję modelu 3D na wielokolorowy plik 3MF. Zawiera status, progress oraz plik 3MF, gdy zadanie zakończy się powodzeniem.
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
Identyfikator zadania. Traktuj go jako nieprzezroczysty ciąg znaków i nie polegaj na jego formacie.
- Name
- type
- Type
- string
- Description
Typ zadania, zawsze
print-multi-color.
- Name
- model_urls
- Type
- object
- Description
Adresy URL do pobrania wydrukowanego modelu, po jednym dla każdego formatu pliku. Format, którego zadanie nie wygenerowało, nie posiada klucza, zamiast mieć pusty ciąg znaków.
- Name
3mf- Type
- string
- Description
Wielokolorowy plik 3MF.
- Name
- progress
- Type
- integer
- Description
Informacja o tym, jaka część zadania została ukończona, wyrażona w procentach. Wynosi
0, dopóki zadanie się nie rozpocznie, i100, gdy zakończy się powodzeniem.
- Name
- status
- Type
- string
- Description
Status zadania, jeden z:
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDlubCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Liczba zadań poprzedzających to zadanie w kolejce. Wartość ma znaczenie tylko wtedy, gdy zadanie ma status
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Czas utworzenia zadania, w milisekundach Unix.
- Name
- started_at
- Type
- timestamp
- Description
Czas rozpoczęcia zadania, w milisekundach Unix. Wynosi
0, dopóki zadanie się nie rozpocznie.
- Name
- finished_at
- Type
- timestamp
- Description
Czas zakończenia zadania, w milisekundach Unix. Wynosi
0, dopóki zadanie się nie zakończy.
- Name
- expires_at
- Type
- timestamp
- Description
Czas wygaśnięcia wyniku zadania, w milisekundach Unix. Wynosi
0, dopóki zadanie się nie zakończy.
- Name
- task_error
- Type
- object
- Description
Szczegóły błędu, gdy zadanie zakończy się niepowodzeniem. Zobacz Błędy.
- Name
- consumed_credits
- Type
- integer
- Description
Liczba kredytów zużytych przez zadanie. Obecne, gdy status to
PENDING,IN_PROGRESSlubSUCCEEDED. Wynosi0dla zadaniaFAILED, ponieważ Meshy zwraca kredyty, gdy zadanie kończy się niepowodzeniem.