CutOptim Engine API
Un moteur d'optimisation de découpe déterministe, appelable en HTTP : la même requête renvoie toujours le même plan de découpe — vous pouvez donc l'auditer, en tirer un devis, régler un litige avec lui, et relancer la commande de l'an dernier pour retrouver le plan de l'an dernier. C'est le même moteur que celui de CutOptim, sur les trois modes rectangulaires (panneaux 2D, 1D linéaire et bois avec correspondance de section), plus l'imbrication à forme réelle pour les pièces polygonales irrégulières — POST /v1/optimize/nest, pour le laser, le plasma et le jet d'eau. Envoyez les pièces et le stock, récupérez la disposition complète, le plan de découpe et l'utilisation — prêt à intégrer dans un ERP, un outil de devis ou le logiciel propre à une machine.
Voir le benchmark complet → · Mesuré, pas revendiqué
Pourquoi construire dessus
Une même entrée renvoie toujours le même résultat — aucun aléatoire, aucune horloge dans l'algorithme. Vous pouvez mettre les résultats en cache et les comparer dans vos tests.
Pas seulement des rectangles : la séquence de coupes guillotine, les lignes de coupe face aux passes de scie, la longueur sciée, et un indicateur qui dit si le plan est réalisable sur une scie à panneaux.
Trait de scie, délignage par côté, tolérance, mode coût, groupes de grain, nombre maximal de phases de coupe, minimisation des rotations — les mêmes options que celles de l'application.
Ce que fait l'API
Un appel pour chacun : panneaux 2D, barres 1D, bois avec correspondance de section, et imbrication à forme réelle de polygones irréguliers — POST /v1/optimize/2d, /1d, /wood et /nest.
POST /v1/optimize/nest place des polygones arbitraires (avec trous) sur des feuilles fixes, en imbriquant les pièces dans les poches concaves les unes des autres — 6 feuilles là où les mêmes pièces en rectangle englobant en exigent 9. Pour le laser, le plasma et le jet d'eau. Avec, en prime, des zones d'exclusion par feuille (un défaut, une bride).
Étiquetez les pièces et le stock avec un material et l'optimiseur partitionne le travail : chaque material n'est découpé que dans son propre stock. Sur chaque mode ; un récapitulatif par material est renvoyé.
Nommez un type de chant par arête (2D) et la réponse totalise les mètres linéaires par type — par pièce et par commande. Métadonnée : cela ne déplace jamais une pièce.
Demandez include:["svg","csv","dxf"] et la réponse porte la disposition sous forme de fichier prêt à l'emploi, en ligne — un dessin SVG 2D autonome, un DXF R12/AC1009 ou une liste de coupe CSV. Aucun stockage, aucun second appel.
Attachez un objet meta — votre numéro d'article ERP, un identifiant de ligne de commande, une référence client — à toute pièce ou ligne de stock, et il revient à l'identique sur chaque pièce placée et chaque panneau/barre, pour que le plan se réconcilie avec votre système.
POST /v1/validate/{2d,1d,wood} valide le schéma du même corps sans le résoudre — sans clé, sans quota. Vérifiez qu'une charge utile ne sera pas rejetée et obtenez des avertissements de faisabilité avant de dépenser un appel.
minimizeCost classe selon la facture totale la plus basse sur les formats de stock tarifés, en les mélangeant ; par défaut, c'est le matériau qui est minimisé. Les deux exécutent le même algorithme guillotine.
Marquez le stock à épuiser en premier, traitez les quantités comme un plafond strict avec respectStock, et signalez les pièces à découper impérativement, qui gagnent la place sur la plaque quand le matériau manque.
Pas seulement des rectangles : la séquence de coupes guillotine avec les positions de butée par étape, les lignes de coupe face aux passes de scie, la longueur sciée, et un indicateur de faisabilité sur scie à panneaux.
kerf, délignage par côté, tolérance, grain groups, maxCutStages et minimisation des rotations — les mêmes options que celles de l'application.
Une même entrée renvoie toujours le même résultat — mettez-le en cache et comparez-le. Une version de moteur épinglable et un document OpenAPI 3.1 décrivent tout le contrat.
Envoyez un SVG ou un DXF au lieu de coordonnées : parts[].source lit le contour et ses trous dans le dessin, et POST /v1/import/nest découpe d'abord un fichier multi-pièces. Rien n'est conservé — le fichier est analysé en mémoire et disparaît avec la réponse.
Quel moteur sert quel mode
L'endpoint que vous appelez en POST choisit le mode ; le paramètre engine choisit l'algorithme. Le moteur heuristic par défaut sert le 2D, le 1D et le bois ; balanced et le moteur asynchrone max sont réservés au 2D ; et l'imbrication à forme réelle tourne sur son propre moteur lbf. Le même moteur que l'application, en HTTP.
- heuristic — Le moteur par défaut — un packer guillotine multi-stratégies. Rendement maximal, chaque disposition est sciable, et il renvoie toujours un plan de découpe. Il sert le 2D, le 1D et le bois.
- balanced — Un free-nester MaxRects en option pour le 2D. Bien plus rapide sur les très gros travaux pour un rendement légèrement moindre, mais ses dispositions ne peuvent souvent pas être sciées de bord à bord, elles ne portent donc aucun plan de découpe.
- max — Une recherche arborescente asynchrone pour le 2D. Elle atteint l'optimum prouvé sur bien plus de travaux, en quelques secondes à une minute par résolution — vous soumettez le travail et interrogez GET /v1/jobs/{id} pour le résultat. Toujours déterministe et sciable.
- lbf — Le moteur d'imbrication à forme réelle. Il imbrique des polygones irréguliers dans les poches les uns des autres pour le laser, le plasma et le jet d'eau ; une version sparrow à plus haute densité est prévue.
Quel endpoint pour quel matériau : les panneaux plats — contreplaqué, MDF, verre, acrylique, tôle — vont vers /v1/optimize/2d ; les barres, tubes, tuyaux et profilés vers /v1/optimize/1d ; le bois de structure (un 50×150 uniquement depuis un 50×150) vers /v1/optimize/wood ; les polygones irréguliers pour le laser, le plasma et le jet d'eau vers /v1/optimize/nest.
Un appel, un plan complet
curl https://api.cutoptim.com/v1/optimize/2d \
-H "Authorization: Bearer co_live_…" \
-H "Content-Type: application/json" \
-d '{
"parts": [
{ "name": "Door", "w": 600, "h": 400, "qty": 4 },
{ "name": "Shelf", "w": 800, "h": 300, "qty": 6 }
],
"stock": [{ "w": 2440, "h": 1220, "price": 42 }],
"options": { "kerf": 3, "effort": "balanced" },
"engine": "heuristic"
}'Réponse renvoyée :
{
"metrics": { "sheetCount": 1, "yieldPct": 80.62, "placed": 10, "total": 10,
"cutLines": 10, "sawPasses": 13, "cutLength": 10720, "totalPrice": 42 },
"sheets": [ … ],
"cutPlan": [{ "sheet": 0, "step": 1, "axis": "h", "pos": 400, "length": 2440, "stage": 1 }, … ],
"guillotineValid": true,
"engineVersion": "1.0.0+10e0c941",
"deterministic": true
}Structure complète de la requête et de la réponse, toutes les options, tous les codes d'erreur et les trois moteurs :Documentation de l'API →
Fast ou dense ? Choisissez avec une seule option
L'option effort arbitre entre le temps de calcul et l'utilisation. Voici ce compromis, mesuré sur un travail exigeant — chaque chiffre provient du vrai packer.
Et c'est rapide dans tous les cas : même les plus gros travaux de production — 2 000 pièces et plus — se résolvent en quelques secondes avec le moteur par défaut, largement dans le budget de temps de l'API.
Tarifs
Volumes plus importants. 10,000 requêtes par mois correspondent à l'offre standard, ce n'est pas un plafond de ce que nous pouvons faire tourner. S'il vous faut davantage — un volume plus élevé, des clés distinctes pour la préproduction et la production, ou un accord dédié —, indiquez-nous vos chiffres et nous tarifons au cas par cas. Indiquez-nous votre volume →
Les offres CutOptim habituelles (Gratuit / Pro / Atelier) n'ont aucun lien avec l'API — l'optimiseur intégré à l'application y reste inclus. Voir les tarifs de l'application →
Solutions by industry
The same engine, positioned for the way one trade cuts. Each page shows the endpoint, a request and a response, and the fields that matter for that material.
1D cut-to-length for tube, pipe and hollow section. POST /v1/optimize/1d
1D cut-to-length for steel and aluminium profile, bar and section, with cost mode. POST /v1/optimize/1d
2D guillotine, zero-kerf score-and-snap for float, tempered and mirror glass. POST /v1/optimize/2d
1D cut-to-length for structural timber with cross-section matching. POST /v1/optimize/wood
True-shape nesting of irregular polygons, with exclusion zones. POST /v1/optimize/nest
True-shape nesting onto plate for laser, plasma or waterjet. POST /v1/optimize/nest
Bar bending schedule optimization for reinforcement steel. · design partners wanted
The why, what and how of the CutOptim Engine API on two pages — the three modes, a request and response, determinism and pricing. Print-ready, with a QR back to this page.