Přejít na hlavní obsah
← CutOptim Engine APIEngine API · funguje už dnes

API pro řezání dřeva a konstrukčního řeziva

Ano — API pro řezání konstrukčního dřeva na délku existuje. Dělení trámů, krokví, sloupků, latí a prken na délku je 1D úloha dělení tyčového materiálu s jedním pravidlem navíc, které prosté lineární řezání ignoruje: průřez se musí shodovat. Díl 50×150 nelze vyřezat z tyče 50×100. CutOptim Engine API to řeší přes HTTP na POST /v1/optimize/wood — váš ERP, kalkulační software nebo software řezivářského skladu pošle seznam řezů a dostupný materiál jako JSON a dostane zpět optimalizovaný plán řezání, přiřazený a vyřešený po jednotlivých průřezech, s počtem tyčí a využitím.

Je to samostatný režim, ne obal nad /v1/optimize/1d: lineární 1D bere každou tyč jako zaměnitelnou, kdežto dřevo má identitu — průřez se musí shodovat. Poslat místo toho N seskupených 1D požadavků stojí N volání na jednu zakázku, přenese přiřazování materiálu na vás a vrátí součet, který se neshoduje s tím, co ukazuje aplikace. Tento endpoint přiřazení provede a vrátí celou zakázku jedním voláním, po průřezech i za celek.

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 }
}
Používá veřejný demo klíč — s limitem, jen malé úlohy, nikdy se neúčtuje.
  • Funguje už dnes na POST /v1/optimize/wood — stejný engine jako aplikace, s ohledem na průřez.
  • Průřezy se přiřazují a řeší nezávisle: díl 50×150 se řeže jen z materiálu 50×150.
  • sections[] nese tyče, součty a plán řezání za každý průřez; unmatched hlásí poptávku, pro kterou není žádný materiál.
  • Deterministické a s připnutou verzí — nabídku na řezání lze zopakovat kvůli auditu nebo opakované zakázce.
  • Hlášený zbytek je použitelný zůstatek — šířka řezu, která ho uvolňuje, je už odečtena (u každé tyče).
  • Validace zdarma: POST /v1/validate/wood zkontroluje zakázku bez klíče a bez kvóty.

Proč to potřebují tesaři a obchodníci se dřevem

Konstrukční dřevo se nakupuje v dlouhých délkách a řeže se na mnoho dílů a řezání v pořadí seznamu nechá krátký odřezek téměř na každé délce. Optimalizátor, který zná průřez, přeskládá řezy uvnitř každého průřezu, aby každý potřeboval co nejméně délek. V kalkulačním, ERP nebo pokladním procesu to API dělá u každé zakázky automaticky — stavebniny mohou službu řezání nacenit a naplánovat rovnou z objednávky a plán sedí s tím, co sklad skutečně nařeže.

Přiřazení průřezu — část úlohy, kterou 1D zahazuje

Každý díl i každý řádek zásoby nese dvě strany průřezu, sw a sh, v libovolném pořadí (50×150 a 150×50 je tentýž hranol otočený). Engine rozdělí zakázku podle průřezu, každý díl přiřadí jen k materiálu odpovídajícího průřezu a každý průřez řeší nezávisle. Odpověď přijde jako sections[], každá s vlastními tyčemi, vlastními součty a vlastním plánem řezání, plus metriky za celou zakázku — a poptávka, jejíž průřez nemá žádný materiál, se hlásí zvlášť v unmatched, odděleně od dílů, které materiál měly a prostě se nevešly, protože náprava je jiná.

Deterministické — reprodukovatelné pro nabídky a audity

Stejný požadavek vrací vždy stejný plán řezání: žádná náhoda, žádné hodiny v algoritmu. Nabídku na řezání sestavenou z volání API lze po měsících zopakovat kvůli auditu nebo opakované zakázce a výsledky lze cachovat a v testech porovnávat. Zbytek hlášený u každé tyče je použitelný zůstatek — šířka řezu je už odečtena — a každý objekt meta, který připojíte (číslo artiklu, řádek zakázky), se vrátí u každého umístěného řezu, takže plán sedí s vaším systémem.

Materiál ke stažení
API pro řezání dřeva — jednostránkový přehled

Dvoustránkové shrnutí (PDF v angličtině) — problém, co posíláte a co dostanete zpět, ukázka požadavku a odpovědi a jak na jádru stavět. Připraveno k tisku, s QR kódem zpět na tuto stránku.

PDF2 stranyZdarma
Stáhnout PDF

Časté dotazy

Existuje API pro řezání dřeva nebo konstrukčního řeziva?
Ano. Řezání dřeva — trámů, krokví, sloupků, latí, prken — na délku s přiřazením průřezu je režim wood v CutOptim Engine API, POST /v1/optimize/wood. Pošlete seznam řezů a materiál jako JSON, každé se dvěma stranami průřezu, a dostanete zpět optimalizovaný plán řezání přiřazený a vyřešený po jednotlivých průřezech, s počtem tyčí, využitím a použitelnými zbytky. Je to stejný engine, který pohání aplikaci, přes HTTP.
Proč pro dřevo prostě nepoužít endpoint 1D?
Protože 1D bere každou tyč jako zaměnitelnou, kdežto dřevo ne: díl 50×150 nelze vyřezat z tyče 50×100. Endpoint wood rozdělí zakázku podle průřezu, každý díl přiřadí k odpovídajícímu materiálu a každý průřez řeší samostatně, přičemž vrací součty po průřezech i za celou zakázku. Rozdělit zakázku místo toho na několik volání 1D by stálo jedno volání na průřez, přeneslo přiřazování materiálu na vás a dalo součet, který se s aplikací neshoduje.
Co se stane s dílem, jehož průřez není skladem?
Vrátí se v samostatném seznamu unmatched — poptávka, jejíž průřez nemá žádný materiál — oddělené od unplaced (díly, které odpovídající materiál měly a nevešly se), protože náprava je jiná: jedno je „kup nebo zaveď průřez“, druhé „přidej délku“. Díl, který nelze umístit celý, není nikdy chyba; je to odpověď 200 s nahlášenými kusy, abyste mohli podle plánu jednat. Zdarma můžete také validovat na POST /v1/validate/wood, bez klíče a bez kvóty.
Zohlední šířku kotouče a začištění konců?
Ano. options.kerf je šířka pilového kotouče, odečtená u každého řezu; options.trim.start a options.trim.end rezervují čelní ořez na každém konci délky. Zbytek hlášený u každé tyče je použitelný zůstatek po obojím a options.minOffcut hlásí jen zbytky dost dlouhé na to, aby se vyplatilo je ponechat. Stejné volby platí pro každý průřez v zakázce.
Dokáže plánovat jen z dřeva, které mám na skladě?
Ano. Nastavte options.respectStock a množství každého řádku zásoby se stane tvrdým limitem, průřez po průřezu. Díly, které odpovídající materiál mají, ale nevešly se, se vrátí v unplaced, kdežto díly, jejichž průřez vůbec není skladem, se vrátí v unmatched, takže plán řekne, jestli řezat delší délky, nebo dokoupit chybějící průřez.

Použití pro práci se dřevem (aplikace) · Benchmarky