Aller au contenu principal
← CutOptim Engine APIEngine API · nesting · disponible dès aujourd’hui

API de nesting pour la découpe laser

Oui — il existe une API pour le nesting de découpe laser. Découper des pièces irrégulières au laser est un problème de nesting à forme réelle : une pièce est un polygone quelconque, pas un rectangle, et les pièces s’imbriquent dans les poches concaves les unes des autres. La CutOptim Engine API le résout en HTTP sur POST /v1/optimize/nest — votre logiciel de FAO, d’ERP ou de devis envoie les contours des pièces et les feuilles de stock en JSON et récupère la disposition imbriquée, le placement de chaque pièce et le nombre de feuilles.

Disponible dès aujourd’hui. Le nesting est une classe d’algorithme différente du placeur guillotine rectangulaire — un moteur de collision géométrique (jagua-rs) qui tourne en production derrière POST /v1/optimize/nest — il renvoie donc un nesting à forme réelle, et non un plan de coupe rectangulaire.

Tous les formats, moteurs, limites et exemples de code pour les développeurs : API d’imbrication (nesting) CutOptim

POST /v1/optimize/nest
{
  "parts": [
    { "name": "bracket",
      "polygon": [[0,0],[300,0],[300,100],[100,100],[100,300],[0,300]],
      "qty": 12, "allowedRotations": "continuous" },
    { "name": "gusset",
      "polygon": [[0,0],[280,0],[140,240]],
      "qty": 8, "allowedRotations": [0,90,180,270] }
  ],
  "stock": [{ "w": 3000, "h": 1500, "qty": 20 }],
  "options": { "minSeparation": 0.3, "edgeClearance": 5 }
}

Le nesting n'est pas inclus dans la démo publique — exécutez cet exemple avec une clé de test gratuite. Créer une clé de test gratuite

  • Disponible dès aujourd’hui sur POST /v1/optimize/nest — pièces polygonales quelconques (avec trous), pas seulement des rectangles.
  • Des zones d’exclusion par feuille écartent les pièces d’un défaut, de l’empreinte d’une bride ou d’une zone préimprimée (stock[].exclusions).
  • Rotation continue ou discrète, minSeparation pour l’espacement entre pièces et edgeClearance pour le bord de la feuille.
  • Longueur de coupe et nombre de perçages par feuille, plus feuilles et prix par taille de feuille (stockUsage) — plusieurs tailles de feuille peuvent être mélangées quand c’est moins cher.
  • Sur un travail représentatif de 272 pièces, le nesting a utilisé 6 feuilles là où les mêmes pièces par rectangle englobant en exigent 9 — la métrique honnête est le nombre de feuilles, pas un pourcentage de remplissage.
  • Déterministe : un seed figé fait renvoyer le même nesting à la même requête, pour les devis et les audits.
  • Validation gratuite : POST /v1/validate/nest contrôle un travail sans clé et sans quota.

Pourquoi les ateliers laser ont besoin du nesting à forme réelle

Un placeur rectangulaire compte le rectangle englobant de chaque pièce comme plein : l’air des échancrures d’une équerre en L ou d’un gousset triangulaire est donc perdu. Le nesting à forme réelle imbrique les contours réels et récupère cet air. Sur un travail représentatif de 272 pièces, le nesting a utilisé 6 feuilles là où les mêmes pièces placées par rectangle englobant en exigent 9 — la métrique honnête est le nombre de feuilles sur les mêmes pièces, et non un pourcentage de remplissage (un rectangle englobant affiche un remplissage plus élevé pour un résultat moins bon).

Ce que vous envoyez et ce que vous recevez

Envoyez chaque pièce sous forme de contour polygonal (avec trous intérieurs facultatifs) et une quantité, plus les feuilles de stock. La réponse donne le placement de chaque exemplaire sous forme de transformation rigide — une rotation en degrés, puis une translation x/y — et non un polygone réémis : faites tourner votre contour d’entrée et ajoutez le décalage pour reconstruire exactement le placement. Elle renvoie aussi le nombre de feuilles, la densité par feuille et globale, et les pièces qui n’ont pas tenu — et, pour chaque feuille, la ligne de stock dont elle provient, la longueur de coupe (le contour que suit le faisceau, contours extérieurs et trous) et le nombre de perçages, avec stockUsage qui totalise les feuilles et le prix par taille de feuille. Si vous donnez plusieurs tailles de feuille, le nesting les compare — par surface de feuille, ou par prix avec minimizeCost — et peut les mélanger quand c’est moins cher, par exemple en passant une dernière feuille à moitié vide à une taille plus petite. Demandez include:["svg","dxf"] et la disposition obtenue revient sous forme de fichier directement dans la réponse.

Zones d’exclusion et rotation continue

Deux choses qu’une API rectangulaire ne sait pas exprimer viennent avec le moteur de nesting. Des zones d’exclusion par feuille (stock[].exclusions) écartent toute pièce d’un défaut, de l’empreinte d’une bride ou d’une zone préimprimée — une zone de qualité 0 est une région strictement interdite. La rotation peut être continue (n’importe quel angle) ou une liste discrète ; options.minSeparation fixe l’espacement entre pièces (la largeur du faisceau) et options.edgeClearance la distance au bord de la feuille, les deux pouvant différer. La disposition est déterministe : définissez options.seed et la même requête renvoie le même nesting.

Instantané pour le devis, max pour la commande

POST /v1/optimize/nest répond de façon synchrone avec le moteur lbf — déterministe et dans la requête, assez rapide pour chiffrer un travail pendant que le client attend. Quand le travail part sur la machine, envoyez le même corps avec engine: "max" et interrogez GET /v1/jobs/{id} : il exécute d’abord lbf, puis consacre un budget de temps que vous fixez (options.timeBudgetMs) à chercher une disposition avec moins de feuilles, et n’en renvoie jamais davantage. La réponse a la même structure dans les deux cas ; une feuille avec zones d’exclusion reste servie par lbf à l’intérieur de ce travail, avec un avertissement.

Ressource à télécharger
Fiche de synthèse : API de nesting pour découpe laser

Un résumé de deux pages (PDF en anglais) — le problème, ce que vous envoyez et recevez, une requête et une réponse, et comment construire sur le moteur. Prêt à imprimer, avec un QR code vers cette page.

PDF2 pagesGratuit
Télécharger le PDF

Questions fréquentes

Existe-t-il une API pour le nesting de découpe laser ?
Oui. Le nesting à forme réelle de polygones irréguliers est le quatrième mode de la CutOptim Engine API, POST /v1/optimize/nest. Vous envoyez chaque pièce comme contour polygonal (avec trous facultatifs) plus les feuilles de stock, et recevez la disposition imbriquée, le placement de chaque exemplaire et le nombre de feuilles. C’est un moteur de collision géométrique, une classe d’algorithme différente du placeur guillotine rectangulaire, et il tourne en production dès aujourd’hui.
En quoi le nesting à forme réelle diffère-t-il du placement rectangulaire ?
Un placeur rectangulaire place des rectangles englobants : l’air vide à l’intérieur d’une pièce irrégulière est donc perdu ; le nesting à forme réelle imbrique les contours réels dans les poches concaves les uns des autres. La métrique comparable est le nombre de feuilles sur les mêmes pièces — sur un travail représentatif de 272 pièces, le nesting a utilisé 6 feuilles contre 9 par rectangle englobant. Un pourcentage de densité n’est PAS comparable entre les deux, car un placeur par rectangle englobant compte l’air des échancrures comme plein et affiche une densité plus élevée pour un résultat moins bon.
Peut-elle éviter une zone abîmée ou l’empreinte d’une bride sur la feuille ?
Oui. Chaque feuille de stock peut porter des zones d’exclusion (stock[].exclusions) — des polygones dont le moteur écarte les pièces. Une zone de qualité 0 est une région strictement interdite à toute pièce : vous pouvez donc imbriquer autour d’un défaut, de l’empreinte d’une bride ou d’une zone préimprimée. Une API rectangulaire ne sait pas exprimer cela.
Puis-je valider une requête gratuitement pendant l’intégration ?
Oui. POST /v1/validate/nest valide le schéma du même corps que l’endpoint de nesting sans le résoudre — gratuit, sans clé API, sans quota — pour que votre équipe confirme qu’une charge utile est bien formée pendant l’intégration. L’Engine API elle-même dispose d’un essai de 14 jours.
Renvoie-t-elle la longueur de coupe et le nombre de perçages ?
Oui. Chaque feuille porte cutLength — le périmètre cumulé des contours et des trous de ses pièces placées, dans votre unité — et pierces, un par contour fermé ; metrics totalise les deux. C’est la longueur géométrique du contour : la coupe à ligne commune, les entrées de coupe et les micro-jonctions n’y figurent pas, car la FAO de votre machine les ajoute — c’est donc une base solide pour le temps machine et le gaz, plutôt que le parcours d’outil final.
Mon système de devis peut-il ne facturer que la partie utilisée d’une feuille ?
L’API lui fournit les chiffres ; la règle de facturation reste la vôtre. Chaque feuille porte usedWidth et usedHeight — le point le plus éloigné que ses pièces placées atteignent depuis l’origine de la feuille, dans votre unité — et usedArea, leur produit (stockUsage la totalise par taille de feuille). Une coupe horizontale vaut usedHeight × la largeur de la feuille, une coupe verticale usedWidth × la hauteur de la feuille, un rectangle englobant usedArea. Les deux moteurs compactent aussi par défaut la feuille la moins remplie vers ce coin, en essayant des sous-ensembles de rotations parmi celles que chaque pièce autorise et jamais un nouvel angle, sans changer le nombre de feuilles, le prix ni les pièces placées ; options.compact: false le désactive. Si vous facturez une bande plutôt que le rectangle, options.compactFor: "horizontal" conserve la hauteur utilisée la plus basse et "vertical" la plus petite largeur utilisée. La taille de la surface utilisée dépend des pièces.

Cas d’usage chaudronnerie et tôlerie (application) · Benchmarks