Salta al contenuto principale
← CutOptim Engine APIEngine API · già disponibile

API per il taglio di legname strutturale e travi

Sì, esiste un’API per tagliare a misura il legname strutturale. Tagliare travetti, puntoni, montanti, listelli e tavole a misura è un problema di cutting stock 1D con una regola in più che il taglio lineare semplice ignora: la sezione deve corrispondere. Un pezzo 50×150 non può uscire da una barra 50×100. La CutOptim Engine API lo risolve via HTTP su POST /v1/optimize/wood: il tuo gestionale, il software di preventivazione o quello del deposito legname invia in JSON la distinta di taglio e il materiale disponibile e riceve il piano di taglio ottimizzato, abbinato e risolto per sezione, con il numero di barre e la resa.

È una modalità a sé, non un involucro di /v1/optimize/1d: il taglio 1D lineare tratta ogni barra come intercambiabile, mentre il legno ha un’identità — la sezione deve corrispondere. Inviare N richieste 1D raggruppate costa N chiamate per un solo lavoro, sposta su di te l’abbinamento del materiale e dà un totale che non coincide con quello dell’app. Questo endpoint fa l’abbinamento e restituisce l’intero lavoro in una sola chiamata, per sezione e complessivo.

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 }
}
Usa una chiave demo pubblica — limitata, solo lavori piccoli, mai fatturata.
  • Già disponibile su POST /v1/optimize/wood — lo stesso motore dell’app, con riconoscimento della sezione.
  • Sezioni abbinate e risolte in modo indipendente: un pezzo 50×150 si taglia solo da materiale 50×150.
  • sections[] porta rods, totali e piano di taglio per sezione; unmatched riporta la domanda senza alcun materiale.
  • Deterministico e legato a una versione: riproduci un preventivo di taglio per una verifica o un ordine ripetuto.
  • Lo sfrido riportato è il residuo utilizzabile — il kerf che lo libera è già detratto (per barra).
  • Validazione gratuita: POST /v1/validate/wood controlla un lavoro senza chiave e senza quota.

Perché ne hanno bisogno falegnami e rivendite di legname

Il legname strutturale si compra in lunghezze elevate e si taglia in molti pezzi, e tagliare nell’ordine della lista lascia uno sfrido corto su quasi ogni lunghezza. Un ottimizzatore che conosce la sezione ridistribuisce i tagli all’interno di ciascuna sezione in modo che ognuna richieda il minor numero di lunghezze possibile. Dentro un flusso di preventivazione, gestionale o cassa, l’API lo fa su ogni commessa in automatico: una rivendita edile può calcolare e pianificare un servizio di taglio direttamente dall’ordine, e il piano si riconcilia con ciò che il deposito taglia davvero.

Abbinamento della sezione: la parte del problema che l’1D ignora

Ogni pezzo e ogni riga di materiale porta due lati di sezione, sw e sh, in qualsiasi ordine (50×150 e 150×50 sono la stessa barra girata). Il motore divide il lavoro per sezione, abbina ogni pezzo solo a materiale di sezione compatibile e risolve ogni sezione in modo indipendente. La risposta arriva come sections[], ciascuna con le proprie rods, i propri totali e il proprio piano di taglio, più le metriche complessive — e la domanda la cui sezione non ha alcun materiale viene riportata a parte in unmatched, distinta dai pezzi che avevano materiale e semplicemente non ci stavano, perché il rimedio è diverso.

Deterministico: riproducibile per preventivi e verifiche

La stessa richiesta restituisce sempre lo stesso piano di taglio: nessuna casualità, nessun orologio nell’algoritmo. Un preventivo di taglio costruito da una chiamata API si riproduce a distanza di mesi per una verifica o un ordine ripetuto, e i risultati si possono mettere in cache e confrontare nei test. Lo sfrido riportato su ogni barra è il residuo utilizzabile — il kerf che lo libera è già detratto — e ogni oggetto meta che allegi (un codice articolo, una riga d’ordine) torna su ogni taglio posizionato, così il piano si riconcilia con il tuo sistema.

Risorsa scaricabile
Scheda sintetica API taglio legno e travi

Una sintesi di due pagine (PDF in inglese): il problema, cosa invii e cosa ricevi, una richiesta e una risposta, e come costruire sul motore. Pronta da stampare, con un QR che rimanda a questa pagina.

PDF2 pagineGratis
Scarica il PDF

Domande frequenti

Esiste un’API per il taglio di legno o legname strutturale?
Sì. Tagliare a misura il legno — travetti, puntoni, montanti, listelli, tavole — con abbinamento della sezione è la modalità legno della CutOptim Engine API, POST /v1/optimize/wood. Invii in JSON la distinta di taglio e il materiale, ciascuno con due lati di sezione, e ricevi il piano di taglio ottimizzato, abbinato e risolto per sezione, con il numero di barre, la resa e gli sfridi utilizzabili. È lo stesso motore che gira nell’app, via HTTP.
Perché non usare semplicemente l’endpoint 1D per il legno?
Perché l’1D tratta ogni barra come intercambiabile, e il legno no: un pezzo 50×150 non può uscire da una barra 50×100. L’endpoint wood divide il lavoro per sezione, abbina ogni pezzo al materiale compatibile e risolve ogni sezione da sola, restituendo sia i totali per sezione sia quelli complessivi. Spezzare il lavoro in più chiamate 1D costerebbe una chiamata per sezione, sposterebbe su di te l’abbinamento del materiale e darebbe un totale che non coincide con l’app.
Cosa succede a un pezzo la cui sezione non è a magazzino?
Torna in una lista separata unmatched — domanda la cui sezione non ha alcun materiale — distinta da unplaced (pezzi che avevano materiale corrispondente e non ci stavano), perché il rimedio è diverso: nel primo caso “acquista o dichiara la sezione”, nel secondo “aggiungi lunghezza”. Un pezzo che non si riesce a collocare del tutto non è mai un errore: è una risposta 200 con i pezzi segnalati, così puoi agire sul piano. Puoi anche validare gratis su POST /v1/validate/wood, senza chiave e senza quota.
Tiene conto dello spessore della lama e della squadratura delle teste?
Sì. options.kerf è lo spessore della lama, detratto a ogni taglio; options.trim.start e options.trim.end riservano il taglio di squadratura a ciascuna estremità di una lunghezza. Lo sfrido riportato su ogni barra è il residuo utilizzabile dopo entrambi, e options.minOffcut riporta solo i residui abbastanza lunghi da tenere. Le stesse opzioni valgono per ogni sezione del lavoro.
Può pianificare solo con il legname che ho nel deposito?
Sì. Imposta options.respectStock e la quantità di ogni riga di materiale diventa un limite rigido, sezione per sezione. I pezzi che hanno materiale corrispondente ma non ci stanno tornano in unplaced, mentre quelli la cui sezione non è affatto a magazzino tornano in unmatched, così il piano ti dice se tagliare lunghezze maggiori o acquistare una sezione mancante.

Caso d’uso lavorazione del legno (app) · Benchmark