API za rezanje drva i konstrukcijske građe
Da — postoji API za rezanje konstrukcijske građe po duljini. Rezanje greda, rogova, stupova, letvi i dasaka po duljini jest 1D problem rezanja zalihe s jednim dodatnim pravilom koje obično linearno rezanje zanemaruje: poprečni presjek mora odgovarati. Dio 50×150 ne može se izrezati iz šipke 50×100. CutOptim Engine API rješava to putem HTTP-a na POST /v1/optimize/wood — vaš ERP, softver za ponude ili skladište građe šalje popis rezanja i raspoloživu zalihu kao JSON i dobiva optimiziran plan rezanja, uparen i riješen po poprečnom presjeku, s brojem šipki i iskoristivošću.
Ovo je zaseban način rada, a ne omotač oko /v1/optimize/1d: obično 1D rezanje svaku šipku smatra zamjenjivom, dok građa ima identitet — presjek se mora podudarati. Slanje N grupiranih 1D zahtjeva umjesto toga košta N poziva za jedan posao, prebacuje upravljanje zalihom na vas i daje ukupnu vrijednost koja se ne slaže s onom u aplikaciji. Ova krajnja točka obavlja podudaranje i vraća cijeli posao u jednom pozivu, po presjeku i za posao u cjelini.
{
"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 }
}- Dostupno danas na
POST /v1/optimize/wood— isti motor kao u aplikaciji, svjestan poprečnog presjeka. - Presjeci se uparuju i rješavaju neovisno: dio 50×150 reže se samo iz zalihe 50×150.
- sections[] nosi šipke, zbrojeve i plan rezanja po presjeku; unmatched prijavljuje potražnju koja uopće nema zalihe.
- Deterministički i vezano uz verziju — ponovite ponudu za rezanje za reviziju ili ponovljenu narudžbu.
- Prijavljeni ostatak jest iskoristiv ostatak — širina reza već je oduzeta (po šipki).
- Besplatna validacija:
POST /v1/validate/woodprovjerava posao bez ključa i bez kvote.
Zašto ga trebaju stolari i trgovci građom
Konstrukcijska građa kupuje se u dugim duljinama i reže na mnogo dijelova, a rezanje redoslijedom s popisa ostavlja kratak ostatak na gotovo svakoj duljini. Optimizator koji poznaje poprečni presjek preraspodjeljuje rezove unutar svakog presjeka kako bi svaki trebao što manje duljina. Unutar tijeka izrade ponuda, ERP-a ili prodajnog mjesta API to radi automatski na svakom poslu — trgovac građevinskim materijalom može izravno iz narudžbe izračunati cijenu i isplanirati uslugu rezanja, a plan se slaže s onim što skladište stvarno reže.
Podudaranje poprečnog presjeka — dio problema koji 1D izostavlja
Svaki dio i svaki redak zalihe nosi dvije stranice poprečnog presjeka, sw i sh, bilo kojim redoslijedom (50×150 i 150×50 ista su greda okrenuta na drugu stranu). Motor dijeli posao po poprečnom presjeku, svaki dio uparuje samo sa zalihom kompatibilnog presjeka i svaki presjek rješava neovisno. Odgovor stiže kao sections[], svaki sa svojim šipkama, svojim zbrojevima i svojim planom rezanja, uz metrike za posao u cjelini — a potražnja čiji presjek uopće nema zalihe prijavljuje se zasebno u unmatched, odvojeno od dijelova koji su imali zalihu pa jednostavno nisu stali, jer je rješenje drukčije.
Deterministički — ponovljivo za ponude i revizije
Isti zahtjev uvijek vraća isti plan rezanja: bez slučajnosti, bez sata u algoritmu. Ponuda za rezanje izrađena iz API poziva može se mjesecima poslije ponoviti za reviziju ili ponovljenu narudžbu, a rezultate možete predmemorirati i uspoređivati u testovima. Prijavljeni ostatak na svakoj šipki iskoristiv je ostatak — širina reza već je oduzeta — a svaki meta objekt koji priložite (broj artikla, redak narudžbe) vraća se uz svaki postavljeni rez, pa se plan usklađuje s vašim sustavom.
Sažetak na dvije stranice (PDF na engleskom) — problem, što šaljete i što dobivate natrag, zahtjev i odgovor te kako graditi na motoru. Spreman za ispis, s QR kodom koji vodi na ovu stranicu.
Česta pitanja
Postoji li API za rezanje drva ili konstrukcijske građe?
POST /v1/optimize/wood. Pošaljete popis rezanja i zalihu kao JSON, svaki s dvije stranice poprečnog presjeka, a dobijete optimiziran plan rezanja uparen i riješen po presjeku, s brojem šipki, iskoristivošću i iskoristivim ostacima. To je isti motor koji pokreće aplikaciju, putem HTTP-a.Zašto za građu jednostavno ne koristiti 1D krajnju točku?
Što se događa s dijelom čijeg presjeka nema na zalihi?
POST /v1/validate/wood, bez ključa i bez kvote.Uzima li u obzir širinu lista pile i ravnanje krajeva?
options.kerf je širina lista pile, oduzima se pri svakom rezu; options.trim.start i options.trim.end rezerviraju rez za ravnanje na svakom kraju duljine. Ostatak prijavljen na svakoj šipki iskoristiv je ostatak nakon oba, a options.minOffcut prijavljuje samo ostatke dovoljno dugačke da se zadrže. Iste opcije vrijede za svaki poprečni presjek u poslu.Može li planirati samo s građom koju imam u skladištu?
options.respectStock i količina svakog retka zalihe postaje čvrsto ograničenje, presjek po presjek. Dijelovi koji imaju odgovarajuću zalihu, a ne stanu, vraćaju se u unplaced, dok se dijelovi čijeg presjeka uopće nema na zalihi vraćaju u unmatched, pa plan govori treba li rezati dulje duljine ili kupiti presjek koji nedostaje.