Sari la conținutul principal
← CutOptim Engine APIEngine API · disponibil acum

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.

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 }
}
Folosește o cheie demo publică — limitată, doar lucrări mici, nu se facturează niciodată.
  • 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/wood verifică 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ă.

Resursă descărcabilă
Fișă informativă — API debitare cherestea

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ă.

PDF2 paginiGratuit
Descarcă PDF-ul

Întrebări frecvente

Există un API pentru debitarea cherestelei sau a lemnului de construcții?
Da. Debitarea la lungime a lemnului — grinzi, căpriori, montanți, șipci, scânduri — cu potrivirea secțiunii transversale este modul wood al CutOptim Engine API, 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?
Pentru că 1D tratează fiecare bară ca interschimbabilă, iar lemnul nu este așa: o piesă 50×150 nu poate fi tăiată dintr-o bară 50×100. Endpointul wood împarte lucrarea pe secțiuni transversale, potrivește fiecare piesă cu stoc compatibil și rezolvă fiecare secțiune separat, returnând totaluri atât pe secțiuni, cât și pe ansamblu. Descompunerea lucrării în mai multe apeluri 1D ar costa câte un apel pe secțiune, ar muta potrivirea stocului în sarcina dumneavoastră și ar produce un total care nu coincide cu cel din aplicație.
Ce se întâmplă cu o piesă a cărei secțiune nu există în stoc?
Ea revine într-o listă separată, unmatched — cererea a cărei secțiune nu are deloc stoc —, distinctă de unplaced (piese care au avut stoc potrivit și nu au încăput), pentru că remedierea diferă: una este „cumpărați sau declarați secțiunea”, cealaltă este „adăugați lungime”. O piesă care nu poate fi plasată integral nu este niciodată o eroare; este un răspuns 200 cu piesele raportate, astfel încât să se poată acționa pe baza planului. Puteți valida gratuit și la POST /v1/validate/wood, fără cheie și fără cotă.
Poate ține cont de grosimea lamei și de tăierea capetelor?
Da. 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?
Da. Setați 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