Skip to content

Nesting Arcline, v prohlížeči

Nesting podle skutečného tvaru, který ví, jaké tabule opravdu máte.

Díly do sebe zapadají podle skutečného obrysu, ne podle opsaného obdélníku, malé díly padají do otvorů větších a hledání běží na zbytcích ve vašem regálu stejně ochotně jako na celé tabuli. Každý běh si zapíše seed, se kterým vznikl, takže rozložení lze přesně zopakovat.

Práce, jak dnes vypadá

Tabule je ta drahá část

Materiál tvoří většinu ceny páleného dílu, a rozdíl mezi dobrým a líným rozložením jsou peníze na podlaze.

Deset různých obrysů ze tří zakázek, všechno ocel 6 mm, všechno na tenhle týden. Někdo je od oka poskládá na obrazovce, pozdě si všimne, že dva velké držáky do sebe mohly zapadnout, tabuli rozřeže a do regálu odloží zbytek 1400 na 500, který si nikdo nezapíše a nikdo už ho nenajde. Příští týden přijdou stejné obrysy a celé se to opakuje od celé tabule.

Programy, které tohle umí pořádně, existují a jsou to instalace na počítač, s klíčem, licencí na místo a školicím dnem. Pro dílnu s programátorem na plný úvazek je to rozumná odpověď. Pro čtyři lidi, dva stoly a notebook v kanceláři, který dělá i faktury, je to odpověď chabá.

Rozložení, tabule, ze které vzniklo, a zbytek, který po něm zůstane, jsou jedna věc. Vést je na třech místech je to, co tabuli ztrácí.

Nesting tady proto není samostatný program. Běží v prohlížeči nad stejným skladem, stejnými díly a stejnými zakázkami řezání jako všechno ostatní, a co zbude, se vrací do regálu jako skutečný zbytek s vlastním obrysem, připravený na příští rozložení.

Skutečný tvar

Obrysy, ne obdélníky

Dva díly se vedle sebe vejdou právě tehdy, když počátek jednoho leží mimo no-fit polygon druhého, tedy mimo Minkowského součet prvního s převráceným druhým. Jádro tyhle polygony počítá ze skutečných obrysů a drží po jednom na každou dvojici tvarů, takže úhelník zapadne do rohu jiného úhelníku místo toho, aby si rezervoval obdélník, který nikdy nezaplní.

Většina reálných dílů je konvexní, jakmile nese svůj odsazený obrys, a pro ty je součtem konvexní obal po dvojicích sečtených vrcholů: přesný a levný. Konkávní obrys se rozloží na trojúhelníky, trojúhelníky se zase spojí do co nejmenšího počtu konvexních kusů, který tvar dovolí, a každá dvojice kusů přispěje vlastním přesným součtem. Kde je rozklad numericky choulostivý, jádro ustoupí ke konvexnímu obalu obrysu, který zakáže o něco víc místa, než je nutné: opatrně, nikdy s překryvem.

Uložení dovnitř funguje stejně. Polohy, ve kterých díl leží celý uvnitř tabule, tvoří inner-fit polygon, takže tvarovaný zbytek se rozkládá podle svého skutečného obrysu, ne podle obdélníku, který by se do něj vešel. Obdélníková tabule jde přesnou zkratkou přes obdélník, protože u obdélníku jsou obě odpovědi táž odpověď.

Díl uložený v otvoru jiného dílu se vyřízne a uvolní dřív, než díl kolem něj vypadne z tabule.

Díly v dílech

Otvor v přírubě je plech, který jste zaplatili

Po hlavním průchodu se každému dosud neumístěnému dílu nabídnou otvory už umístěných dílů. Každý otvor se vezme ve své poloze, zmenší o tentýž okrajový odstup, jaký používá tabule, a rovnou se zahodí, pokud je to, co zbývá, moc malé na to, aby do toho mělo smysl něco sázet. Malé díly pak padají do zbylých otvorů se stejnou no-fit aritmetikou jako na samotné tabuli, takže distanční kroužek sedne do otvoru příruby místo toho, aby zabíral nový plech.

Vyplatí se to jen tehdy, když řezný soubor rozumí tomu, co dostal, a rozumí. Díl sedící v otvoru jiného se řeže jako jeden celý blok, nejdřív jeho vlastní otvory, pak jeho vnější obrys, a vždy před dílem kolem něj, takže se uvolní ve chvíli, kdy rám kolem něj ještě drží v tabuli. Uložit díl do otvoru a pak nechat vypadnout nejdřív díl kolem něj znamená shodit malý díl mezi lamely.

Vyplňování otvorů jde záměrně do jedné úrovně: díl usazený v otvoru už sám nepojme díl ve svém vlastním otvoru. Nepřináší ani žádnou náhodu, takže rozložení nikdy neudělá hůř zopakovatelným, než bylo.

Zopakovatelné

Stejný seed dá stejné rozložení

Hledání je genetický algoritmus nad pořadím a natočením dílů a každé náhodné číslo pochází z jediného proudu s pevným seedem. Nic nečte hodiny, nic nečte adresu v paměti a nic neprochází tabulku v pořadí, v jakém zrovna leží. Při stejných dílech, stejných kandidátských tabulích, stejném nastavení, stejném seedu a stejném počtu generací jsou umístění shodná bajt po bajtu. Není to prohlášení o záměru: přesně tohle ověřuje sada testů, dvakrát, jednou na hledání a jednou od začátku do konce včetně výběru tabule.

V dílně je běh omezený časovým oknem, ne počtem generací, takže poctivá verze té věty zní takhle: pořadí rozvržení, která se zkoušejí, určuje seed, a hodiny rozhodují jen o tom, jak hluboko do něj běh dojde. Rychlejší počítač ho uvidí víc a ponechá se vždy nejlepší nalezené rozvržení. Každé rozložení se ukládá se seedem, se kterým vzniklo, takže rozložení, které se vám líbilo, se obnoví místo toho, aby se hledalo znovu.

Druhé stisknutí nestingu seed záměrně posune, protože v tu chvíli je užitečný jiný pokus k porovnání, ne týž znovu.

Rychlý režim je jiné jádro, ne kratší běh téhož: skyline balič nad opsanými obdélníky, díly od největšího po nejmenší, každá shoda rozhodnutá souřadnicemi. Je také deterministický, skončí hluboko pod jednou sekundou a je to on, kdo kandidátské tabule předběžně ohodnotí, než se rozjede skutečné hledání.

Výběr tabule

Rozkládá na materiálu, který máte, zbytky napřed

Nic tady se nerozkládá na ideální tabuli. Kandidáty jsou řádky vašeho vlastního skladu, které odpovídají materiálu a tloušťce zakázky.

Každý kandidát se nejdřív rychle ohodnotí
Rychlý balič projde každého kandidáta, aby odhadl, jakou jeho část by zakázka zaplnila, a skóre je ten odhad s vahou 0,55, bonus za zbytek s vahou 0,30 a preference pro nejtěsnější vyhovující tabuli s vahou 0,15. Váhy jsou nastavení, ne záhada, a pořadí je na obrazovce.
Zbytek poráží celou tabuli už z principu
Bonus za zbytek je pevnou částí skóre, takže zbytek, který zakázku unese, se vybere dřív než panenská tabule, ledaže by balení dopadlo výrazně hůř. Přesně kvůli tomu se zbytky odkládají, a přesně tohle ruční rozkládání po dvou nabitých týdnech tiše přestane dělat.
Těsný druhý dostane vlastní běh
Když je druhý do pěti procent od prvního, oba dostanou skutečné hledání na polovinu časového okna a vyhraje lepší výsledek. Rychlý odhad je dobrý na řazení a není dost dobrý na rozhodování.
Co se nevejde, přeteče na další tabuli
Vše, co se nepodařilo umístit, projde znovu zbylými kandidáty a vrátí se jako druhá tabule, a jako třetí, pokud je potřeba. Kandidát, který nepojme ani jeden zbývající díl, se přeskočí místo prohledávání, takže smyčka vždy skončí.
Odložený zbytek si drží svůj skutečný tvar
Zbytek se ukládá se svým obrysem, ne jen se šířkou a výškou, a díly, které z něj už byly vyňaty, zůstávají jako otvory, aby se nikdy nerozkládalo nad prázdnem. Vše navazující pracuje ve vlastní soustavě zbytku, takže se jeho umístění vracejí v souřadnicích, ve kterých řežete.
Zbytek se vrací do regálu
Na obdélníkové tabuli se přebytek odkládá jako dva čisté pásy vpravo od využité plochy a nad ní, tedy jako to, co nůžky nebo rovný řez opravdu získají zpět. U tvarovaného zbytku se změří skutečná volná plocha a kus se odloží jen tehdy, když největší obdélník v něm skutečně obsažený překročí práh, aby velká, ale úzká tříska neskončila v evidenci jako použitelný materiál.
Sklad tabulí a zbytkůUkázkový sklad

Od rozložení k řeznému souboru

Ta část, kterou stůl opravdu čte

Každý uzavřený obrys dostane propal na odpadní straně čáry a nájezd na ni, vnitřní obrysy se řežou před vnějším obrysem téhož dílu, a díly se řadí podle nejbližšího souseda přes body propalu od počátku tabule. Vnější obrysy dostanou výjezd do odpadu. Rovné úseky vycházejí jako G1 a skutečné oblouky se obnovují jako G2 a G3 s přírůstkovým posunem středu místo toho, aby se rozsekaly na tisíc krátkých pohybů.

Každý stůl je záznam stroje a detaily postprocesoru jdou za ním: prodleva po propálení, přesné řádky, které vaše regulace výšky očekává před řezem a po něm, strop posuvu, na který se vydávaný posuv omezí, a jméno stroje v hlavičce. Totéž rozložení tedy vyjde správně pro dva různé stoly, aniž by soubor kdokoli upravoval.

Samotná dráha je před řezáním nastavitelná: korekce řezné spáry, přímé nebo obloukové nájezdy s vlastní délkou a úhlem, směr řezu, počátek konkrétního obrysu odsunutý z rohu a zavedený do odpadu a můstky, aby díly zůstaly spojené s tabulí. Všechno tohle je ve výchozím stavu vypnuté, a se vším vypnutým je soubor tím jednoduchým, přenositelným.

Podrobně

Co z rozložení vychází

Šest věcí, pokaždé, pro každou tabuli, kterou zakázka potřebovala.

Rozvržení čitelné u stroje
Každé umístění jako poloha a natočení v souřadnicích tabule, vykreslené na tabuli nebo zbytku, kam patří, s díly usazenými v otvorech jiných dílů označenými jako takové.
Využití, které je definované
Skutečná plocha dílů dělená využitou plochou tabule, oříznutou skutečným obrysem. Záměrně to není procento celé tabule, protože číslo počítané na celou tabuli zůstane stejné, ať díly leží jakkoli těsně. Znamená to také, že to číslo není srovnatelné s procentem celé tabule z jiného programu, a je dobré vědět, které z nich právě čtete.
Odpad, po odečtení odloženého zbytku
Měřený proti celé použitelné tabuli, s odečtením všeho, co bylo odloženo jako zbytek, protože kus, který se vrací do regálu, není odpad. To je to číslo, které vám řekne, jestli vás zakázka stála tabuli.
Odhadovaný čas řezu s rozpadem na složky
Délka řezu při posuvu z vašich procesních parametrů, plus čas propalu za každý propal, plus přejezd hořáku mezi obrysy modelovanou rychlostí rychloposuvu. Všude, kde se objeví, je označený jako odhad, protože modeluje stůl a neměří ten váš.
DXF a G-kód z téhož rozvržení
DXF s každým obrysem jako uzavřenou polyčárou na vrstvě CUT a s obrysem tabule na vlastní vrstvě, oblouky zachované jako bulge, v milimetrech. Nebo adresový G-kód s detaily postprocesoru daného stroje. Oba popisují totéž rozložení.
Sklad, který se vede sám
Označení rozložení jako vyřezaného spotřebuje tabuli nebo zbytek, na kterém leželo, odloží každý vyhovující zbytek jako nový skladový řádek s jeho obrysem a odkazem na rozložení, které jej vytvořilo, zvýší vyřezané množství na každé pokryté položce zakázky a ohlásí nízký stav, když materiál klesne pod práh, který jste nastavili.

Jak dostat díly dovnitř

DXF dovnitř, a řekne vám, co nedokázal přečíst

Import čte úsečky, oblouky, kružnice a polyčáry včetně vyklenutých segmentů, uzavírá otevřené řetězce v uzavřené obrysy přichycením konců do jedné dvacetiny milimetru a získané smyčky třídí na vnější obrysy a otvory podle vnoření. Kružnice naimportovaná jako jediná entita si oblouk podrží, takže vychází a postprocesuje se jako oblouk, ne jako mnohoúhelník, který jej jen předstírá.

Co použít neumí, řekne nahlas. Nepodporované typy entit se počítají po typech a hlásí, a každý řetězec, který by se neuzavřel, se zahodí a ohlásí jako zahozený. DXF bez jediného uzavřeného obrysu to dostane jasně sděleno místo toho, aby se naimportoval jako prázdný díl, protože prázdný díl objevený u stroje je drahý způsob, jak to zjistit.

Díly lze také kreslit v prohlížeči nebo brát z parametrických šablon presetu, a každý díl nese vlastní materiál, tloušťku, plochu, délku řezu a počet propalů, a právě podle toho fronta seskupuje a naceňuje.

Editor díluSnímek rozhraní

Na rovinu

Co tohle nedělá

Dobré vědět, než sem přesunete zakázku, protože stránka, která tohle vynechá, je ta, o které se to dozvíte později.

Rozkládá ploché obrysy ve dvou rozměrech. Žádné úkosování, žádný nesting trubek ani profilů, žádné více hořáků a žádný společný ani řetězený řez: každý obrys se propaluje a najíždí samostatně. Jedna zakázka je jeden materiál v jedné tloušťce, protože tak fronta řezů seskupuje otevřenou práci.

Nevybírá vaše řezné parametry. Posuv, čas propalu a řezná spára pocházejí z procesních parametrů, které nastavujete podle materiálu a tloušťky, a každé číslo z nich odvozené, v čele s časem řezu, je označené jako odhad. Nic tady nerozhoduje o proudu, výšce hořáku ani sadě spotřebních dílů.

Není to řízení stroje. Vydá soubor a váš řídicí systém vede stůl. Přímý G-kód se ověřuje společně na vašem vlastním stole, než se na něj někdo spolehne, a cesta přes DXF do CAM, který už používáte, je tu právě proto, abyste to nemuseli brát na slovo.

Proti skládání od oka

Kde pomáhá a kde ne

Pečlivý obsluhující, který díly skládá na obrazovce, je skutečná odpověď, a na jednoduché tabuli dobrá. Tohle se mění.

Tabule složená ručně ve srovnání s týmiž díly po rozložení.
ÚkolOd oka na obrazovceKabaido
Zapadnutí dvou konkávních obrysůKdyž si toho někdo všimneHledáno, podle skutečných obrysů
Využití otvoru ve velkém díluVzácněVyplněno tam, kde se díl vejde
Rozložení na nepravidelném zbytkuOd oka, podle obdélníkuPodle jeho skutečného obrysu
Volba, kterou tabuli řezatCo je zrovna nejblížSeřazeno, zbytky vážené napřed
Díly, které se nevejdouDruhá tabule, znovu skládanáPřelité a rozložené automaticky
Zopakování povedeného rozloženíPo pamětiUloženo se svým seedem
Zaznamenání toho, co zbýváLísteček na regálu, když to vyjdeOdloženo se svým obrysem
Pořadí řezů a poloha propalůVáš CAMVydáno, nebo vyexportováno do vašeho CAM
Posuv, čas propalu a řezná spáraVašeVaše
Vedení stoluVáš řídicí systémVáš řídicí systém
Rozhodnutí, že zakázka se takhle řezat můžeVyVy

Jak začít

Rozložte tabuli, kterou jste už řezali

Bez karty při registraci, a plán zdarma není zkušební doba.

Krok 1

Naimportujte DXF a zadejte tabuli

Načtěte obrysy ze zakázky, kterou jste řezali minulý měsíc, a přidejte formát, na kterém jste ji řezali, zbytek nebo celou tabuli.

Krok 2

Rozložte a porovnejte

Spusťte to a položte rozvržení vedle toho, které jste řezali. Využití a zbytek jsou dvě čísla, o která stojí za to se přít.

Krok 3

Vyexportujte a zkontrolujte soubor

Vezměte DXF do CAM, který už používáte, nebo G-kód na stůl s nastaveným profilem stroje, a zkontrolujte jej, než mu budete věřit.

Na hovoru s vámi rozložíme jednu z vašich vlastních zakázek, na vašich vlastních formátech, a co z toho vyjde, zůstává vám.

Otázky

Na co se plazmové provozy ptají nejdřív

Rozložte tabuli, kterou jste už řezali, a porovnejte obě.

Zaregistrujte se zdarma, naimportujte obrysy, zadejte formát, na kterém jste řezali, a spusťte to. Pokud rozvržení nebude lepší než to vaše ruční, napište nám, o kterou zakázku šlo.