API Auto Split
Divisez un modèle 3D en pièces imprimables séparément — automatiquement, selon les pièces que vous nommez, ou par zone de couleur — avec des connecteurs optionnels ; les zones fines laissées par une découpe sont toujours renforcées afin que chaque pièce s'imprime pleine.
Le résultat de la division ne conserve pas la texture d'entrée. Auto Split accepte les entrées texturées, vous n'avez donc pas besoin de régénérer le modèle avec should_texture: false. Il reconstruit les pièces découpées et attribue à chacune une couleur de sommet uniforme ; aucune carte de texture d'entrée n'est reportée dans le format exporté.
Créer une tâche Auto Split
Ce point de terminaison crée une nouvelle tâche Auto Split. La tâche découpe le modèle d'une tâche précédente en parties imprimables séparément et renvoie le modèle segmenté, chaque partie étant un objet distinct dans le fichier.
Paramètres
- Name
- input_task_id
- Type
- string
- Requis
- Description
L'ID d'une tâche réussie dont le modèle doit être découpé. Types de tâches pris en charge : Image en 3D, Multi-image en 3D, Texte en 3D (aperçu), Remaillage, Convertir et Redimensionner. La tâche doit avoir un statut
SUCCEEDED, et son modèle doit avoir été généré avec Meshy 6 ou Meshy 7 (ai_modelmeshy-6,meshy-7,meshy-7.1, oulatest). Les modèles low-poly et Smart Topology (meshy-t2) ne sont pas pris en charge. Un modèle texturé est accepté, mais sa texture n'est pas conservée dans le résultat.
- Name
- mode
- Type
- string
- défaut auto
- Description
Comment le modèle est divisé en parties.
Valeurs disponibles :
auto: Meshy choisit les coupes.promptest ignoré.by_parts: Découpe selon les parties structurelles que vous nommez dansprompt, comme la tête, les bras et le torse.by_color: Découpe selon les régions de couleur que vous nommez dansprompt. Nécessite une entrée générée à partir d'une image téléversée (Image en 3D ou Multi-image en 3D) ; les autres entrées sont rejetées avec400. Les limites des régions de couleur proviennent de l'image source, et non de la texture du modèle d'entrée. Pour Multi-image en 3D, Auto Split utilise la première image source.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Requis
- Description
Décrit les parties à obtenir après découpage, dans n'importe quelle langue. Meshy lit de 1 à 10 noms de parties à partir de ce texte, donc nommez les pièces plutôt que de décrire le modèle — par exemple
découper en la figurine et le socle, outête, torse, bras gauche, bras droit, jambes. Nommer une seule partie est possible : tout ce que vous n'avez pas nommé devient une partie restante, ainsila têtedivise le modèle en la tête et le reste, comme dans l'application web. 600 caractères maximum. Deux cas d'échec : une description qui ne demande aucun découpage, ou qui nomme plus de 10 parties, est rejetée avec400et rien n'est facturé ; une description que Meshy ne parvient pas du tout à interpréter revient au modeauto, la tâche s'exécute quand même et est facturée, et sa réponse contientprompt_ignored: true.
- Name
- target_formats
- Type
- array
- défaut ["glb"]
- Description
Formats dans lesquels exporter le modèle découpé. Les formats qui prennent en charge les objets de scène (
glb,obj,fbx,usdz,blend,3mf) conservent chaque partie comme un objet distinct ;stln'a pas de notion d'objets séparés, il fusionne donc toutes les parties en un seul solide organisé selonlayout(demandez3mfpour obtenir des parties sélectionnables séparément dans un trancheur).glbest toujours produit et renvoyé dansmodel_urls; indiquez tout autre format souhaité en plus.Valeurs disponibles :
glb,obj,fbx,stl,usdz,blend,3mf.
- Name
- layout
- Type
- string
- défaut assembled
- Description
Comment les parties sont disposées dans chaque format de sortie, et dans la miniature.
Valeurs disponibles :
assembled: Les parties restent à l'endroit où le modèle source les avait placées.on_plate: Les parties sont posées à plat et réparties sur le plateau d'impression, prêtes à être tranchées — la même disposition que la vue On Plate de l'application web.
Dans les deux dispositions, un fragment effondré ou un point résiduel issu d'une coupe est supprimé avant l'export, de sorte que chaque partie obtenue est imprimable. Les formats qui prennent en charge les objets de scène contiennent un objet par partie ;
stlles fusionne en un seul solide.
- Name
- connectors
- Type
- boolean
- défaut false
- Description
Ajoute des connecteurs à tenon et mortaise à chaque coupe pour que les parties imprimées s'assemblent.
connectors = true- Name
- connector_type
- Type
- string
- défaut cube
- Description
La forme du connecteur à chaque surface de coupe.
Valeurs disponibles :
cube,cylinder.
- Name
- connector_size
- Type
- number
- défaut 0.5
- Description
Taille du connecteur par rapport à la surface de coupe.
Plage valide :
0.1à0.8.
- Name
- connector_height
- Type
- number
- défaut 0.1
- Description
Distance sur laquelle le connecteur dépasse de la surface de coupe, par rapport à cette surface.
Plage valide :
0.1à0.8.
Retours
La propriété result de la réponse contient l'id de la nouvelle tâche Auto Split créée.
Modes d'échec
- Name
400 - Bad Request- Description
La requête était inacceptable. Causes courantes :
- Prompt manquant :
promptest requis lorsquemodevautby_partsouby_color. - Le prompt ne décrit aucun découpage, ou trop de parties :
by_parts/by_coloraccepte de 1 à 10 pièces nommées. Une description qui demande de conserver le modèle en une seule pièce, ou qui nomme plus de 10 parties, est rejetée. Rien n'est facturé. - Tâche d'entrée non prise en charge :
input_task_iddoit référencer une tâche réussie d'un type pris en charge, générée avec Meshy 6 ou Meshy 7. - Aucune image de référence :
by_colornécessite une entrée générée à partir d'une image téléversée. - Connecteur hors plage :
connector_sizeouconnector_heightest en dehors de0.1à0.8.
- Prompt manquant :
- 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
404 - Not Found- Description
input_task_idn'existe pas ou n'appartient pas à votre compte.
- Name
429 - Too Many Requests- Description
Vous avez dépassé votre limite de débit. Les requêtes
by_partsetby_colorpartagent également une limite d'analyse de prompt de 12 requêtes par minute et par compte.
- Name
503 - Service Unavailable- Description
Le découpage basé sur un prompt (
by_partsetby_color) est temporairement indisponible. Réessayez plus tard, ou utilisezmode: "auto", qui n'est pas affecté. Rien n'est facturé.
Request
# Simple request: let Meshy choose the cuts
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Advanced request: name the parts, add connectors, export glb and obj
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"mode": "by_parts",
"prompt": "split into the figure and the base",
"target_formats": ["glb", "obj"],
"layout": "on_plate",
"connectors": true,
"connector_type": "cylinder",
"connector_size": 0.4
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Récupérer une tâche Auto Split
Ce point de terminaison récupère une tâche Auto Split à partir de son ID.
Paramètres
- Name
- id
- Type
- path
- Description
L'ID de la tâche Auto Split à récupérer.
Retourne
L'objet de la tâche Auto Split.
Request
curl https://api.meshy.ai/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
Supprimer une tâche Auto Split
Ce point de terminaison supprime définitivement une tâche Auto Split, 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'ID de la tâche Auto Split à supprimer.
Statut de la tâche
Une tâche qui est encore PENDING est supprimée et les crédits consommés
au moment de la création sont remboursés.
Une tâche déjà IN_PROGRESS ne peut pas être supprimée : la requête est
rejetée avec 409 Conflict et la tâche continue de s'exécuter. Les crédits
d'une tâche que le worker a déjà commencé à traiter ne sont pas
remboursables, donc la supprimer en cours d'exécution vous ferait perdre à
la fois les crédits et le résultat. Attendez qu'elle atteigne l'état
SUCCEEDED, FAILED ou CANCELED, puis supprimez-la.
Une tâche dans un état final (SUCCEEDED, FAILED ou CANCELED) est
supprimée sans remboursement.
Retours
Retourne 200 OK en cas de succès, ou 409 Conflict lorsque la tâche est
IN_PROGRESS.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/split/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."
}
List Auto Split Tasks
Ce point de terminaison vous permet de récupérer une liste de tâches Auto Split.
Paramètres
Attributs facultatifs
- Name
- page_num
- Type
- integer
- Description
Numéro de page pour la pagination. Commence et vaut par défaut
1.
- Name
- page_size
- Type
- integer
- Description
Limite de la taille de page. La valeur par défaut est
10éléments. Le maximum autorisé est de100éléments ; les valeurs plus élevées sont plafonnées à100.
- Name
- sort_by
- Type
- string
- Description
Champ à utiliser pour le tri. Valeurs disponibles :
+created_at: Trier par date de création par ordre croissant.-created_at: Trier par date de création par ordre décroissant.
Retours
Retourne une liste paginée de The Auto Split Task Objects.
Request
curl https://api.meshy.ai/openapi/v1/print/split?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
]
Stream an Auto Split Task
Ce point de terminaison diffuse les mises à jour en temps réel d'une tâche Auto Split à l'aide des Server-Sent Events (SSE).
Paramètres
- Name
- id
- Type
- path
- Description
Identifiant unique de la tâche Auto Split à diffuser.
Retours
Retourne un flux d'objets de tâche Auto Split sous forme de Server-Sent Events.
Chaque événement message transporte l'objet de tâche complet tel que renvoyé par Récupérer une tâche Auto Split, y compris consumed_credits, les horodatages et prompt_ignored ; tant que la tâche est PENDING ou IN_PROGRESS, les champs qui changent d'une trame à l'autre sont progress, status, started_at et preceding_tasks, et model_urls, thumbnail_url et part_count apparaissent une fois qu'elle atteint SUCCEEDED. Un événement error ne transporte que status_code et message, il faut donc distinguer selon le nom de l'événement avant de lire status.
Request
curl -N https://api.meshy.ai/openapi/v1/print/split/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 (other task fields omitted here for brevity;
// each frame is 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-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
L'objet de tâche Auto Split
Une tâche Auto Split ne comporte que les propriétés ci-dessous. Les champs de prompt de génération que les autres objets de tâche incluent (name, object_prompt, texture_prompt, etc.), le model_url unique, ainsi que texture_urls, ne sont jamais renseignés pour une tâche de découpe et ne sont pas renvoyés. Les propriétés qui se remplissent au fil de l'exécution de la tâche (thumbnail_url, model_urls, les horodatages) sont toujours présentes, vides jusqu'à ce qu'elles aient une valeur, de sorte que l'ensemble des clés ne change pas entre PENDING et SUCCEEDED.
- Name
- id
- Type
- string
- Description
Identifiant unique de la tâche. Bien que nous utilisions un UUID k-triable 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'id.
- Name
- type
- Type
- string
- Description
Type de la tâche. La valeur est
print-split.
- Name
- model_urls
- Type
- object
- Description
URLs téléchargeables vers le modèle découpé, une par format demandé. Les formats qui prennent en charge les objets de scène conservent chaque partie comme un objet distinct ;
stlles fusionne en un seul solide. La propriété d'un format sera omise si le format n'a pas été demandé.- Name
glb- Type
- string
- Description
URL téléchargeable vers le modèle découpé au format GLB.
- Name
obj- Type
- string
- Description
URL téléchargeable vers le modèle découpé au format OBJ.
- Name
fbx- Type
- string
- Description
URL téléchargeable vers le modèle découpé au format FBX.
- Name
stl- Type
- string
- Description
URL téléchargeable vers le modèle découpé au format STL. Toutes les parties sont fusionnées en un seul solide ; demandez
3mfpour des parties sélectionnables séparément.
- Name
usdz- Type
- string
- Description
URL téléchargeable vers le modèle découpé au format USDZ.
- Name
blend- Type
- string
- Description
URL téléchargeable vers le modèle découpé au format Blender.
- Name
3mf- Type
- string
- Description
URL téléchargeable vers le modèle découpé au format 3MF.
- Name
- thumbnail_url
- Type
- string
- Description
URL téléchargeable vers un aperçu rendu du modèle découpé, chaque partie étant d'une couleur distincte, selon le
layoutdemandé.
- Name
- prompt_ignored
- Type
- boolean
- Description
truelorsque lepromptd'une requêteby_partsouby_colorne nommait aucune partie, si bien que Meshy a effectué la découpe automatiquement à la place — les noms de parties dans le résultat sont ceux de Meshy, pas les vôtres. Présent dèsPENDING. Omis pour les tâchesautoet chaque fois que le prompt a été suivi.
- Name
- part_count
- Type
- integer
- Description
Nombre de parties imprimables produites par la découpe. Les formats qui prennent en charge les objets de scène comportent un objet par partie ;
stlles fusionne en un seul solide, et le nombre continue de refléter les parties. Les fragments réduits que la segmentation n'a pas pu transformer en une pièce imprimable sont supprimés des fichiers avant l'export et ne sont pas comptabilisés.
- Name
- progress
- Type
- integer
- Description
Progression de la tâche. Si la tâche n'a pas encore démarré, cette propriété vaudra
0. Une fois la tâche réussie, elle deviendra100.
- Name
- status
- Type
- string
- Description
Statut de la tâche. Les valeurs possibles sont l'une des suivantes :
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Le nombre de tâches précédentes.
La valeur de ce champ n'est significative que si le statut de la tâche est
PENDING.
- 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é vaudra
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é vaudra
0.
- Name
- task_error
- Type
- object
- Description
Détails d'erreur pour les tâches échouées. 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. Toujours présent :
10une fois la tâche acceptée, et0pour les tâchesFAILEDcar le montant est remboursé en cas d'échec. Supprimer une tâche alors qu'elle est encorePENDINGla rembourse également.
The Auto Split Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}