API d’impression multicolore

Convertir des modèles 3D au format 3MF multicolore pour l’impression 3D, avec une palette de couleurs configurable allant jusqu’à 16 couleurs.


POST/openapi/v1/print/multi-color

Créer une tâche d’impression 3D multicolore

Ce point de terminaison crée une nouvelle tâche d’impression 3D multicolore. La tâche convertit un modèle 3D en un fichier 3MF multicolore adapté à l’impression 3D.

Paramètres

  • Name
    model_url
    Type
    string
    Requis
    Description

    URL accessible publiquement ou Data URI d’un modèle 3D. Nous prenons actuellement en charge les formats .glb et .fbx.

  • Name
    max_colors
    Type
    integer
    défaut 4
    Description

    Nombre maximal de couleurs dans la palette de sortie.

    Plage valide : 1 à 16.

  • Name
    max_depth
    Type
    integer
    défaut 4
    Description

    Profondeur du quadtree pour la précision des couleurs. Des valeurs plus élevées produisent des limites de couleur plus fines, mais augmentent la taille du fichier.

    Plage valide : 3 à 6.

Retours

La propriété result de la réponse contient l’id de la tâche d’impression 3D nouvellement créée.

Modes d’échec

  • Name
    400 - Bad Request
    Description

    La requête était inacceptable. Causes courantes :

    • Paramètre manquant : model_url ou input_task_id doit être fourni.
    • Format de modèle invalide : Le model_url pointe vers un fichier avec une extension non prise en charge (seuls .glb et .fbx sont pris en charge).
    • URL inaccessible : Le model_url n’a pas pu être téléchargé.
    • Tâche d’entrée invalide : Le input_task_id doit faire référence à une tâche réussie.
    • max_colors invalide : La valeur doit être comprise entre 1 et 16.
    • max_depth invalide : La valeur doit être comprise entre 3 et 6.
  • Name
    401 - Unauthorized
    Description

    L’authentification a échoué. Veuillez vérifier votre clé API.

  • Name
    402 - Payment Required
    Description

    Crédits insuffisants pour effectuer cette tâche.

  • Name
    429 - Too Many Requests
    Description

    Vous avez dépassé votre limite de débit.

Request

POST
/openapi/v1/print/multi-color
# Convert a 3D model to multi-color 3MF for printing
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,
    "max_depth": 5
  }'

Response

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

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

Récupérer une tâche d’impression 3D multicolore

Ce point de terminaison récupère une tâche d’impression 3D multicolore par son ID.

Paramètres

  • Name
    id
    Type
    path
    Description

    L’ID de la tâche d’impression 3D à récupérer.

Retours

L’objet Tâche d’impression 3D.

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,
  "task_error": null,
"consumed_credits": 10
}

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

Supprimer une tâche d’impression 3D multicolore

Ce point de terminaison supprime définitivement une tâche d’impression 3D multicolore, y compris tous les modèles et données associés. Cette action est irréversible.

Paramètres de chemin

  • Name
    id
    Type
    path
    Description

    L’identifiant de la tâche d’impression 3D multicolore à supprimer.

Retours

Renvoie 200 OK en cas de succès.

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

// Returns 200 Ok on success.

GET/openapi/v1/print/multi-color

Lister les tâches d’impression 3D multicolore

Ce point de terminaison vous permet de récupérer une liste de tâches d’impression 3D multicolore.

Paramètres

Attributs facultatifs

  • Name
    page_num
    Type
    integer
    Description

    Numéro de page pour la pagination. Commence à 1 et vaut 1 par défaut.

  • Name
    page_size
    Type
    integer
    Description

    Limite de taille de page. Par défaut, 10 éléments. Le maximum autorisé est de 50 éléments.

  • Name
    sort_by
    Type
    string
    Description

    Champ selon lequel trier. Valeurs disponibles :

    • +created_at: Trier par heure de création par ordre croissant.
    • -created_at: Trier par heure de création par ordre décroissant.

Renvoie

Renvoie une liste paginée des objets de tâche d’impression 3D.

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,
    "task_error": null,
  "consumed_credits": 10
  }
]

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

Diffuser en flux une tâche d’impression 3D multicolore

Ce point de terminaison diffuse des mises à jour en temps réel pour une tâche d’impression 3D multicolore à l’aide des Server-Sent Events (SSE).

Paramètres

  • Name
    id
    Type
    path
    Description

    Identifiant unique de la tâche d’impression 3D multicolore à diffuser en flux.

Retours

Renvoie un flux d’objets de tâche d’impression 3D sous forme de Server-Sent Events.

Pour les tâches PENDING ou IN_PROGRESS, le flux de réponse n’inclura que les champs progress et status nécessaires.

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

L’objet de tâche d’impression 3D

  • Name
    id
    Type
    string
    Description

    Identifiant unique de la tâche. Bien que nous utilisions un UUID triable par k pour les identifiants de tâche comme détail d’implémentation, vous ne devez pas faire d’hypothèses sur le format de l’identifiant.

  • Name
    type
    Type
    string
    Description

    Type de la tâche d’impression 3D. La valeur est print-multi-color.

  • Name
    model_urls
    Type
    object
    Description

    URL de téléchargement du fichier de modèle 3D généré par Meshy. La propriété correspondant à un format sera omise si le format n’est pas généré, au lieu de renvoyer une chaîne vide.

    • Name
      3mf
      Type
      string
      Description

      URL de téléchargement du fichier 3MF multicolore.

  • Name
    progress
    Type
    integer
    Description

    progress de la tâche. Si la tâche n’a pas encore démarré, cette propriété sera 0. Une fois la tâche réussie, elle deviendra 100.

  • Name
    status
    Type
    string
    Description

    Statut de la tâche. Les valeurs possibles sont l’une de PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Le nombre de tâches précédentes.

  • Name
    created_at
    Type
    timestamp
    Description

    horodatage de la création de la tâche, en millisecondes.

  • Name
    started_at
    Type
    timestamp
    Description

    horodatage du démarrage de la tâche, en millisecondes. Si la tâche n’a pas encore démarré, cette propriété sera 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    horodatage de la fin de la tâche, en millisecondes. Si la tâche n’est pas encore terminée, cette propriété sera 0.

  • Name
    task_error
    Type
    object
    Description

    Détails de l’erreur pour les tâches ayant échoué. Consultez Erreurs pour la référence complète de l’objet task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Le nombre de crédits consommés par cette tâche. Présent lorsque le statut de la tâche est PENDING, IN_PROGRESS ou SUCCEEDED. Renvoie 0 pour les tâches FAILED (les crédits sont remboursés en cas d’échec).

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
}