lowpoly será descontinuado a 30/10/2026. Mude de modelo antes destas datas para evitar erros nos pedidos. Ver todas as descontinuações

API de Impressão Multicor

Converter um modelo 3D num ficheiro 3MF multicor para impressão 3D. Escolha uma paleta de até 16 cores e uma predefinição de software de corte para a marca da sua impressora.


POST/openapi/v1/print/multi-color

Criar uma tarefa de impressão multicor

Cria uma tarefa de impressão multicor, que converte um modelo 3D num ficheiro 3MF multicor para impressão 3D. A tarefa é executada em segundo plano. Para saber quanto tempo demora normalmente uma tarefa, consulte Tempos de processamento.

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"
}

Parâmetros

  • Name
    input_task_id
    Type
    string
    Obrigatório
    Description

    Obrigatório, a menos que envie model_url. O ID da tarefa cujo modelo pretende imprimir, por exemplo uma tarefa Imagem para 3D, Multi-imagem para 3D, Texto para 3D, Remesh ou Retexturizar. A tarefa tem de ter sido criada por si através da API e ter o estado SUCCEEDED.

    A impressão multicor lê o ficheiro GLB da tarefa, que pode ter no máximo 8 000 000 de faces. Um modelo com mais faces devolve 400. Nesse caso, execute primeiro uma tarefa Remesh e envie o ID dessa tarefa Remesh.

  • Name
    model_url
    Type
    string
    Obrigatório
    Description

    Obrigatório, a menos que envie input_task_id. O modelo a imprimir, como um URL público ou um Data URI. Se enviar ambos, a Meshy usa input_task_id.

    Um URL http ou https tem de apontar para um ficheiro .glb ou .fbx de, no máximo, 400 MB. Um Data URI tem de conter um ficheiro GLB em base64 de, no máximo, 100 MB. Use data:model/gltf-binary;base64,. Envie um ficheiro .fbx como um URL http ou https.

    Um ficheiro com mais de 100 MB também tem de respeitar estas regras:

    • Pode ter no máximo 8 000 000 de faces. A Meshy conta as faces como triângulos, pelo que um quadrilátero conta como 2, e uma malha desenhada mais do que uma vez conta uma vez por cada cópia.
    • Um ficheiro FBX tem de ser FBX binário 7.1 ou mais recente.
    • Um ficheiro GLB não pode usar compressão Draco.
  • Name
    max_colors
    Type
    integer
    predefinição 4
    Description

    O número máximo de cores na paleta de saída, de 1 a 16. Para usar o valor predefinido, omita o parâmetro em vez de enviar 0.

  • Name
    style
    Type
    string
    predefinição realistic
    Description

    O estilo de cor do ficheiro 3MF.

    Valores disponíveis:

    • realistic: amostra as cores diretamente a partir da textura do modelo, para um detalhe fino e fotorrealista, e cria um ficheiro maior.
    • cartoon: achata as cores em regiões uniformes e limpas, para um aspeto estilizado, e cria um ficheiro mais pequeno.

    O modelo tem de ter cor. realistic precisa de uma única textura de cor base, com UVs em todas as partes da malha, e cartoon também aceita cores de vértice. A Meshy rejeita um modelo sem textura (branco). Consulte model_missing_texture.

  • Name
    max_depth
    Type
    integer
    predefinição 4
    Description

    A profundidade de subdivisão que a Meshy usa para amostrar as cores da textura para a malha, de 3 a 6. 0 equivale a omitir o parâmetro. Valores mais altos captam detalhe de cor mais fino e criam um ficheiro maior. Apenas o estilo realistic o utiliza; o cartoon ignora-o.

  • Name
    printer_brand
    Type
    string
    predefinição bambu
    Description

    A marca de impressora cujo perfil de software de corte a Meshy escreve no ficheiro 3MF. O ficheiro abre depois no software de corte dessa marca, com um perfil correspondente de impressora, filamento e processo. O perfil usa a impressora predefinida da marca, com um bico de 0,4 mm.

    Valores disponíveis:

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

    Qualquer outro valor devolve 400.

Resultados

O campo result da resposta contém o ID da nova tarefa de impressão multicor.

Modos de falha

  • Name
    400 - Bad Request
    Description

    O pedido não pode ser executado. A mensagem de erro indica qual o problema encontrado. Por exemplo:

    • Parâmetro em falta: Nem model_url nem input_task_id foram enviados.
    • Formato de modelo inválido: O ficheiro model_url não é um ficheiro .glb ou .fbx.
    • URL inacessível: A Meshy não consegue transferir o ficheiro model_url.
    • Ficheiro de modelo demasiado grande: O ficheiro model_url tem mais de 400 MB a partir de um URL http ou https, ou mais de 100 MB como Data URI.
    • Demasiadas faces: O ficheiro model_url tem mais de 100 MB e mais de 8 000 000 de faces. Reduza o número de faces e envie o ficheiro novamente.
    • FBX ASCII com mais de 100 MB: O ficheiro model_url é um FBX ASCII com mais de 100 MB. Envie-o como FBX binário ou GLB.
    • Ficheiro de modelo ilegível: O ficheiro model_url tem mais de 100 MB e a Meshy não consegue ler o seu cabeçalho. Por exemplo, é um GLB comprimido com Draco, ou um FBX binário anterior à versão 7.1.
    • Cabeçalho do modelo demasiado complexo: O ficheiro model_url tem mais de 100 MB e o seu cabeçalho tem demasiadas malhas, nós ou registos para verificar. Reduza o número de objetos no ficheiro e envie-o novamente.
    • Tarefa de entrada inválida: input_task_id não é uma tarefa concluída com êxito.
    • Demasiadas faces na tarefa de entrada: O modelo de input_task_id tem mais de 8 000 000 de faces. Execute uma tarefa Remesh sobre ele e envie o ID dessa tarefa Remesh.
    • max_colors inválido: max_colors é negativo ou superior a 16.
    • style inválido: style não é realistic nem cartoon.
    • max_depth inválido: max_depth está fora do intervalo 3 a 6, e não é 0.
    • printer_brand inválido: printer_brand não corresponde a nenhum dos valores disponíveis.
    • Sem origem de cor: O modelo não tem a cor de que style necessita. realistic precisa de uma única textura de cor base, com UVs, em todas as partes da malha. cartoon aceita uma textura de cor base ou cores de vértice. Aplique textura ao modelo primeiro, ou use cartoon para um modelo com cores de vértice. A Meshy só verifica um upload .fbx depois de a tarefa o normalizar, pelo que a tarefa falha com model_missing_texture em vez disso.

    Corrija o pedido e envie-o novamente. Consulte Erros.

  • Name
    401 - Unauthorized
    Description

    A chave de API está em falta ou é inválida. Verifique o cabeçalho Authorization.

  • Name
    402 - Payment Required
    Description

    Por exemplo:

    • Créditos insuficientes: A conta não tem créditos suficientes para esta tarefa, ou a conta atingiu um limite de créditos. Verifique o seu saldo de créditos e tente novamente.
    • Plano gratuito: Criar uma tarefa requer um plano pago. Atualize o seu plano nas definições de subscrição e tente novamente.
  • Name
    403 - Forbidden
    Description

    input_task_id é um modelo em baixo-relevo, que este endpoint não pode imprimir. A mensagem é This model type does not support this operation. Envie um modelo diferente.

  • Name
    404 - Not Found
    Description

    input_task_id não corresponde a nenhuma das suas tarefas. Verifique o ID da tarefa e envie o pedido novamente.

  • Name
    429 - Too Many Requests
    Description

    Excedeu o seu limite de taxa. Aguarde e tente novamente. Consulte Limites de taxa.


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

Obter uma tarefa de impressão multicor

Devolve uma tarefa de impressão multicor através do seu 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
}

Parâmetros

  • Name
    id
    Type
    path
    Description

    O ID da tarefa proveniente da resposta de criação.

Devolve

O objeto de tarefa de impressão multicor.


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

Eliminar uma tarefa de impressão multicor

Elimina permanentemente uma tarefa de impressão multicor, incluindo os seus modelos e dados. Não é possível desfazer uma eliminação.

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."
}

Parâmetros de caminho

  • Name
    id
    Type
    path
    Description

    O ID da tarefa a eliminar.

Estado da tarefa

Eliminar uma tarefa PENDING reembolsa os créditos utilizados na sua criação.

Uma tarefa IN_PROGRESS não pode ser eliminada. O pedido devolve 409 Conflict, e a tarefa continua em execução. A Meshy não reembolsa uma tarefa que já foi iniciada, pelo que eliminá-la custaria tanto os créditos como o resultado. Aguarde até atingir o estado SUCCEEDED, FAILED ou CANCELED, e só depois elimine-a.

Eliminar uma tarefa num estado final (SUCCEEDED, FAILED ou CANCELED) não reembolsa os seus créditos.

Devolve

200 OK quando a tarefa é eliminada, ou 409 Conflict quando a tarefa está IN_PROGRESS.


GET/openapi/v1/print/multi-color

Listar tarefas de impressão multicor

Devolve uma lista das suas tarefas de impressão multicor.

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
  }
]

Parâmetros

  • Name
    page_num
    Type
    integer
    predefinição 1
    Description

    O número da página a devolver. A numeração das páginas começa em 1.

  • Name
    page_size
    Type
    integer
    predefinição 10
    Description

    O número de tarefas por página, até 100.

  • Name
    sort_by
    Type
    string
    Description

    A ordem de ordenação.

    Valores disponíveis:

    • +created_at: mais antigas primeiro
    • -created_at: mais recentes primeiro

Devolve

Uma lista paginada de objetos de tarefa de impressão multicor.


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

Transmitir em stream uma tarefa de Impressão Multicor

Transmite em stream as atualizações de uma tarefa de impressão multicor como 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
}

Parâmetros

  • Name
    id
    Type
    path
    Description

    O ID da tarefa proveniente da resposta de criação.

Retorna

Um stream de objetos de tarefa de Impressão Multicor como Server-Sent Events.

Cada evento contém o objeto de tarefa completo, na mesma forma devolvida pelo endpoint Get. Enquanto a tarefa estiver PENDING ou IN_PROGRESS, os seus campos de resultado ainda não têm valores.


O objeto de tarefa de impressão multicor

Um objeto de tarefa de impressão multicor descreve uma conversão de um modelo 3D num ficheiro 3MF multicor. Contém o estado, o progress e o ficheiro 3MF quando a tarefa é concluída com sucesso.

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

    O ID da tarefa. Trate-o como uma string opaca e não dependa do seu formato.

  • Name
    type
    Type
    string
    Description

    O tipo de tarefa, sempre print-multi-color.

  • Name
    model_urls
    Type
    object
    Description

    URLs de transferência para o modelo impresso, uma por formato de ficheiro. Um formato que a tarefa não gerou não tem chave, em vez de uma string vazia.

    • Name
      3mf
      Type
      string
      Description

      O ficheiro 3MF multicor.

  • Name
    progress
    Type
    integer
    Description

    Quanto da tarefa está concluído, em percentagem. É 0 até a tarefa começar e 100 quando é concluída com sucesso.

  • Name
    status
    Type
    string
    Description

    O estado da tarefa, um de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ou CANCELED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    O número de tarefas à frente desta na fila. O valor só é significativo enquanto a tarefa está PENDING.

  • Name
    created_at
    Type
    timestamp
    Description

    Hora a que a tarefa foi criada, em milissegundos Unix.

  • Name
    started_at
    Type
    timestamp
    Description

    Hora a que a tarefa começou, em milissegundos Unix. É 0 até a tarefa começar.

  • Name
    finished_at
    Type
    timestamp
    Description

    Hora a que a tarefa terminou, em milissegundos Unix. É 0 até a tarefa terminar.

  • Name
    expires_at
    Type
    timestamp
    Description

    Hora a que o resultado da tarefa expira, em milissegundos Unix. É 0 até a tarefa terminar.

  • Name
    task_error
    Type
    object
    Description

    Os detalhes do erro quando a tarefa falha. Consulte Erros.

  • Name
    consumed_credits
    Type
    integer
    Description

    O número de créditos que a tarefa utilizou. Presente quando o estado é PENDING, IN_PROGRESS, ou SUCCEEDED. É 0 para uma tarefa FAILED, porque a Meshy reembolsa os créditos quando uma tarefa falha.