API de Impresión Multicolor
Convierte un modelo 3D en un archivo 3MF multicolor para impresión 3D. Elige una paleta de hasta 16 colores y un preajuste de laminador para la marca de tu impresora.
Crear una tarea de impresión multicolor
Crea una tarea de impresión multicolor, que convierte un modelo 3D en un archivo 3MF multicolor para impresión 3D. La tarea se ejecuta en segundo plano. Para saber cuánto suele tardar una tarea, consulta Tiempos de procesamiento.
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
- Requerido
- Description
Obligatorio a menos que envíes
model_url. El ID de la tarea cuyo modelo quieres imprimir, por ejemplo una tarea de Imagen a 3D, Multi-imagen a 3D, Texto a 3D, Remallado o Retexturizar. La tarea debe ser una que hayas creado con la API y tener el estadoSUCCEEDED.Multi-Color Print lee el archivo GLB de la tarea, que puede tener como máximo 8,000,000 de caras. Un modelo con más caras devuelve
400. En ese caso, ejecuta primero una tarea de Remallado sobre él, y envía el ID de la tarea de remallado en su lugar.
- Name
- model_url
- Type
- string
- Requerido
- Description
Obligatorio a menos que envíes
input_task_id. El modelo a imprimir, como una URL pública o un data URI. Si envías ambos, Meshy usainput_task_id.Una URL
httpohttpsdebe apuntar a un archivo.glbo.fbxde un máximo de 400 MB. Un data URI debe contener un archivo GLB en base64 de un máximo de 100 MB. Usadata:model/gltf-binary;base64,. Envía un archivo.fbxcomo una URLhttpohttps.Un archivo de más de 100 MB también debe cumplir estas reglas:
- Puede tener como máximo 8,000,000 de caras. Meshy cuenta las caras como triángulos, por lo que un cuadrilátero cuenta como 2, y una malla dibujada más de una vez cuenta una vez por copia.
- Un archivo FBX debe ser FBX binario 7.1 o más reciente.
- Un archivo GLB no debe usar compresión Draco.
- Name
- max_colors
- Type
- integer
- predeterminado 4
- Description
El número máximo de colores en la paleta de salida, de
1a16. Para usar el valor predeterminado, omítelo en lugar de enviar0.
- Name
- style
- Type
- string
- predeterminado realistic
- Description
El estilo de color del archivo 3MF.
Valores disponibles:
realistic: toma muestras de colores directamente de la textura del modelo para obtener un detalle fino y fotorrealista, y genera un archivo más grande.cartoon: aplana los colores en regiones uniformes y limpias para un aspecto estilizado, y genera un archivo más pequeño.
El modelo debe tener color.
realisticnecesita una única textura de color base, con UVs en cada parte de la malla, ycartoontambién acepta colores de vértice. Meshy rechaza un modelo sin textura (blanco). Consultamodel_missing_texture.
- Name
- max_depth
- Type
- integer
- predeterminado 4
- Description
La profundidad de subdivisión que Meshy usa para muestrear los colores de la textura sobre la malla, de
3a6.0equivale a omitirlo. Valores más altos capturan un detalle de color más fino y generan un archivo más grande. Solo el estilorealisticlo usa, ycartoonlo ignora.
- Name
- printer_brand
- Type
- string
- predeterminado bambu
- Description
La marca de impresora cuyo preset de laminador Meshy escribe en el archivo 3MF. El archivo se abre entonces en el laminador de esa marca con un perfil de impresora, filamento y proceso correspondiente. El preset usa la impresora predeterminada de la marca, con una boquilla de 0.4 mm.
Valores disponibles:
bambuanycubiccrealityelegooflashforgeprusaqidisnapmakerankermake
Cualquier otro valor devuelve
400.
Valores devueltos
El campo result de la respuesta contiene el ID de la nueva tarea de impresión multicolor.
Modos de fallo
- Name
400 - Bad Request- Description
La solicitud no puede ejecutarse. El mensaje de error indica qué problema encontró. Por ejemplo:
- Parámetro faltante: No se envió ni
model_urlniinput_task_id. - Formato de modelo inválido: El archivo
model_urlno es un archivo.glbni.fbx. - URL inaccesible: Meshy no puede descargar el archivo
model_url. - Archivo de modelo demasiado grande: El archivo
model_urlsupera los 400 MB desde una URLhttpohttps, o supera los 100 MB como data URI. - Demasiadas caras: El archivo
model_urlsupera los 100 MB y tiene más de 8,000,000 de caras. Reduce el número de caras y vuelve a enviar el archivo. - FBX ASCII de más de 100 MB: El archivo
model_urles un FBX ASCII de más de 100 MB. Envíalo como FBX binario o GLB. - Archivo de modelo ilegible: El archivo
model_urlsupera los 100 MB, y Meshy no puede leer su encabezado. Por ejemplo, es un GLB comprimido con Draco, o un FBX binario anterior a la versión 7.1. - Encabezado del modelo demasiado complejo: El archivo
model_urlsupera los 100 MB, y su encabezado tiene demasiadas mallas, nodos o registros para verificar. Reduce el número de objetos en el archivo y vuelve a enviarlo. - Tarea de entrada inválida:
input_task_idno corresponde a una tarea exitosa. - Demasiadas caras en la tarea de entrada: El modelo de
input_task_idtiene más de 8,000,000 de caras. Ejecuta una tarea de remallado sobre él y envía el ID de esa tarea en su lugar. - max_colors inválido:
max_colorses negativo o supera16. - style inválido:
styleno esrealisticnicartoon. - max_depth inválido:
max_depthestá fuera del rango de3a6, y no es0. - printer_brand inválido:
printer_brandno corresponde a uno de sus valores disponibles. - Sin fuente de color: El modelo carece del color que necesita
style.realisticnecesita una única textura de color base, con UVs, en cada parte de la malla.cartoonacepta una textura de color base o colores de vértice. Aplica textura al modelo primero, o usacartoonpara un modelo con colores de vértice. Meshy verifica una carga.fbxsolo después de que la tarea la normaliza, por lo que la tarea falla conmodel_missing_textureen su lugar.
Corrige la solicitud y vuelve a enviarla. Consulta Errores.
- Parámetro faltante: No se envió ni
- Name
401 - Unauthorized- Description
La clave de API falta o no es válida. Revisa el encabezado
Authorization.
- Name
402 - Payment Required- Description
Por ejemplo:
- Créditos insuficientes: La cuenta no tiene suficientes créditos para esta tarea, o la cuenta alcanzó un límite de créditos. Revisa tu saldo de créditos y vuelve a intentarlo.
- Plan gratuito: Crear una tarea requiere un plan de pago. Mejora tu plan en la configuración de suscripción, y vuelve a intentarlo.
- Name
403 - Forbidden- Description
input_task_ides un modelo de bajorrelieve, que este endpoint no puede imprimir. El mensaje esThis model type does not support this operation. Envía un modelo diferente.
- Name
404 - Not Found- Description
input_task_idno coincide con ninguna de tus tareas. Revisa el ID de la tarea y vuelve a enviar la solicitud.
- Name
429 - Too Many Requests- Description
Superaste tu límite de tasa. Espera y vuelve a intentarlo. Consulta Límites de tasa.
Obtener una tarea de impresión multicolor
Devuelve una tarea de impresión multicolor por su 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
El ID de la tarea de la respuesta de creación.
Devuelve
Eliminar una tarea de impresión multicolor
Elimina permanentemente una tarea de impresión multicolor, incluyendo sus modelos y datos. No puedes deshacer una eliminación.
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 ruta
- Name
- id
- Type
- path
- Description
El ID de la tarea que se va a eliminar.
Estado de la tarea
Eliminar una tarea en estado PENDING reembolsa los créditos que se usaron al crearla.
Una tarea IN_PROGRESS no se puede eliminar. La solicitud devuelve 409 Conflict,
y la tarea sigue ejecutándose. Meshy no reembolsa una tarea que ya ha comenzado,
así que eliminarla te costaría tanto los créditos como el resultado. Espera a que
alcance el estado SUCCEEDED, FAILED o CANCELED, y luego elimínala.
Eliminar una tarea en un estado final (SUCCEEDED, FAILED o CANCELED)
no reembolsa sus créditos.
Devuelve
200 OK cuando la tarea se elimina, o 409 Conflict cuando la tarea está
en estado IN_PROGRESS.
Listar tareas de impresión multicolor
Devuelve una lista de tus tareas de impresión multicolor.
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
- predeterminado 1
- Description
El número de página a devolver. Los números de página comienzan en
1.
- Name
- page_size
- Type
- integer
- predeterminado 10
- Description
El número de tareas por página, hasta
100.
- Name
- sort_by
- Type
- string
- Description
El orden de clasificación.
Valores disponibles:
+created_at: más antiguas primero-created_at: más recientes primero
Devuelve
Una lista paginada de objetos de tarea de impresión multicolor.
Transmitir una tarea de impresión multicolor
Transmite las actualizaciones de una tarea de impresión multicolor como eventos enviados por el servidor (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
El ID de la tarea proveniente de la respuesta de creación.
Devuelve
Un flujo de objetos de tarea de impresión multicolor como eventos enviados por el servidor.
Cada evento contiene el objeto de tarea completo, con la misma forma que devuelve el endpoint Get. Mientras la tarea esté en PENDING o IN_PROGRESS, sus campos de resultado aún no tienen valores.
El objeto de tarea de impresión multicolor
Un objeto de tarea de impresión multicolor describe una conversión de un modelo 3D a un archivo 3MF multicolor. Contiene el estado, el progreso y el archivo 3MF cuando la tarea tiene éxito.
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
El ID de la tarea. Trátelo como una cadena opaca y no dependa de su formato.
- Name
- type
- Type
- string
- Description
El tipo de tarea, siempre
print-multi-color.
- Name
- model_urls
- Type
- object
- Description
URLs de descarga para el modelo impreso, una por cada formato de archivo. Un formato que la tarea no generó no tiene clave, en lugar de tener una cadena vacía.
- Name
3mf- Type
- string
- Description
El archivo 3MF multicolor.
- Name
- progress
- Type
- integer
- Description
Cuánto de la tarea está completado, como porcentaje. Es
0hasta que la tarea comienza y100cuando tiene éxito.
- Name
- status
- Type
- string
- Description
El estado de la tarea, uno de
PENDING,IN_PROGRESS,SUCCEEDEDoFAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
El número de tareas por delante de esta en la cola. El valor solo es significativo mientras la tarea está en
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Momento en que se creó la tarea, en milisegundos Unix.
- Name
- started_at
- Type
- timestamp
- Description
Momento en que la tarea comenzó, en milisegundos Unix. Es
0hasta que la tarea comienza.
- Name
- finished_at
- Type
- timestamp
- Description
Momento en que la tarea finalizó, en milisegundos Unix. Es
0hasta que la tarea finaliza.
- Name
- task_error
- Type
- object
- Description
Los detalles del error cuando la tarea falla. Consulte Errores.
- Name
- consumed_credits
- Type
- integer
- Description
El número de créditos que usó la tarea. Presente cuando el estado es
PENDING,IN_PROGRESSoSUCCEEDED. Es0para una tareaFAILED, porque Meshy reembolsa los créditos cuando una tarea falla.