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
{
"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í,
minSeparationpro rozestup dílů aedgeClearancepro 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/nestzkontroluje 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.
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.
Časté dotazy
Existuje API pro nesting při řezání laserem?
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í?
Dokáže se vyhnout poškozené oblasti nebo otisku upínky na tabuli?
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?
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ů?
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?
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.