lowpoly zostanie wycofany 30 paź 2026. Zmień model przed tymi datami, aby uniknąć błędów żądań. Zobacz wszystkie wycofania

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.


POST/openapi/v1/print/multi-color

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

POST
/openapi/v1/print/multi-color
# 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ć status SUCCEEDED.

    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żyje input_task_id.

    Adres URL http lub https musi wskazywać na plik .glb lub .fbx o rozmiarze co najwyżej 400 MB. Data URI musi zawierać plik GLB zakodowany w base64 o rozmiarze co najwyżej 100 MB. Użyj data:model/gltf-binary;base64,. Plik .fbx wyślij jako adres URL http lub https.

    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 1 do 16. 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. realistic wymaga pojedynczej tekstury koloru bazowego, z UV-ami na każdej części siatki, a cartoon akceptuje też kolory wierzchołków. Meshy odrzuca model bez tekstury (biały). Zobacz model_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 3 do 6. 0 to 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 styl realistic, a cartoon go 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:

    • bambu
    • anycubic
    • creality
    • elegoo
    • flashforge
    • prusa
    • qidi
    • snapmaker
    • ankermake

    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, ani input_task_id.
    • Nieprawidłowy format modelu: Plik model_url nie jest plikiem .glb ani .fbx.
    • Niedostępny URL: Meshy nie może pobrać pliku model_url.
    • Plik modelu zbyt duży: Plik model_url przekracza 400 MB z adresu URL http lub https, albo przekracza 100 MB jako Data URI.
    • Zbyt dużo ścian: Plik model_url ma 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_url to ASCII FBX powyżej 100 MB. Wyślij go jako binarny FBX lub GLB.
    • Nieczytelny plik modelu: Plik model_url przekracza 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_url przekracza 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_id nie jest zakończonym powodzeniem zadaniem.
    • Zbyt dużo ścian w zadaniu wejściowym: Model input_task_id ma 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_colors jest ujemne lub większe niż 16.
    • Nieprawidłowy style: style nie jest realistic ani cartoon.
    • Nieprawidłowe max_depth: max_depth jest poza zakresem 3 do 6 i nie jest 0.
    • Nieprawidłowe printer_brand: printer_brand nie jest jedną z dostępnych wartości.
    • Brak źródła koloru: Modelowi brakuje koloru wymaganego przez style. realistic wymaga pojedynczej tekstury koloru bazowego, z UV-ami, na każdej części siatki. cartoon akceptuje teksturę koloru bazowego lub kolory wierzchołków. Najpierw nałóż teksturę na model lub użyj cartoon dla modelu z kolorami wierzchołków. Meshy sprawdza przesłany plik .fbx dopiero po tym, jak zadanie go znormalizuje, więc zadanie kończy się niepowodzeniem z model_missing_texture.

    Popraw żądanie, a następnie wyślij je ponownie. Zobacz Błędy.

  • 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_id to model płaskorzeźby, którego ten punkt końcowy nie może wydrukować. Komunikat to This model type does not support this operation. Wyślij inny model.

  • Name
    404 - Not Found
    Description

    input_task_id nie 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.


GET/openapi/v1/print/multi-color/:id

Pobierz zadanie druku wielokolorowego

Zwraca zadanie druku wielokolorowego na podstawie jego ID.

Request

GET
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f
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

Obiekt zadania druku wielokolorowego.


DELETE/openapi/v1/print/multi-color/:id

Usuń zadanie druku wielokolorowego

Trwale usuwa zadanie druku wielokolorowego, wraz z jego modelami i danymi. Nie można cofnąć usunięcia.

Request

DELETE
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f
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.


GET/openapi/v1/print/multi-color

Lista zadań druku wielokolorowego

Zwraca listę Twoich zadań druku wielokolorowego.

Request

GET
/openapi/v1/print/multi-color
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.


GET/openapi/v1/print/multi-color/:id/stream

Strumieniowanie zadania druku wielokolorowego

Strumieniuje aktualizacje zadania druku wielokolorowego jako zdarzenia wysyłane przez serwer (Server-Sent Events, SSE).

Request

GET
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
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, i 100, gdy zakończy się powodzeniem.

  • Name
    status
    Type
    string
    Description

    Status zadania, jeden z: PENDING, IN_PROGRESS, SUCCEEDED, FAILED lub CANCELED.

  • 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_PROGRESS lub SUCCEEDED. Wynosi 0 dla zadania FAILED, ponieważ Meshy zwraca kredyty, gdy zadanie kończy się niepowodzeniem.