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

API de découpe de bois et de bois de charpente

Oui — il existe une API pour le débit de bois de charpente à longueur. Débiter à longueur des solives, chevrons, montants, liteaux et planches est un problème 1D de minimisation des chutes avec une règle supplémentaire que le débit linéaire simple ignore : la section doit correspondre. Une pièce de 50×150 ne peut pas sortir d’une barre de 50×100. La CutOptim Engine API le résout en HTTP sur POST /v1/optimize/wood — votre ERP, votre logiciel de chiffrage ou de négoce de bois envoie la liste de coupe et le stock disponible en JSON et récupère le plan de coupe optimisé, apparié et résolu par section, avec le nombre de barres et le rendement.

Il s’agit d’un mode à part entière, et non d’une surcouche de /v1/optimize/1d : le 1D linéaire traite chaque barre comme interchangeable, alors que le bois a une identité — la section doit correspondre. Envoyer à la place N requêtes 1D groupées coûte N appels pour un seul travail, reporte l’appariement du stock sur vous et donne un total qui ne concorde pas avec celui de l’application. Cet endpoint fait l’appariement et renvoie le travail entier en un seul appel, par section et pour l’ensemble.

POST /v1/optimize/wood
{
  "parts": [
    { "name": "Rafter", "sw": 50, "sh": 150, "length": 3200, "qty": 8 },
    { "name": "Noggin", "sw": 50, "sh": 100, "length": 600, "qty": 24,
      "meta": { "ref": "C24-50x100" } }
  ],
  "stock": [
    { "name": "C24 50x150", "sw": 50, "sh": 150, "length": 4800, "qty": 20, "price": 18.4 },
    { "name": "C24 50x100", "sw": 50, "sh": 100, "length": 4800, "qty": 30, "price": 12.5 }
  ],
  "options": { "kerf": 3 }
}
Utilise une clé de démo publique — limitée, petits travaux uniquement, jamais facturée.
  • Disponible dès aujourd’hui sur POST /v1/optimize/wood — le même moteur que l’application, avec correspondance de section.
  • Sections appariées et résolues indépendamment : une pièce de 50×150 n’est coupée que dans un stock de 50×150.
  • sections[] porte les barres, les totaux et le plan de coupe de chaque section ; unmatched signale la demande sans aucun stock.
  • Déterministe et à version figée — reproduisez un devis de découpe pour un audit ou une commande récurrente.
  • La chute indiquée est le reste utilisable — le trait de scie qui la libère est déjà déduit (barre par barre).
  • Validation gratuite : POST /v1/validate/wood contrôle un travail sans clé et sans quota.

Pourquoi les charpentiers et négociants en bois en ont besoin

Le bois de structure s’achète en grandes longueurs et se débite en de nombreuses pièces, et débiter dans l’ordre de la liste laisse une courte chute sur presque chaque longueur. Un optimiseur qui tient compte de la section répartit les coupes au sein de chaque section pour que chacune demande le moins de longueurs possible. Dans un flux de chiffrage, d’ERP ou de point de vente, l’API le fait automatiquement sur chaque travail — un négociant en matériaux peut chiffrer et planifier un service de découpe directement depuis la commande, et le plan se réconcilie avec ce que le dépôt coupe réellement.

Correspondance de section — la part du problème que le 1D laisse de côté

Chaque pièce et chaque ligne de stock porte deux côtés de section, sw et sh, dans n’importe quel ordre (50×150 et 150×50 forment la même barre retournée). Le moteur partitionne le travail par section, n’apparie chaque pièce qu’à un stock de section compatible et résout chaque section indépendamment. La réponse arrive sous forme de sections[], chacune avec ses propres barres, ses propres totaux et son propre plan de coupe, plus des métriques pour l’ensemble du travail — et la demande dont la section n’a aucun stock est signalée à part dans unmatched, distincte des pièces qui avaient du stock mais n’ont pas tenu, car la correction diffère.

Déterministe — reproductible pour les devis et les audits

La même requête renvoie toujours le même plan de coupe : aucun aléa, aucune horloge dans l’algorithme. Un devis de découpe établi à partir d’un appel d’API peut être reproduit des mois plus tard pour un audit ou une commande récurrente, et les résultats peuvent être mis en cache et comparés dans les tests. La chute indiquée sur chaque barre est le reste utilisable — le trait de scie qui la libère est déjà déduit — et tout objet meta que vous joignez (une référence article, une ligne de commande) revient sur chaque coupe placée pour que le plan se réconcilie avec votre système.

Ressource à télécharger
Fiche de synthèse : API de débit de bois de charpente

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 débit de bois ou de bois de charpente ?
Oui. Débiter à longueur du bois — solives, chevrons, montants, liteaux, planches — avec correspondance de section, c’est le mode bois de la CutOptim Engine API, POST /v1/optimize/wood. Vous envoyez la liste de coupe et le stock en JSON, chacun avec deux côtés de section, et recevez le plan de coupe apparié et résolu par section, avec le nombre de barres, le rendement et les chutes utilisables. C’est le même moteur que celui de l’application, en HTTP.
Pourquoi ne pas simplement utiliser l’endpoint 1D pour le bois ?
Parce que le 1D traite chaque barre comme interchangeable, ce qui n’est pas le cas du bois : une pièce de 50×150 ne peut pas sortir d’une barre de 50×100. L’endpoint bois partitionne le travail par section, apparie chaque pièce au stock compatible et résout chaque section séparément, en renvoyant des totaux par section comme pour l’ensemble. Éclater le travail en plusieurs appels 1D coûterait un appel par section, reporterait l’appariement du stock sur vous et donnerait un total qui ne concorde pas avec l’application.
Que devient une pièce dont la section n’est pas en stock ?
Elle revient dans une liste unmatched distincte — la demande dont la section n’a aucun stock — séparée de unplaced (les pièces qui avaient un stock correspondant et n’ont pas tenu), car la correction diffère : l’une est « acheter ou déclarer la section », l’autre « ajouter de la longueur ». Une pièce qui ne peut pas être entièrement placée n’est jamais une erreur ; c’est une réponse 200 qui liste les morceaux pour que vous puissiez agir sur le plan. Vous pouvez aussi valider gratuitement sur POST /v1/validate/wood, sans clé ni quota.
Peut-elle tenir compte de la largeur de lame et de l’équerrage des extrémités ?
Oui. options.kerf est la largeur de la lame de scie, déduite à chaque coupe ; options.trim.start et options.trim.end réservent la coupe d’équerrage à chaque extrémité d’une longueur. La chute indiquée sur chaque barre est le reste utilisable après les deux, et options.minOffcut ne signale que les restes assez longs pour être conservés. Les mêmes options s’appliquent à chaque section du travail.
Peut-elle planifier uniquement avec le bois de mon dépôt ?
Oui. Activez options.respectStock : la quantité de chaque ligne de stock devient une limite stricte, section par section. Les pièces qui ont un stock correspondant mais ne tiennent pas reviennent dans unplaced, tandis que celles dont la section n’est pas du tout en stock reviennent dans unmatched : le plan vous dit s’il faut prendre des longueurs plus grandes ou acheter une section manquante.

Cas d’usage menuiserie et travail du bois (application) · Benchmarks