Přejít na hlavní obsah
PRO VÝVOJÁŘE

CutOptim Engine API

API pro optimalizaci řezání: pošlete díly a materiál — 2D desky, 1D tyče, dřevo nebo nesting nepravidelných dílů podle skutečného tvaru — a zpátky dostanete rozvržení, plán řezání a využití. Ve výchozím nastavení vrací stejný požadavek vždy stejný plán.

Zobrazit celý benchmark → · Naměřeno, ne tvrzeno

POST /v1/optimize/nest
{
  "parts": [
    { "name": "bracket", "polygon": […], "qty": 12, … },
    { "name": "gusset", "polygon": […], "qty": 14, … },
    { "name": "plate", "polygon": […], "holes": […], "qty": 12, … },
    { "name": "flange", "source": { … }, "qty": 10, … }
  ],
  "stock": [{ "w": 2500, "h": 1250, "exclusions": […], … }],
  "options": { "minSeparation": 5, "edgeClearance": 10 }
}
200 sheets[0] · 2500 × 1250
1 sheetCount48/48 placed0.5632 density110 pierces
Skutečné volání POST /v1/optimize/nest: požadavek a vrácená tabule, nakreslená ze souřadnic v odpovědi.

Proč na tom stavět

DETERMINISTICKÉ

Stejný vstup vrací vždy stejný výstup — žádná náhoda, žádné hodiny v algoritmu. Výsledky můžete cachovat a v testech je porovnávat. Jedinou výjimkou, kterou si sami zapnete, je časově omezené hledání jádra max pro nesting — v každé odpovědi to hlásí (deterministic: false).

SKUTEČNÝ PLÁN ŘEZÁNÍ

Nejen obdélníky: gilotinová sekvence řezů, řezy versus průjezdy pily, délka řezu a příznak, který říká, zda je plán vyrobitelný na formátovací pile.

MYSLÍ NA FORMÁTOVACÍ PILU

Šířka řezu (kerf), ořez po jednotlivých hranách, tolerance, režim nákladů, směr vláken a shoda vzoru dřeva, limit fází řezání, minimalizace otáčení — stejné volby, jaké nabízí aplikace.

Napsat, nebo zavolat

Vlastní optimalizátor řezání vypadá jako projekt na víkend, ale promění se v dlouhý ocas okrajových případů: výpočty šířky řezu a ořezu, docházející zásoba, pravidla otáčení a vzoru dřeva, rozvržení, která musí jít rozřezat od kraje ke kraji, polygony s otvory — a sada regresních testů, která dokazuje, že žádná změna plán nezhorší. Engine API je přesně tato práce, už hotová a změřená.

CO PŘESKOČÍTE

Psaní a validaci čtyř optimalizátorů — 2D gilotinových desek, 1D lineární zásoby, dřeva podle průřezu a nestingu podle skutečného tvaru — a udržování jejich správnosti s rostoucími požadavky. Váš tým místo toho integruje jeden HTTP kontrakt.

CO SI MŮŽETE OVĚŘIT

Kvalita plánů je publikovaná, ne jen tvrzená: otevřený benchmark spouští jádro na veřejných akademických sadách úloh a generovaných zakázkách, metoda i surové výsledky jsou ke stažení. Spusťte stejné úlohy proti čemukoli jinému, co zvažujete.

CO POTŘEBUJETE KE STARTU

Cenu na stránce, zkušební období (14 dní) a klíč z vašeho dashboardu — žádný obchodní hovor a žádné vyjednávání o licenci, než to budete moct vyzkoušet. Endpointy validate nepotřebují klíč vůbec.

CO ZŮSTÁVÁ VAŠE

Váš datový model, vaše rozhraní a vaše cenová pravidla. Synchronní volání nic neukládají; asynchronní úloha max si uchovává výsledek jen po krátkou dobu, aby se dal dotázat. Objekt meta u libovolného dílu nebo desky se vrátí doslovně, takže plán sedí s vašimi záznamy.

Zobrazit celý benchmark →

Chcete hotovou objednávkovou obrazovku místo vlastního vývoje?

CutOptim Configurator běží na tomto enginu →Napojení vlastního e-shopu nebo ERP →

Ceník

Studio
€49/měsíc
3,000 požadavků / měsíc — pevný strop, žádné přeplatky, žádná nečekaná faktura
14denní zkušební období · fakturace v EUR · po vyčerpání stropu vracejí volání 402, dokud nezačne nový měsíc
Scale
€149/měsíc
10,000 požadavků / měsíc — pevný strop, žádné přeplatky, žádná nečekaná faktura
Bez zkušebního období · fakturace v EUR · změna tarifu na nástěnce

Každý požadavek se počítá stejně — nesting včetně · Při 90 % kvóty a po jejím vyčerpání vám pošleme e-mail.

Vyzkoušejte zdarma: veřejný demo klíč v referenci API a testovací klíče s 1,000 požadavky měsíčně, které se nikdy neúčtují

Větší objemy. 10,000 požadavků za měsíc je standardní tarif, ne strop toho, co dokážeme provozovat. Pokud potřebujete více — vyšší objem, oddělené klíče pro staging a produkci nebo individuální řešení — napište nám svá čísla a naceníme to individuálně. Napište nám svůj objem →

Předplatným přijímáte: Engine API Service Terms (anglicky).

Běžné tarify CutOptim (Zdarma / Pro / Dílna) s API nijak nesouvisejí — optimalizátor v aplikaci v nich zůstává zahrnutý. Ceník aplikace →

Co jde dovnitř, co vyjde ven

Jedna skutečná zakázka na každý režim: nahoře tělo požadavku, pod ním vrácený plán nakreslený přímo z odpovědi.

DovnitřPOST /v1/optimize/2d
{
  "parts": [
    { "name": "Side", "w": 720, "h": 560, "qty": 6 },
    { "name": "Bottom", "w": 764, "h": 560, "qty": 3 },
    { "name": "Top", "w": 764, "h": 560, "qty": 3 },
    { "name": "Shelf", "w": 762, "h": 520, "qty": 3 },
    { "name": "Rail", "w": 764, "h": 100, "qty": 6 },
    { "name": "Plinth", "w": 764, "h": 120, "qty": 6 },
    { "name": "Door", "w": 397, "h": 716, "qty": 6, "rotatable": false },
    { "name": "Drawer front", "w": 796, "h": 176, "qty": 3 }
  ],
  "stock": [
    { "w": 2800, "h": 2070, "qty": 5, "price": 38.5 }
  ],
  "options": { "kerf": 4, "trim": { "left": 10, "right": 10, "top": 10, "bottom": 10 } }
}
Používá veřejný demo klíč — s limitem, jen malé úlohy, nikdy se neúčtuje.
Ven200 · sheets[].parts
Desky
2
sheetCount
Výtěžnost
80,31 %
yieldPct
Umístěné díly
36 / 36
placed
Řezné linie
39
cutLines
Cena materiálu
77
totalPrice

Řada spodních skříněk ze standardní dřevotřísky. Dvířka drží směr vláken (rotatable: false), ostatní díly se smějí otáčet.

Chcete obrázek přímo z API? U 2D a nestingu přidejte "svg" do include a odpověď nese nákres.

Každý nákres vzniká ze souřadnic v odpovědi — nic není rozmístěno ručně. Čtyři zakázky řeší stejný motor, který běží za API, a naše testy je znovu přepočítávají, aby čísla zůstala pravdivá.

Co API dělá

Čtyři režimy řezání

Po jednom volání pro 2D desky, 1D lineární materiál, dřevo s párováním průřezu a nesting nepravidelných polygonů podle skutečného tvaru — POST /v1/optimize/2d, /1d, /wood a /nest.

Nesting podle skutečného tvaru

POST /v1/optimize/nest rozmisťuje libovolné polygony (i s otvory) na pevné desky a zaklesává díly do vzájemných konkávních kapes — 6 desek tam, kde tytéž díly podle opsaného obdélníku potřebují 9. Pro řezání laserem, plazmou a vodním paprskem. Součástí jsou i vyloučené zóny po jednotlivých deskách (vada, upínka).

Zohledňuje materiál

Označte díly a zásobu štítkem material a optimalizátor rozdělí úlohu: každý material se řeže jen z vlastní zásoby. V každém režimu; vrací se souhrn podle material.

Olepování hran

Pojmenujte typ hrany pro každou hranu (2D) a odpověď sečte běžné metry podle typu — na díl a na zakázku. Metadata: díl nikdy neposune.

Shoda vzoru dřeva

Pojmenujte díly, jejichž kresba musí pokračovat — čelo zásuvky nad dvěma dvířky — v sadě (matchedSets, 2D) a nařežou se vedle sebe z jednoho kusu desky, o jeden kerf od sebe. Každý člen se vrací se svou sadou a pozicí a exporty CSV, SVG a DXF je také značí.

Inline export (SVG · DXF · CSV)

Požádejte o include:["svg","csv","dxf"] a odpověď ponese rozvržení jako hotový soubor, přímo v ní — samostatný 2D výkres SVG, DXF ve formátu R12/AC1009 nebo seznam řezů v CSV. Žádné úložiště, žádné druhé volání.

Průchod metadat

Připojte objekt meta — číslo artiklu z vašeho ERP, id řádku zakázky, referenci zákazníka — k jakémukoli dílu nebo řádku materiálu a vrátí se doslovně u každého umístěného kusu i u každé desky/tyče, takže plán sedí s vaším systémem.

Validace zdarma

POST /v1/validate/{2d,1d,wood} zvaliduje stejné tělo vůči schématu bez výpočtu — bez klíče, bez kvóty. Ověřte, že požadavek nebude odmítnut, a získejte upozornění na proveditelnost dřív, než utratíte volání.

Náklady, nebo odpad

minimizeCost řadí podle nejnižší celkové ceny napříč naceněnými velikostmi zásoby a mísí formáty; výchozí nastavení minimalizuje materiál. Oba spouštějí stejný guillotine algoritmus.

Priorita zásoby a omezená zásoba

Označte zásobu, která se spotřebuje jako první, považujte množství za tvrdý limit pomocí respectStock a označte díly nutné k řezání, které při nedostatku materiálu získají místo na desce.

Skutečný plán řezání

Nejen obdélníky: gilotinová sekvence řezů s pozicemi dorazu pro každý krok, řezy versus průjezdy pily, délka řezu a příznak vyrobitelnosti na formátovací pile.

Parametry formátovací pily

kerf, ořez po jednotlivých hranách, tolerance, směr vláken, sady shody vzoru dřeva (matched sets), maxCutStages a minimalizace otáčení — stejné volby, jaké nabízí aplikace.

Deterministické & OpenAPI

Stejný vstup vrací vždy stejný výstup — cachujte jej a porovnávejte (volitelné, časově omezené hledání jádra max pro nesting hlásí deterministic: false). Připnutelná verze enginu a dokument OpenAPI 3.1 popisují celý kontrakt.

Díly z CAD souborů

Pošlete SVG nebo DXF místo souřadnic: parts[].source načte obrys a jeho otvory z výkresu a POST /v1/import/nest nejprve rozdělí soubor s více díly. Nic se neukládá — soubor se zpracuje v paměti a zmizí spolu s odpovědí.

MCP server pro AI asistenty

Claude Code, Cursor, VS Code a Claude Desktop volají engine jako nástroje přes https://api.cutoptim.com/mcp — se stejným API klíčem a kvótou jako REST. Lokálně běží i jako npm balíček @cutoptim/mcp.

Průvodce MCP →EN

Dvě rychlosti: nabídka hned, úspora materiálu později

Většina integrací potřebuje obojí — odpověď, zatímco zákazník čeká, a přesnější plán, když úloha jde na stroj. Vybíráte si u každého volání.

OKAMŽITĚ

Synchronní jádra — heuristic pro 2D, 1D a dřevo, lbf pro nesting — odpovídají v rámci HTTP požadavku, deterministicky, takže plán za nabídkou je stejný jako plán za objednávkou.

MAX

Pošlete úlohu s engine: "max" a výsledek získejte dotazováním GET /v1/jobs/{id}. U 2D desek hledá směrem k prokazatelnému optimu; u nestingu podle skutečného tvaru stráví časový rozpočet (options.timeBudgetMs) hledáním menšího počtu desek a nikdy nevrátí víc, než je okamžitá odpověď.

Odpověď má v obou případech stejnou podobu. U 2D přijímá engine max užší sadu voleb než heuristic (reference je vyjmenovává) a úlohu nestingu s vyloučenými zónami stále obsluhuje lbf.

Který engine obsluhuje který režim

Endpoint, na který posíláte POST, určuje režim; parametr engine určuje algoritmus. Výchozí engine heuristic obsluhuje 2D, 1D i dřevo; balanced je pouze pro 2D; asynchronní engine max obsluhuje 2D desky i nesting podle skutečného tvaru; a výchozím enginem nestingu je jeho vlastní lbf. Stejný engine jako v aplikaci, přes HTTP.

Režim · endpointEngine · algoritmus2D desky/v1/optimize/2d1D lineární/v1/optimize/1dDřevo · průřez/v1/optimize/woodNesting podle skutečného tvaru/v1/optimize/nestheuristicvýchozí · synchronníbalancedvolitelný · pouze 2Dmaxasynchronní · 2D + nestlbfnesting · výchozíU 1D a dřeva je balanced pouze aliasem pro heuristic (odpověď to uvádí).
  • heuristic — Výchozí — gilotinový packer s více strategiemi. Nejvyšší výtěžnost, každé rozvržení je řezatelné na pile a vždy vrací plán řezání. Obsluhuje 2D, 1D i dřevo.
  • balanced — Volitelný MaxRects free-nester pro 2D. U velmi velkých úloh výrazně rychlejší za mírně nižší výtěžnost, jeho rozvržení však často nelze rozřezat od kraje ke kraji, takže neobsahují plán řezání.
  • max — Asynchronní vrstva: úlohu odešlete a výsledek získáte dotazováním GET /v1/jobs/{id}. U 2D je to stromové prohledávání, které dosahuje prokazatelného optima u mnohem více úloh, za několik sekund až minutu na výpočet — stále deterministické a řezatelné na pile. U nestingu podle skutečného tvaru nejdřív spustí lbf, pak stráví časový rozpočet hledáním rozvržení s menším počtem desek a nikdy nevrátí víc; toto hledání je časově omezené, takže jeho nesty hlásí deterministic: false.
  • lbf — Výchozí engine nestingu podle skutečného tvaru. Zaklesává nepravidelné polygony do vzájemných kapes pro laser, plazmu a vodní paprsek — okamžitě a deterministicky. max (výše) může pak stejnou úlohu prohledat kvůli menšímu počtu desek.

Který endpoint pro který materiál: ploché desky — překližka, MDF, sklo, akrylát, plech — jdou na /v1/optimize/2d; tyče, trubky, roury a profily na /v1/optimize/1d; konstrukční dřevo (50×150 jen z 50×150) na /v1/optimize/wood; nepravidelné polygony pro laser, plazmu a vodní paprsek na /v1/optimize/nest.

Jedno volání, celý plán

curl https://api.cutoptim.com/v1/optimize/2d \
  -H "Authorization: Bearer co_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "parts": [
      { "name": "Door",    "w": 600, "h": 400, "qty": 4 },
      { "name": "Shelf",   "w": 800, "h": 300, "qty": 6 }
    ],
    "stock":   [{ "w": 2440, "h": 1220, "price": 42 }],
    "options": { "kerf": 3, "effort": "balanced" },
    "engine":  "heuristic"
  }'

Vrátí se:

{
  "metrics": { "sheetCount": 1, "yieldPct": 80.62, "placed": 10, "total": 10,
               "cutLines": 10, "sawPasses": 13, "cutLength": 10720, "totalPrice": 42 },
  "sheets":  [ … ],
  "cutPlan": [{ "sheet": 0, "step": 1, "axis": "h", "pos": 400, "length": 2440, "stage": 1 }, … ],
  "guillotineValid": true,
  "engineVersion": "1.0.0+10e0c941",
  "deterministic": true
}

Kompletní podoba požadavku a odpovědi, všechny volby, všechny chybové kódy a všechna jádra:Reference API → · Průvodce integrací →

Fast, nebo hustě? Vyberte jednou volbou

Volba effort vyvažuje čas výpočtu proti využití. Tady je ten kompromis, změřený na jedné náročné zakázce — každé číslo pochází ze skutečného packeru.

Přepínač effort: využití materiálu vs čas výpočtuPřepínač effort: využití materiálu vs čas výpočtu. fast: 350 desky · 76.2% · ≈1.9 s. balanced: 330 desky · 80.8% · ≈4.8 s. max: rezervováno — hustěji chce pomalejší hledání. U většiny (menších) zakázek jsou oba totožné; rozdíl se objeví jen u velkých zakázek, jako je tato. balanced je výchozí a nikdy není hustší, než dokáže fast.Přepínač effort: využití materiálu vs čas výpočtuJedna náročná zakázka — zhruba 1 550 dílů na desce 2,07 × 5,6 m. Každé číslo změřené na skutečném packeru.74%76%78%80%82%84%02 s4 s6 sčas výpočtu · rychleji →využití materiálu · hustěji ↑⇄ přepínač effort+4,6 p.b. využití · −20 desek−5,7 % materiálu · ≈2,5× pomalejšífast350 desky · 76.2% · ≈1.9 s★ balanced · výchozí330 desky · 80.8% · ≈4.8 smaxrezervovánohustěji chcepomalejší hledání
U většiny (menších) zakázek jsou oba totožné; rozdíl se objeví jen u velkých zakázek, jako je tato. balanced je výchozí a nikdy není hustší, než dokáže fast.

A tak jako tak je to rychlé: i největší výrobní zakázky — 2000 dílů a více — se na výchozím enginu vyřeší v řádu sekund, pohodlně v časovém rozpočtu API.

Řešení podle oboru

Stejné jádro, představené pro způsob řezání v konkrétním oboru. Každá stránka ukazuje endpoint, požadavek a odpověď a pole, na kterých u daného materiálu záleží.

Jádro pracuje s geometrií, ne s katalogem materiálů: plech a plát, deskové materiály na bázi dřeva, sklo, plasty a akrylát, kompozity, pěna, karton i papír procházejí stejnými endpointy. Materiál mění jen čísla, která posíláte — šířku řezu nebo rozestup dílů, odstup od hrany, velikosti zásoby.

Materiál ke stažení
Engine API one-pager

The why, what and how of the CutOptim Engine API on two pages — the four modes, a real request and its plan, how to try it free, and the two plans. Print-ready, with a QR back to this page.

PDF2 pagesFree
Stáhnout PDF

Často kladené otázky

Má CutOptim API?
Ano — API CutOptim Engine zpřístupňuje stejný řezací engine přes HTTP, pro ERP, cenotvorný nástroj nebo strojní software, ve všech třech režimech aplikace: 2D desky, 1D lineární a dřevo s párováním průřezu.
Existuje API pro laserové, plazmové nebo vodní řezání?
Ano — true-shape vnořování nepravidelných polygonů je čtvrtý režim API Engine, POST /v1/optimize/nest. Každý díl posíláte jako polygonový obrys (s volitelnými otvory) spolu se skladovými deskami; engine zaklíní díly do konkávních kapes ostatních a vrátí umístění každé kopie, takže laserová, plazmová nebo vodní zakázka se skládá mnohem těsněji než ohraničující obdélník — na reprezentativní zakázce 272 dílů 6 desek tam, kde stejné díly podle ohraničujícího obdélníku potřebují 9. Vylučovací zóny pro každou desku (vada, upínka) a plynulé otáčení jsou součástí; mezera mezi díly (minSeparation) a odstup od okraje desky (edgeClearance) se nastavují zvlášť a odpověď sčítá použité desky podle velikosti zásoby — míchá velikosti tam, kde je to levnější — a udává délku řezu a počet propalů každé desky a také její využitou šířku a výšku od rohu desky (pro účtování jen části desky; nejméně zaplněná deska se kompaktuje do tohoto rohu). Aplikace nabízí stejný nesting ve vlastním režimu Nesting.
Je Engine API deterministické?
Ano. Stejný vstup vrací stejný výstup, takže odpovědi jsou cacheovatelné a testovatelné, a verzi enginu lze připnout pro reprodukovatelné výsledky. Jedinou výjimkou, kterou si sami zapnete, je jádro max pro nesting: jeho hledání je časově omezené, takže v každé odpovědi hlásí deterministic: false.
Co obsahuje odpověď optimalizace?
Kompletní rozvržení, gilotinový plán řezání s pozicemi zastavení pro každý krok a metriky (počet desek, výtěžnost, řezné linie, průchody pily, řezaná délka). 2D endpoint vrací také metry hranění podle typu a každý endpoint přijímá materiálový tag a vrací souhrn podle materiálu. Rozvržení si můžete vyžádat také jako inline SVG, DXF nebo CSV a k dílům a skladu připojit objekt meta, který se vrátí doslovně.
Umí API poskytnout výkres, ne jen souřadnice?
Ano. Přidejte include:["svg","csv","dxf"] do požadavku na optimalizaci a odpověď nese rozvržení jako hotový soubor, inline: samostatný 2D SVG výkres, DXF R12/AC1009 nebo CSV seznam řezů. Žádné ukládání a žádné druhé volání. SVG je pouze 2D; požadavek 1D nebo dřevo místo toho vrátí varování.
Mohu k dílům připojit vlastní ID a přečíst je zpět?
Ano. Každý řádek dílu nebo skladu může nést objekt meta — vaše ERP číslo artiklu, id řádku objednávky nebo referenci zákazníka —, a vrací se doslovně u každého umístěného dílu a každé desky nebo tyče, takže se plán řezání sesouhlasí s vaším systémem. Nikdy neovlivňuje rozvržení.
Mohu ověřit požadavek, aniž bych spotřeboval volání?
Ano. POST /v1/validate/2d, /1d nebo /wood validuje podle schématu stejné tělo, jaké přijímá odpovídající optimalizační endpoint, bez řešení — bez klíče a bez kvóty. 400 pojmenuje přesné chybné pole a získáte varování o proveditelnosti (díl, který se nevejde do žádného skladu), než spotřebujete skutečné volání.
Existují SDK, webhooky nebo asynchronní úlohy?
Ano. Oficiální SDK pro TypeScript (npm @cutoptim/engine), Python (PyPI cutoptim) a PHP (Composer cutoptim/engine) jsou open source na github.com/cutoptim a generují se ze specifikace OpenAPI 3.1 — pro jakýkoli jiný jazyk lze na stejný dokument nasměrovat generátor kódu. Většina volání optimalizace je prosté synchronní HTTP, které vrací hotový plán přímo. Jedinou výjimkou je asynchronní engine max, pro 2D desky i pro nesting podle skutečného tvaru: POST /v1/optimize/2d nebo /v1/optimize/nest s engine:"max" vrací 202 Accepted s jobId a vy dotazujete GET /v1/jobs/{id}, dokud neskončí — pro případ, kdy lepší plán stojí za jednotky sekund až několik minut výpočtu. Místo dotazování si na dashboardu zaregistrujte webhook: když úloha skončí, pošle podepsaný POST.
Jaké jsou limity požadavku?
Až 2 000 dílů, 50 skladových řádků a 1 MB těla požadavku na volání. I ty největší výrobní úlohy se vyřeší v jednotkách sekund, pohodlně v časovém rozpočtu.
Správa API klíčů