API pentru debitarea cherestelei și a lemnului de construcții
Da — există un API pentru debitarea la lungime a lemnului de construcții. Tăierea la lungime a grinzilor, căpriorilor, montanților, șipcilor și scândurilor este o problemă de tip 1D, cu o regulă în plus pe care tăierea liniară simplă o ignoră: secțiunea transversală trebuie să se potrivească. O piesă 50×150 nu poate fi tăiată dintr-o bară 50×100. CutOptim Engine API o rezolvă prin HTTP la POST /v1/optimize/wood — software-ul ERP, de ofertare sau al depozitului de cherestea trimite lista de debitare și stocul disponibil ca JSON și primește planul de tăiere optimizat, potrivit și rezolvat pe secțiuni transversale, cu numărul de bare și randamentul.
Este un mod distinct, nu un înveliș peste /v1/optimize/1d: tăierea liniară 1D tratează fiecare bară ca interschimbabilă, în timp ce lemnul are o identitate — secțiunea trebuie să se potrivească. Trimiterea a N cereri 1D grupate costă N apeluri pentru o singură lucrare, mută potrivirea stocului în sarcina dumneavoastră și produce un total care nu coincide cu cel afișat în aplicație. Acest endpoint face potrivirea și returnează întreaga lucrare într-un singur apel, pe secțiuni și pe ansamblu.
{
"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 }
}- Disponibil acum pe
POST /v1/optimize/wood— același motor ca în aplicație, cu potrivirea secțiunii transversale. - Secțiunile sunt potrivite și rezolvate independent: o piesă 50×150 se taie doar din stoc 50×150.
- sections[] conține barele, totalurile și planul de tăiere pe secțiune; unmatched raportă cererea fără stoc deloc.
- Determinist și cu versiune fixată — o ofertă de debitare poate fi reprodusă pentru un audit sau pentru o comandă repetată.
- Restul raportat este restul utilizabil — kerf-ul eliberat este deja scăzut (pe fiecare bară).
- Validare gratuită:
POST /v1/validate/woodverifică o lucrare fără cheie și fără cotă.
De ce au nevoie de el dulgherii și comercianții de cherestea
Lemnul de construcții se cumpără în lungimi mari și se taie în multe piese, iar debitarea în ordinea din listă lasă un rest scurt pe aproape fiecare bară. Un optimizator care ține cont de secțiunea transversală rearanjează tăieturile în interiorul fiecărei secțiuni, astfel încât fiecare să necesite cât mai puține bare. Într-un flux de ofertare, ERP sau punct de vânzare, API-ul face acest lucru automat la fiecare lucrare — un comerciant de materiale de construcții poate calcula prețul și planul unui serviciu de debitare direct din comandă, iar planul se reconciliază cu ce taie efectiv depozitul.
Potrivirea secțiunii transversale — partea pe care 1D o ignoră
Fiecare piesă și fiecare rând de stoc poartă două laturi ale secțiunii, sw și sh, în orice ordine (50×150 și 150×50 sunt aceeași bară întoarsă pe cealaltă parte). Motorul împarte lucrarea pe secțiuni transversale, potrivește fiecare piesă doar cu stoc de secțiune compatibilă și rezolvă fiecare secțiune independent. Răspunsul vine ca sections[], fiecare cu propriile bare, propriile totaluri și propriul plan de tăiere, plus metrici la nivel de lucrare — iar cererea a cărei secțiune nu are deloc stoc este raportată separat în unmatched, distinct de piesele care au avut stoc și pur și simplu nu au încăput, pentru că remedierea diferă.
Determinist — reproductibil pentru oferte și audituri
Aceeași cerere returnează întotdeauna același plan de tăiere: fără aleatoriu, fără ceas în algoritm. O ofertă de debitare construită dintr-un apel API poate fi reprodusă după luni de zile pentru un audit sau pentru o comandă repetată, iar rezultatele pot fi păstrate în cache și comparate în teste. Restul raportat pe fiecare bară este partea utilizabilă — kerf-ul eliberat este deja scăzut — iar orice obiect meta atașat (un număr de articol, o linie de comandă) revine pe fiecare tăietură plasată, astfel încât planul se reconciliază cu sistemul dumneavoastră.
Un rezumat de două pagini (PDF în limba engleză) — problema, ce se trimite și ce se primește, o cerere și un răspuns, precum și cum se construiește pe motor. Gata de tipărit, cu un cod QR către această pagină.
Întrebări frecvente
Există un API pentru debitarea cherestelei sau a lemnului de construcții?
POST /v1/optimize/wood. Trimiteți lista de debitare și stocul ca JSON, fiecare cu două laturi ale secțiunii, și primiți planul de tăiere optimizat, potrivit și rezolvat pe secțiuni, cu numărul de bare, randamentul și resturile utilizabile. Este același motor care rulează aplicația, prin HTTP.De ce să nu folosesc pur și simplu endpointul 1D pentru lemn?
Ce se întâmplă cu o piesă a cărei secțiune nu există în stoc?
POST /v1/validate/wood, fără cheie și fără cotă.Poate ține cont de grosimea lamei și de tăierea capetelor?
options.kerf este grosimea lamei de ferăstrău, scăzută la fiecare tăietură; options.trim.start și options.trim.end rezervă tăietura de prindere la fiecare capăt al unei lungimi. Restul raportat pe fiecare bară este partea utilizabilă după ambele, iar options.minOffcut raportează doar resturile suficient de lungi pentru a fi păstrate. Aceleași opțiuni se aplică fiecărei secțiuni transversale din lucrare.Poate planifica doar cu lemnul din depozitul meu?
options.respectStock și cantitatea fiecărui rând de stoc devine o limită strictă, secțiune cu secțiune. Piesele care au stoc potrivit, dar nu încap, revin în unplaced, în timp ce piesele a căror secțiune nu există deloc în stoc revin în unmatched, astfel încât planul arată dacă trebuie tăiate lungimi mai mari sau cumpărată o secțiune lipsă.Prelucrarea lemnului — caz de utilizare (aplicație) · Benchmarkuri