API de Impressão Multicor
Converter modelos 3D para o formato 3MF multicor para impressão 3D, com uma paleta de cores configurável até 16 cores.
Criar uma Tarefa de Impressão 3D Multicolor
Este endpoint cria uma nova tarefa de impressão 3D multicolor. A tarefa converte um modelo 3D num ficheiro 3MF multicolor adequado para impressão 3D.
A tarefa é executada em segundo plano. Para saber quanto tempo demora normalmente, consulte Tempos de Processamento.
Parâmetros
Apenas um de input_task_id ou model_url é obrigatório. Se ambos forem fornecidos, input_task_id tem prioridade.
- Name
- input_task_id
- Type
- string
- Obrigatório
- Description
O ID de uma tarefa bem-sucedida a usar como entrada. Tipos de tarefa suportados: Imagem para 3D, Multi-imagem para 3D, Texto para 3D, Remesh e Retexturizar. A tarefa deve ter o estado
SUCCEEDED.
- Name
- model_url
- Type
- string
- Obrigatório
- Description
URL publicamente acessível de um modelo
.glbou.fbx, ou um URLdata:em base64 de um GLB (data:model/gltf-binary;base64,...). Um.fbxdeve ser enviado como um URLhttpouhttps.Tamanho máximo do ficheiro: 400 MB para um URL
httpouhttps, 100 MB para um URIdata:.Um ficheiro acima de 100 MB pode ter no máximo 8.000.000 faces. As faces são contadas como triângulos: um quadrilátero conta como 2, e uma malha desenhada mais do que uma vez conta uma vez por cópia. Acima de 100 MB, um ficheiro FBX deve ser FBX binário 7.1 ou mais recente, e um ficheiro GLB não pode usar compressão Draco.
- Name
- max_colors
- Type
- integer
- predefinição 4
- Description
Número máximo de cores na paleta de saída.
Intervalo válido:
1a16.
- Name
- style
- Type
- string
- predefinição realistic
- Description
Estilo visual de cor do ficheiro 3MF gerado.
Valores disponíveis:
realistic: Amostra as cores diretamente da textura do modelo para um detalhe fino e fotorrealista. Produz um ficheiro maior.cartoon: Achata as cores em regiões uniformes e limpas para um aspeto estilizado. Produz um ficheiro mais pequeno.
A entrada deve conter cor:
realisticrequer uma única textura de cor base com coordenadas UV em cada parte da malha;cartoontambém aceita cores por vértice. Modelos sem textura (brancos) são rejeitados — vermodel_missing_texture.
- Name
- max_depth
- Type
- integer
- predefinição 4
- Description
Profundidade de subdivisão usada para amostrar as cores da textura na malha. Valores mais altos captam um detalhe de cor mais fino ao custo de um ficheiro maior. Aplica-se apenas ao estilo
realistic; é ignorado paracartoon.Intervalo válido:
3a6.
- Name
- printer_brand
- Type
- string
- predefinição bambu
- Description
Marca de impressora cujo perfil de software de corte é escrito no 3MF, para que o ficheiro abra no software de corte dessa marca com um perfil correspondente de impressora, filamento e processo. Cada marca usa a sua impressora predefinida com um bico de 0,4 mm.
Valores disponíveis:
bambu,anycubic,creality,elegoo,flashforge,prusa,qidi,snapmaker,ankermake.
Retornos
A propriedade result da resposta contém o id da tarefa de impressão 3D recém-criada.
Modos de Falha
- Name
400 - Bad Request- Description
O pedido foi inaceitável. Causas comuns:
- Parâmetro em falta: É necessário fornecer
model_urlouinput_task_id. - Formato de modelo inválido: O
model_urlaponta para um ficheiro com uma extensão não suportada (apenas.glbe.fbxsão suportados). - URL inacessível: Não foi possível transferir o
model_url. - Ficheiro de modelo demasiado grande: O ficheiro
model_urlexcede 400 MB (URLhttpouhttps) ou 100 MB (URIdata:). - Demasiadas faces: O ficheiro
model_urltem mais de 100 MB e mais de 8.000.000 faces. Reduza o número de faces e envie o ficheiro novamente. - FBX ASCII acima de 100 MB: O ficheiro
model_urlé um FBX ASCII acima de 100 MB. Envie-o como FBX binário ou GLB. - Ficheiro de modelo ilegível: O ficheiro
model_urltem mais de 100 MB e o seu cabeçalho não pode ser lido, 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_urltem 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: O
input_task_iddeve referir-se a uma tarefa bem-sucedida. - max_colors inválido: O valor deve estar entre 1 e 16.
- style inválido: O valor deve ser
realisticoucartoon. - max_depth inválido: O valor deve estar entre 3 e 6.
- printer_brand inválido: O valor deve ser uma das marcas listadas acima.
- Sem fonte de cor: O modelo de entrada não tem textura de cor base (
realisticprecisa de uma única, com UVs, em cada parte da malha) nem cores por vértice (cartoonaceita qualquer uma das duas). Texturize primeiro o modelo, ou usecartoonpara modelos com cor por vértice. Os uploads.fbxsão verificados após a tarefa os normalizar e falham commodel_missing_textureem vez disso.
- Parâmetro em falta: É necessário fornecer
- Name
401 - Unauthorized- Description
A autenticação falhou. Verifique a sua chave de API.
- Name
402 - Payment Required- Description
Créditos insuficientes para realizar esta tarefa.
- Name
429 - Too Many Requests- Description
Excedeu o seu limite de taxa.
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"
}
Obter uma Tarefa de Impressão 3D Multicolor
Este endpoint obtém uma tarefa de impressão 3D multicolor através do seu ID.
Parâmetros
- Name
- id
- Type
- path
- Description
O ID da tarefa de impressão 3D a obter.
Retorna
O objeto Tarefa de Impressão 3D.
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,
"task_error": null,
"consumed_credits": 10
}
Eliminar uma Tarefa de Impressão 3D Multicolor
Este endpoint elimina permanentemente uma tarefa de impressão 3D multicolor, incluindo todos os modelos e dados associados. Esta ação é irreversível.
Parâmetros de Path
- Name
- id
- Type
- path
- Description
O ID da tarefa de impressão 3D multicolor a eliminar.
Estado da Tarefa
Uma tarefa que ainda esteja PENDING é eliminada e os créditos consumidos
no momento da criação são reembolsados.
Uma tarefa que já esteja IN_PROGRESS não pode ser eliminada: o pedido é
rejeitado com 409 Conflict e a tarefa continua a ser executada. Os
créditos de uma tarefa que o worker já tenha iniciado não são
reembolsáveis, pelo que eliminá-la a meio da execução custar-lhe-ia tanto
os créditos como o resultado. Aguarde que atinja o estado SUCCEEDED,
FAILED ou CANCELED e, só depois, elimine-a.
Uma tarefa num estado terminal (SUCCEEDED, FAILED ou CANCELED) é
eliminada sem reembolso.
Retorna
Retorna 200 OK em caso de sucesso, ou 409 Conflict quando a tarefa
está IN_PROGRESS.
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 is left 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."
}
Listar Tarefas de Impressão 3D Multicolor
Este endpoint permite obter uma lista de tarefas de impressão 3D multicolor.
Parâmetros
Atributos opcionais
- Name
- page_num
- Type
- integer
- Description
Número da página para paginação. Começa e tem como padrão
1.
- Name
- page_size
- Type
- integer
- Description
Limite de tamanho da página. O padrão é
10itens. O máximo permitido é100itens.
- Name
- sort_by
- Type
- string
- Description
Campo pelo qual ordenar. Valores disponíveis:
+created_at: Ordenar pela hora de criação por ordem ascendente.-created_at: Ordenar pela hora de criação por ordem descendente.
Devolve
Devolve uma lista paginada de Objetos de Tarefa de Impressão 3D.
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,
"task_error": null,
"consumed_credits": 10
}
]
Transmitir uma Tarefa de Impressão 3D Multicolor
Este endpoint transmite atualizações em tempo real para uma tarefa de impressão 3D multicolor utilizando Server-Sent Events (SSE).
Parâmetros
- Name
- id
- Type
- path
- Description
Identificador único da tarefa de impressão 3D multicolor a transmitir.
Devolve
Devolve um fluxo de Objetos de Tarefa de Impressão 3D como Server-Sent Events.
Para tarefas PENDING ou IN_PROGRESS, o fluxo de resposta incluirá apenas os campos progress e status necessários.
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.
// 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-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,
"task_error": null,
"consumed_credits": 10
}
O Objeto de Tarefa de Impressão 3D
- Name
- id
- Type
- string
- Description
Identificador único da tarefa. Embora utilizemos um UUID k-sortable para os ids de tarefas como detalhe de implementação, não deve fazer nenhuma suposição sobre o formato do id.
- Name
- type
- Type
- string
- Description
Tipo da tarefa de Impressão 3D. O valor é
print-multi-color.
- Name
- model_urls
- Type
- object
- Description
URL transferível para o ficheiro do modelo 3D gerado pela Meshy. A propriedade de um formato será omitida se esse formato não for gerado, em vez de ser devolvida uma string vazia.
- Name
3mf- Type
- string
- Description
URL transferível para o ficheiro 3MF multicolor.
- Name
- progress
- Type
- integer
- Description
Progresso da tarefa. Se a tarefa ainda não tiver começado, esta propriedade será
0. Assim que a tarefa for concluída com sucesso, passará a100.
- Name
- status
- Type
- string
- Description
Estado da tarefa. Os valores possíveis são um de
PENDING,IN_PROGRESS,SUCCEEDED,FAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
A contagem de tarefas precedentes.
O valor deste campo só é relevante se o estado da tarefa for
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Carimbo de data/hora da criação da tarefa, em milissegundos.
- Name
- started_at
- Type
- timestamp
- Description
Carimbo de data/hora do início da tarefa, em milissegundos. Se a tarefa ainda não tiver começado, esta propriedade será
0.
- Name
- finished_at
- Type
- timestamp
- Description
Carimbo de data/hora da conclusão da tarefa, em milissegundos. Se a tarefa ainda não tiver terminado, esta propriedade será
0.
- Name
- task_error
- Type
- object
- Description
Detalhes do erro para tarefas falhadas. Consulte Erros para a referência completa do objeto
task_error.
- Name
- consumed_credits
- Type
- integer
- Description
O número de créditos consumidos por esta tarefa. Presente quando o estado da tarefa é
PENDING,IN_PROGRESS, ouSUCCEEDED. Devolve0para tarefasFAILED(os créditos são reembolsados em caso de falha).
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,
"task_error": null,
"consumed_credits": 10
}