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.
{
"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 }
}- 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/woodcontrô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.
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.
Questions fréquentes
Existe-t-il une API pour le débit de bois ou de bois de charpente ?
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 ?
Que devient une pièce dont la section n’est pas en stock ?
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 ?
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 ?
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