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

API pro nesting při řezání laserem

Ano — API pro nesting při řezání laserem existuje. Řezání nepravidelných dílů laserem je úloha nestingu podle skutečného tvaru: díl je libovolný polygon, ne obdélník, a díly se zaklesávají do vzájemných konkávních kapes. CutOptim Engine API ji řeší přes HTTP na POST /v1/optimize/nest — váš CAD/CAM, ERP nebo kalkulační software pošle obrysy dílů a tabule materiálu jako JSON a dostane zpět rozmístěné rozvržení, umístění každého dílu a počet tabulí.

Funguje to už dnes. Nesting je jiná třída algoritmu než obdélníkový gilotinový packer — geometrické kolizní jádro (jagua-rs), které v produkci běží za POST /v1/optimize/nest — a proto vrací nest podle skutečného tvaru, ne obdélníkový plán řezání.

Všechny formáty, enginy, limity a ukázky kódu pro vývojáře: API pro nesting CutOptim

POST /v1/optimize/nest
{
  "parts": [
    { "name": "bracket",
      "polygon": [[0,0],[300,0],[300,100],[100,100],[100,300],[0,300]],
      "qty": 12, "allowedRotations": "continuous" },
    { "name": "gusset",
      "polygon": [[0,0],[280,0],[140,240]],
      "qty": 8, "allowedRotations": [0,90,180,270] }
  ],
  "stock": [{ "w": 3000, "h": 1500, "qty": 20 }],
  "options": { "minSeparation": 0.3, "edgeClearance": 5 }
}

Nesting není součástí veřejného dema — spusťte tento příklad s bezplatným testovacím klíčem. Vytvořit bezplatný testovací klíč

  • Funguje už dnes na POST /v1/optimize/nest — libovolné polygonální díly (s otvory), nejen obdélníky.
  • Vyloučené zóny po jednotlivých tabulích drží díly mimo vadu, otisk upínky nebo předtištěnou plochu (stock[].exclusions).
  • Spojité nebo diskrétní otáčení, minSeparation pro rozestup dílů a edgeClearance pro okraj tabule.
  • Délka řezu a počet propalů na tabuli, plus tabule a cena podle velikosti tabule (stockUsage) — několik velikostí tabulí lze míchat, kde je to levnější.
  • Na reprezentativní zakázce o 272 dílech použil nest 6 tabulí, kde tytéž díly podle opsaného obdélníku potřebují 9 — poctivá metrika je počet tabulí, ne procento zaplnění.
  • Deterministické: připnuté seed vrátí u stejného požadavku stejný nest, pro nabídky a audity.
  • Validace zdarma: POST /v1/validate/nest zkontroluje zakázku bez klíče a bez kvóty.

Proč laserové dílny potřebují nesting podle skutečného tvaru

Obdélníkový packer bere opsaný obdélník každého dílu jako plný, takže vzduch ve výřezu L-konzoly nebo trojúhelníkového výztužného plechu přijde nazmar. Nesting podle skutečného tvaru zaklesává skutečné obrysy do sebe a tento vzduch získá zpět. Na reprezentativní zakázce o 272 dílech použil nest 6 tabulí, kde tytéž díly podle opsaného obdélníku potřebují 9 — poctivá metrika je počet tabulí na týchž dílech, ne procento zaplnění (opsaný obdélník vykazuje vyšší zaplnění u horšího výsledku).

Co posíláte a co se vrátí

Pošlete každý díl jako obrys polygonu (s volitelnými vnitřními otvory) a množství, k tomu tabule materiálu. Odpověď vrací umístění každé kopie jako tuhou transformaci — rotace ve stupních, poté posun x/y — ne znovu vygenerovaný polygon: otočte svůj vstupní obrys a přičtěte posun a umístění přesně zrekonstruujete. Vrací také počet tabulí, zaplnění po jednotlivých tabulích i celkové a díly, které se nevešly — a u každé tabule řádek zásoby, ze kterého byla vyřezána, délku řezu (kontura, kterou paprsek sleduje, obrysy i otvory) a počet propalů; stockUsage sčítá tabule a cenu podle velikosti tabule. Zadejte více velikostí tabulí a nest je porovná — podle plochy tabulí, nebo podle ceny s minimizeCost — a může je míchat, kde je to levnější, například přesunutím poloprázdné poslední tabule na menší velikost. Požádejte o include:["svg","dxf"] a dosažené rozvržení se vrátí přímo v odpovědi jako soubor.

Vyloučené zóny a spojité otáčení

Dvě věci, které obdélníkové API vyjádřit neumí, přináší nestingové jádro. Vyloučené zóny po jednotlivých tabulích (stock[].exclusions) drží každý díl mimo vadu, otisk upínky nebo předtištěnou plochu — zóna s quality 0 je zakázaná oblast. Otáčení může být spojité (libovolný úhel) nebo diskrétní seznam; options.minSeparation nastavuje rozestup mezi díly (šířku paprsku) a options.edgeClearance odstup od okraje tabule, takže se mohou lišit. Rozvržení je deterministické: nastavte options.seed a stejný požadavek vrátí stejný nest.

Okamžitě pro nabídku, max pro zakázku

POST /v1/optimize/nest odpovídá synchronně s enginem lbf — deterministicky a v rámci požadavku, dost rychle, aby se zakázka dala nacenit, zatímco zákazník čeká. Když se zakázka uvolňuje na stroj, pošlete stejné tělo s engine: "max" a dotazujte GET /v1/jobs/{id}: nejdřív spustí lbf, pak stráví časový rozpočet, který nastavíte (options.timeBudgetMs), hledáním rozvržení s méně tabulemi a nikdy nevrátí víc. Odpověď má v obou případech stejnou podobu; tabuli s vyloučenými zónami v té úloze stále obsluhuje lbf, s upozorněním.

Materiál ke stažení
API pro nesting při řezání laserem — 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 nesting při řezání laserem?
Ano. Nesting nepravidelných polygonů podle skutečného tvaru je čtvrtý režim CutOptim Engine API, POST /v1/optimize/nest. Pošlete každý díl jako obrys polygonu (s volitelnými otvory) a k tomu tabule materiálu a dostanete zpět rozmístěné rozvržení, umístění každé kopie a počet tabulí. Je to geometrické kolizní jádro, jiná třída algoritmu než obdélníkový gilotinový packer, a v produkci běží už dnes.
Čím se nesting podle skutečného tvaru liší od obdélníkového rozmisťování?
Obdélníkový packer rozmisťuje opsané obdélníky, takže vzduch uvnitř nepravidelného dílu přijde nazmar; nesting podle skutečného tvaru zaklesává skutečné obrysy do vzájemných konkávních kapes. Srovnatelnou metrikou je počet tabulí na týchž dílech — na reprezentativní zakázce o 272 dílech použil nest 6 tabulí oproti 9 podle opsaného obdélníku. Procento zaplnění NENÍ mezi oběma srovnatelné, protože obdélníkový packer počítá vzduch ve výřezech jako plný a u horšího výsledku vykazuje vyšší zaplnění.
Dokáže se vyhnout poškozené oblasti nebo otisku upínky na tabuli?
Ano. Každá tabule může nést vyloučené zóny (stock[].exclusions) — polygony, od kterých engine drží díly pryč. Zóna s quality 0 je pro každý díl zakázaná oblast, takže můžete umisťovat kolem vady, otisku upínky nebo předtištěné plochy. Obdélníkové API tuto schopnost vyjádřit neumí.
Mohu požadavek při integraci validovat zdarma?
Ano. POST /v1/validate/nest schématem zvaliduje totéž tělo, které přijímá endpoint nestingu, bez výpočtu — zdarma, bez API klíče a bez kvóty — takže váš tým může při budování integrace ověřit, že je payload správně sestavený. Samotné Engine API má 14denní zkušební období.
Vrací délku řezu a počet propalů?
Ano. Každá tabule nese cutLength — součet obvodů obrysů a otvorů jejích umístěných dílů, ve vaší jednotce — a pierces, jeden na každý uzavřený obrys; metrics sčítá obojí. Je to geometrická délka konturu: řezání po společné linii, nájezdy a mikrospojky se nezapočítávají, protože je doplní CAM vašeho stroje, takže je to rozumný základ pro strojní čas a plyn, nikoli konečná dráha nástroje.
Může nacenit jen použitou část tabule?
API mu dodá čísla; pravidlo účtování zůstává na vás. Každá tabule nese usedWidth a usedHeight — nejvzdálenější bod, kam její umístěné díly sahají od počátku tabule, ve vaší jednotce — a usedArea, jejich součin (stockUsage ji sčítá podle velikosti tabule). Vodorovný řez je usedHeight × šířka tabule, svislý řez usedWidth × výška tabule, opsaný obdélník usedArea. Obě jádra také ve výchozím stavu kompaktují nejméně zaplněnou tabuli směrem k tomuto rohu, s podmnožinami natočení, která každý díl povoluje, a nikdy s novým úhlem, bez změny počtu tabulí, ceny nebo umístěných dílů; options.compact: false to vypne. Pokud účtujete pás místo opsaného obdélníku, options.compactFor: "horizontal" drží nejnižší využitou výšku a "vertical" nejmenší využitou šířku. Jak malá využitá plocha vyjde, závisí na dílech.

Použití pro zpracování plechu (aplikace) · Benchmarky