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.
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
# 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 estadoSUCCEEDED.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 usainput_task_id.Um URL
httpouhttpstem de apontar para um ficheiro.glbou.fbxde, no máximo, 400 MB. Um Data URI tem de conter um ficheiro GLB em base64 de, no máximo, 100 MB. Usedata:model/gltf-binary;base64,. Envie um ficheiro.fbxcomo um URLhttpouhttps.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
1a16. Para usar o valor predefinido, omita o parâmetro em vez de enviar0.
- 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.
realisticprecisa de uma única textura de cor base, com UVs em todas as partes da malha, ecartoontambém aceita cores de vértice. A Meshy rejeita um modelo sem textura (branco). Consultemodel_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
3a6.0equivale a omitir o parâmetro. Valores mais altos captam detalhe de cor mais fino e criam um ficheiro maior. Apenas o estilorealistico utiliza; ocartoonignora-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:
bambuanycubiccrealityelegooflashforgeprusaqidisnapmakerankermake
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_urlneminput_task_idforam enviados. - Formato de modelo inválido: O ficheiro
model_urlnão é um ficheiro.glbou.fbx. - URL inacessível: A Meshy não consegue transferir o ficheiro
model_url. - Ficheiro de modelo demasiado grande: O ficheiro
model_urltem mais de 400 MB a partir de um URLhttpouhttps, ou mais de 100 MB como Data URI. - Demasiadas faces: O ficheiro
model_urltem 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_urltem 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_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:
input_task_idnão é uma tarefa concluída com êxito. - Demasiadas faces na tarefa de entrada: O modelo de
input_task_idtem 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 a16. - style inválido:
stylenão érealisticnemcartoon. - max_depth inválido:
max_depthestá fora do intervalo3a6, e não é0. - printer_brand inválido:
printer_brandnão corresponde a nenhum dos valores disponíveis. - Sem origem de cor: O modelo não tem a cor de que
stylenecessita.realisticprecisa de uma única textura de cor base, com UVs, em todas as partes da malha.cartoonaceita uma textura de cor base ou cores de vértice. Aplique textura ao modelo primeiro, ou usecartoonpara um modelo com cores de vértice. A Meshy só verifica um upload.fbxdepois de a tarefa o normalizar, pelo que a tarefa falha commodel_missing_textureem vez disso.
Corrija o pedido e envie-o novamente. Consulte Erros.
- Parâmetro em falta: Nem
- 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_idnã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.
Obter uma tarefa de impressão multicor
Devolve uma tarefa de impressão multicor através do 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,
"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
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
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.
Listar tarefas de impressão multicor
Devolve uma lista das suas tarefas de impressão multicor.
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
}
]
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.
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
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. É
0até a tarefa começar e100quando é concluída com sucesso.
- Name
- status
- Type
- string
- Description
O estado da tarefa, um de
PENDING,IN_PROGRESS,SUCCEEDED,FAILED, ouCANCELED.
- 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. É
0até a tarefa começar.
- Name
- finished_at
- Type
- timestamp
- Description
Hora a que a tarefa terminou, em milissegundos Unix. É
0até a tarefa terminar.
- Name
- expires_at
- Type
- timestamp
- Description
Hora a que o resultado da tarefa expira, em milissegundos Unix. É
0até 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, ouSUCCEEDED. É0para uma tarefaFAILED, porque a Meshy reembolsa os créditos quando uma tarefa falha.