API de Impressão Multicolorida
Converta um modelo 3D em um arquivo 3MF multicolorido para impressão 3D. Escolha uma paleta de até 16 cores e um preset de fatiador para a marca da sua impressora.
Create a Multi-Color Print task
Cria uma tarefa de Multi-Color Print, que converte um modelo 3D em um arquivo 3MF multicolorido para impressão 3D. A tarefa é executada em segundo plano. Para saber quanto tempo uma tarefa costuma levar, consulte Tempos de processamento.
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"
}
Parâmetros
- Name
- input_task_id
- Type
- string
- Obrigatório
- Description
Obrigatório, a menos que você envie
model_url. O ID da tarefa cujo modelo você deseja imprimir, por exemplo, uma tarefa de Imagem para 3D, Multi-imagem para 3D, Texto para 3D, Remesh ou Retexturizar. A tarefa deve ser uma que você criou com a API e deve ter o statusSUCCEEDED.O Multi-Color Print lê o arquivo GLB da tarefa, que pode ter no máximo 8.000.000 de faces. Um modelo com mais faces retorna
400. Nesse caso, execute primeiro uma tarefa de Remesh nele e envie o ID da tarefa de Remesh em vez disso.
- Name
- model_url
- Type
- string
- Obrigatório
- Description
Obrigatório, a menos que você envie
input_task_id. O modelo a ser impresso, como uma URL pública ou um Data URI. Se você enviar ambos, o Meshy usainput_task_id.Uma URL
httpouhttpsdeve apontar para um arquivo.glbou.fbxde no máximo 400 MB. Um Data URI deve conter um arquivo GLB em base64 de no máximo 100 MB. Usedata:model/gltf-binary;base64,. Envie um arquivo.fbxcomo uma URLhttpouhttps.Um arquivo acima de 100 MB também deve seguir estas regras:
- Pode ter no máximo 8.000.000 de faces. O Meshy conta faces como triângulos, então um quad conta como 2, e uma malha desenhada mais de uma vez conta uma vez por cópia.
- Um arquivo FBX deve ser FBX binário 7.1 ou mais recente.
- Um arquivo GLB não deve usar compressão Draco.
- Name
- max_colors
- Type
- integer
- padrão 4
- Description
O número máximo de cores na paleta de saída, de
1a16. Para usar o padrão, omita em vez de enviar0.
- Name
- style
- Type
- string
- padrão realistic
- Description
O estilo de cor do arquivo 3MF.
Valores disponíveis:
realistic: amostra cores diretamente da textura do modelo para um detalhe fino e fotorrealista, e gera um arquivo maior.cartoon: achata as cores em regiões limpas e uniformes para um visual estilizado, e gera um arquivo menor.
O modelo deve ter cor.
realisticprecisa de uma única textura de cor base, com UVs em cada parte da malha, ecartoontambém aceita cores de vértice. O Meshy rejeita um modelo sem textura (branco). Vejamodel_missing_texture.
- Name
- max_depth
- Type
- integer
- padrão 4
- Description
A profundidade de subdivisão que o Meshy usa para amostrar cores de textura na malha, de
3a6.0equivale a omitir o parâmetro. Valores mais altos capturam detalhes de cor mais finos e geram um arquivo maior. Somente o estilorealistico utiliza, ecartoono ignora.
- Name
- printer_brand
- Type
- string
- padrão bambu
- Description
A marca da impressora cujo preset de fatiador o Meshy grava no arquivo 3MF. O arquivo então abre no fatiador dessa marca com um perfil correspondente de impressora, filamento e processo. O preset usa a impressora padrão da marca, com um bico de 0,4 mm.
Valores disponíveis:
bambuanycubiccrealityelegooflashforgeprusaqidisnapmakerankermake
Qualquer outro valor retorna
400.
Retornos
O campo result da resposta contém o ID da nova tarefa de Multi-Color Print.
Modos de falha
- Name
400 - Bad Request- Description
A requisição não pode ser executada. A mensagem de erro indica qual problema foi encontrado. Por exemplo:
- Parâmetro ausente: Nem
model_urlneminput_task_idforam enviados. - Formato de modelo inválido: O arquivo de
model_urlnão é um arquivo.glbou.fbx. - URL inacessível: O Meshy não consegue baixar o arquivo de
model_url. - Arquivo de modelo muito grande: O arquivo de
model_urltem mais de 400 MB a partir de uma URLhttpouhttps, ou mais de 100 MB como Data URI. - Excesso de faces: O arquivo de
model_urltem mais de 100 MB e mais de 8.000.000 de faces. Reduza a contagem de faces e envie o arquivo novamente. - FBX ASCII acima de 100 MB: O arquivo de
model_urlé um FBX ASCII com mais de 100 MB. Envie-o como FBX binário ou GLB. - Arquivo de modelo ilegível: O arquivo de
model_urltem mais de 100 MB, e o Meshy não consegue ler seu cabeçalho. Por exemplo, é um GLB comprimido com Draco, ou um FBX binário anterior à versão 7.1. - Cabeçalho do modelo muito complexo: O arquivo de
model_urltem mais de 100 MB, e seu cabeçalho tem malhas, nós ou registros demais para verificar. Reduza o número de objetos no arquivo e envie-o novamente. - Tarefa de entrada inválida:
input_task_idnão é uma tarefa bem-sucedida. - Excesso de faces na tarefa de entrada: O modelo de
input_task_idtem mais de 8.000.000 de faces. Execute uma tarefa de Remesh nele e envie o ID da tarefa de Remesh em vez disso. - max_colors inválido:
max_colorsé negativo ou maior que16. - style inválido:
stylenão érealisticnemcartoon. - max_depth inválido:
max_depthestá fora do intervalo de3a6, e não é0. - printer_brand inválido:
printer_brandnão é um dos valores disponíveis. - Nenhuma fonte de cor: O modelo não tem a cor que
styleexige.realisticprecisa de uma única textura de cor base, com UVs, em cada parte da malha.cartoonaceita uma textura de cor base ou cores de vértice. Texturize o modelo primeiro, ou usecartoonpara um modelo com cores de vértice. O Meshy verifica um upload.fbxsomente depois que a tarefa o normaliza, então a tarefa falha commodel_missing_textureem vez disso.
Corrija a requisição e envie-a novamente. Veja Erros.
- Parâmetro ausente: Nem
- Name
401 - Unauthorized- Description
A chave de API está ausente 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 seu saldo de créditos e tente novamente.
- Plano gratuito: Criar uma tarefa requer um plano pago. Faça upgrade do seu plano nas configurações de assinatura e tente novamente.
- Name
403 - Forbidden- Description
input_task_idé um modelo em baixo-relevo, que este endpoint não consegue imprimir. A mensagem éThis model type does not support this operation. Envie um modelo diferente.
- Name
404 - Not Found- Description
input_task_idnão corresponde a nenhuma das suas tarefas. Verifique o ID da tarefa e envie a requisição novamente.
- Name
429 - Too Many Requests- Description
Você excedeu seu limite de taxa. Aguarde e tente novamente. Veja Limites de taxa.
Obter uma tarefa de Impressão multicolorida
Retorna uma tarefa de Impressão multicolorida pelo seu 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,
"task_error": null,
"consumed_credits": 10
}
Parâmetros
- Name
- id
- Type
- path
- Description
O ID da tarefa retornado na resposta de criação.
Retorno
Excluir uma tarefa de Impressão Multicolorida
Exclui permanentemente uma tarefa de impressão multicolorida, incluindo seus modelos e dados. Não é possível desfazer uma exclusão.
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."
}
Parâmetros de caminho
- Name
- id
- Type
- path
- Description
O ID da tarefa a ser excluída.
Status da tarefa
Excluir uma tarefa PENDING reembolsa os créditos usados na sua criação.
Uma tarefa IN_PROGRESS não pode ser excluída. A solicitação retorna 409 Conflict,
e a tarefa continua em execução. A Meshy não reembolsa uma tarefa que já foi iniciada,
então excluí-la custaria tanto os créditos quanto o resultado. Aguarde até que ela
alcance o status SUCCEEDED, FAILED ou CANCELED e, então, exclua-a.
Excluir uma tarefa em um status final (SUCCEEDED, FAILED ou CANCELED)
não reembolsa seus créditos.
Retornos
200 OK quando a tarefa é excluída, ou 409 Conflict quando a tarefa está
IN_PROGRESS.
Listar tarefas de Multi-Color Print
Retorna uma lista das suas tarefas de Multi-Color Print.
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
}
]
Parâmetros
- Name
- page_num
- Type
- integer
- padrão 1
- Description
O número da página a ser retornada. A numeração das páginas começa em
1.
- Name
- page_size
- Type
- integer
- padrão 10
- Description
O número de tarefas por página, até
100.
- Name
- sort_by
- Type
- string
- Description
A ordem de classificação.
Valores disponíveis:
+created_at: mais antigas primeiro-created_at: mais recentes primeiro
Retornos
Uma lista paginada de objetos de tarefa de Multi-Color Print.
Transmitir uma tarefa de impressão multicolorida
Transmite as atualizações de uma tarefa de impressão multicolorida como 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,
"task_error": null,
"consumed_credits": 10
}
Parâmetros
- Name
- id
- Type
- path
- Description
O ID da tarefa retornado na resposta de criação.
Retornos
Um stream de objetos de tarefa de impressão multicolorida como Server-Sent Events.
Cada evento contém o objeto de tarefa completo, no mesmo formato retornado pelo endpoint Get. Enquanto a tarefa estiver PENDING ou IN_PROGRESS, seus campos de resultado ainda não têm valores.
O objeto de tarefa de Impressão Multicolorida
Um objeto de tarefa de Impressão Multicolorida descreve uma conversão de um modelo 3D em um arquivo 3MF multicolorido. Ele contém o status, o progress e o arquivo 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,
"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 da tarefa, sempre
print-multi-color.
- Name
- model_urls
- Type
- object
- Description
URLs de download para o modelo impresso, uma por formato de arquivo. Um formato que a tarefa não gerou não possui chave, em vez de uma string vazia.
- Name
3mf- Type
- string
- Description
O arquivo 3MF multicolorido.
- Name
- progress
- Type
- integer
- Description
Quanto da tarefa está concluído, em porcentagem. É
0até a tarefa começar e100quando ela é concluída com sucesso.
- Name
- status
- Type
- string
- Description
O status da tarefa, um de
PENDING,IN_PROGRESS,SUCCEEDEDouFAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
O número de tarefas à frente desta na fila. O valor é significativo apenas enquanto a tarefa está
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Horário em que a tarefa foi criada, em milissegundos Unix.
- Name
- started_at
- Type
- timestamp
- Description
Horário em que a tarefa começou, em milissegundos Unix. É
0até a tarefa começar.
- Name
- finished_at
- Type
- timestamp
- Description
Horário em que a tarefa terminou, em milissegundos Unix. É
0até a tarefa terminar.
- Name
- task_error
- Type
- object
- Description
Os detalhes do erro quando a tarefa falha. Veja Erros.
- Name
- consumed_credits
- Type
- integer
- Description
O número de créditos que a tarefa utilizou. Presente quando o status é
PENDING,IN_PROGRESSouSUCCEEDED. É0para uma tarefaFAILED, pois a Meshy reembolsa os créditos quando uma tarefa falha.