Skip to content

Arcline nesting, in de browser

Nesten op ware contour, dat weet welke platen u werkelijk hebt.

Delen grijpen in elkaar op hun echte contour in plaats van op een omhullende rechthoek, kleine delen vallen in de uitsnedes van grotere, en de zoekactie draait net zo makkelijk op de resten in uw rek als op een volle plaat. Elke run legt de seed vast waarmee hij gevonden is, dus een nesting is exact te herhalen.

Het werk zoals het nu gaat

De plaat is het dure deel

Materiaal is het grootste deel van de kostprijs van een gesneden deel, en het verschil tussen een goede en een luie nesting is geld op de vloer.

Tien verschillende contouren uit drie orders, alles 6 mm staal, alles voor deze week. Iemand legt ze op het oog op het scherm, ziet te laat dat de twee grote consoles in elkaar hadden gepast, snijdt de plaat en zet een rest van 1400 bij 500 in het rek die niemand noteert en niemand terugvindt. Volgende week komen dezelfde contouren terug en begint het hele verhaal opnieuw vanaf een volle plaat.

De pakketten die dit netjes doen bestaan, en het zijn installaties op een pc, met dongel, een licentie per werkplek en een trainingsdag. Voor een bedrijf met een fulltime programmeur is dat een redelijk antwoord. Voor vier mensen, twee tafels en een laptop op kantoor die ook de facturen doet is het een slecht antwoord.

De nesting, de plaat waar hij vandaan komt en de rest die hij achterlaat zijn één zaak. Ze op drie plekken bijhouden is wat de plaat kost.

De nesting hier is daarom geen apart programma. Hij draait in de browser op dezelfde voorraad, dezelfde delen en dezelfde snijorders als al het andere, en wat overblijft gaat als echte rest met een eigen contour terug in het rek, klaar om er de volgende keer op te nesten.

Ware contour

Contouren, geen rechthoeken

Twee delen passen precies dan naast elkaar wanneer de oorsprong van het ene buiten het no-fit-polygoon van het andere ligt, dat wil zeggen buiten de Minkowski-som van het eerste met het gespiegelde tweede. De motor berekent die polygonen uit de echte contouren en bewaart er één per vormenpaar, zodat een hoekstuk in de hoek van een ander hoekstuk gaat zitten in plaats van een rechthoek te reserveren die het nooit vult.

De meeste echte delen zijn convex zodra ze hun afstandsoffset dragen, en voor die is de som de convexe omhulling van de paarsgewijze hoekpuntsommen: exact en goedkoop. Een concave contour wordt in driehoeken ontleed, de driehoeken worden weer samengevoegd tot zo weinig convexe stukken als de vorm toelaat, en elk stukkenpaar levert zijn eigen exacte som. Waar een ontleding numeriek lastig wordt valt de motor terug op de convexe omhulling van de contour, die iets meer ruimte verbiedt dan strikt nodig: voorzichtig, nooit overlappend.

Insluiting werkt op dezelfde manier. De posities waarop een deel helemaal binnen de plaat valt vormen een inner-fit-polygoon, dus een gevormde rest wordt op zijn echte contour genest en niet op de rechthoek die erin zou passen. Een rechthoekige plaat neemt de exacte kortere weg via de rechthoek, want bij een rechthoek zijn beide antwoorden hetzelfde.

Een deel dat in de uitsnede van een ander deel is genest wordt gesneden, en vrijgemaakt, voordat het deel eromheen uit de plaat valt.

Delen in delen

De uitsnede in een flens is plaat waarvoor u betaald hebt

Na de hoofdronde krijgen alle nog niet geplaatste delen de uitsnedes van de reeds geplaatste delen aangeboden. Elke uitsnede wordt op zijn plek genomen, verkleind met dezelfde randmarge die de plaat gebruikt, en meteen afgewezen als wat overblijft te klein is om er zinvol iets in te zetten. Kleine delen vallen dan in de overgebleven uitsnedes, met dezelfde no-fit-rekenkunde als op de plaat zelf, zodat een afstandsring in de boring van een flens gaat zitten in plaats van nieuwe plaat te bezetten.

Dat loont alleen als het snijbestand snapt wat het gekregen heeft, en dat snapt het. Een deel dat in de uitsnede van een ander zit wordt als één volledig blok gesneden, eerst zijn eigen uitsnedes en dan zijn buitencontour, en altijd vóór het deel eromheen, zodat het vrijkomt terwijl het kader eromheen nog aan de plaat vastzit. Een deel in een uitsnede nesten en dan het omringende deel eerst laten vallen, is het kleine deel tussen de lamellen kieperen.

Het vullen van uitsnedes gaat met opzet één niveau diep: een deel dat in een uitsnede zit neemt niet op zijn beurt een deel op in zijn eigen uitsnede. Het brengt ook geen willekeur mee, dus het maakt een nesting nooit minder herhaalbaar dan hij al was.

Herhaalbaar

Dezelfde seed geeft dezelfde nesting

De zoekactie is een genetisch algoritme over volgorde en rotatie van de delen, en elke toevalstrekking komt uit één stroom met een vaste seed. Niets leest de klok, niets leest een geheugenadres en niets loopt door een tabel in de volgorde waarin die toevallig staat. Bij dezelfde delen, dezelfde kandidaatplaten, dezelfde instellingen, dezelfde seed en hetzelfde aantal generaties zijn de plaatsingen byte voor byte gelijk. Dat is geen intentieverklaring: het is wat de testsuite controleert, twee keer, één keer op de zoekactie en één keer van begin tot eind inclusief de plaatkeuze.

In de werkplaats is de run begrensd door een tijdvenster in plaats van door een aantal generaties, dus de eerlijke versie van de zin is deze: de reeks indelingen die wordt geprobeerd ligt vast door de seed, en de klok bepaalt alleen hoe ver de run daarin komt. Een snellere machine ziet er meer van, en de beste gevonden indeling wordt altijd bewaard. Elke nesting wordt opgeslagen met de seed waarmee hij gevonden is, dus een nesting die u beviel haalt u terug in plaats van hem opnieuw te zoeken.

Een tweede keer op nesten drukken laat de seed met opzet oplopen, want wat op dat moment nuttig is, is een andere poging om mee te vergelijken en niet dezelfde nog eens.

De snelle modus is een andere motor, geen kortere run van dezelfde: een skyline-packer over omhullende rechthoeken, delen van groot naar klein, elk gelijkspel beslist op coördinaten. Ook die is deterministisch, hij is ruim binnen een seconde klaar, en hij is degene die de kandidaatplaten vooraf scoort voordat de echte zoekactie begint.

Plaatkeuze

Het nest op het materiaal dat u hebt, resten eerst

Hier nest niets op een ideale plaat. De kandidaten zijn de regels in uw eigen voorraad die passen bij materiaal en dikte van het werk.

Elke kandidaat wordt eerst snel gescoord
De snelle packer loopt over elke kandidaat om te voorspellen hoeveel ervan het werk zou vullen, en de score is die voorspelling met gewicht 0,55, een restbonus met gewicht 0,30 en een voorkeur voor de krapste plaat die past met gewicht 0,15. De gewichten zijn instellingen en geen geheim, en de ranglijst staat op het scherm.
Een rest wint van een volle plaat door de opzet
De restbonus is een vast deel van de score, dus een rest die het werk aankan wordt gekozen boven een maagdelijke plaat tenzij de pakking duidelijk slechter uitvalt. Daarvoor bewaart u resten, en dat is precies het deel dat een handmatige nesting na twee drukke weken stilletjes laat vallen.
Een dichte tweede krijgt zijn eigen run
Als de nummer twee binnen vijf procent van de winnaar blijft, krijgen ze allebei een echte zoekactie op elk de helft van het tijdvenster en wint het beste resultaat. Een snelle schatting is goed in rangschikken en niet goed genoeg om te beslissen.
Wat niet past gaat door naar de volgende plaat
Alles wat niet geplaatst kon worden gaat opnieuw langs de overgebleven kandidaten en komt terug als tweede plaat, en als derde als het moet. Een kandidaat die geen enkel resterend deel kan huisvesten wordt overgeslagen in plaats van doorzocht, dus de lus eindigt altijd.
Een bewaarde rest houdt zijn echte vorm
Een rest wordt opgeslagen met zijn contour en niet alleen met een breedte en een hoogte, en de delen die er al uit zijn gehaald blijven als uitsnedes staan, zodat er nooit op lucht wordt genest. Alles verderop werkt in het eigen assenstelsel van de rest, dus zijn plaatsingen komen terug in de coördinaten waarin u snijdt.
De rest gaat terug in het rek
Op een rechthoekige plaat wordt het overschot bewaard als de twee schone stroken rechts van en boven het gebruikte gebied, dus als wat een schaar of een rechte snede werkelijk kan terugwinnen. Op een gevormde rest wordt het echte vrije gebied gemeten, en een stuk wordt alleen bewaard als de grootste rechthoek die er werkelijk in past de drempel haalt, zodat een groot maar splinterachtig gebied niet als bruikbare voorraad wordt geboekt.
Voorraad platen en restplatenVoorbeeldvoorraad

Van nesting naar snijbestand

Het deel dat de tafel werkelijk leest

Elke gesloten contour krijgt een insteek aan de afvalzijde van de lijn en een aanloop daarnaartoe, binnencontouren worden vóór de buitencontour van hetzelfde deel gesneden, en de delen worden op naaste buur geordend op hun insteekpunten vanaf de plaatoorsprong. Buitencontouren krijgen een uitloop het afval in. Rechte stukken komen als G1 en echte bogen worden hersteld als G2 en G3 met incrementele middelpuntsverschuivingen, in plaats van te worden platgeslagen tot duizend korte bewegingen.

Elke tafel is een machinerecord, en de postprocessordetails volgen die: de insteekvertraging na het ontsteken, precies de regels die uw hoogteregeling voor en na een snede verwacht, een voedingsplafond waartoe de uitgestuurde voeding wordt begrensd, en de naam van de machine in de kop. Dezelfde nesting komt er daardoor voor twee verschillende tafels correct uit zonder dat iemand het bestand aanraakt.

De baan zelf is instelbaar voordat u snijdt: snijspleetcompensatie, rechte of gebogen aanlopen met eigen lengte en hoek, snijrichting, het startpunt van een afzonderlijke contour weg van een hoek en het afval in geschoven en micro-verbindingen zodat delen aan de plaat blijven hangen. Dat staat allemaal standaard uit, en met alles uit is het bestand het eenvoudige, draagbare bestand.

In detail

Wat er uit een nesting komt

Zes dingen, elke keer, voor elke plaat die het werk nodig had.

Een indeling die aan de machine leesbaar is
Elke plaatsing als positie en rotatie in plaatcoördinaten, getekend op de plaat of de rest waar hij bij hoort, met de delen die in de uitsnedes van andere delen zitten als zodanig gemarkeerd.
Een benutting die gedefinieerd is
Echte deeloppervlakte gedeeld door het gebruikte gebied van de plaat, bijgesneden op de echte contour. Het is met opzet geen percentage van de hele plaat, want een getal over de hele plaat blijft hetzelfde hoe goed de delen ook liggen. Het betekent ook dat het getal niet vergelijkbaar is met een heleplaatpercentage uit een ander pakket, en het is nuttig te weten welke van de twee u leest.
Uitval, met de bewaarde rest eraf
Gemeten tegen de hele bruikbare plaat, waarbij alles wat als rest is bewaard eraf gaat, want een stuk dat terug in het rek gaat is geen uitval. Dat is het getal dat u vertelt of het werk u een plaat heeft gekost.
Een geschatte snijtijd met zijn onderdelen
Snijlengte bij de voeding uit uw procesparameters, plus de insteektijd voor elke insteek, plus het verplaatsen van de toorts tussen contouren op een gemodelleerde ijlgangsnelheid. Overal waar hij verschijnt staat er geschat bij, want hij modelleert een tafel en meet niet de uwe.
DXF en G-code uit dezelfde indeling
Een DXF met elke contour als gesloten polylijn op een CUT-laag en de plaatcontour op een eigen laag, bogen bewaard als bulge, in millimeters. Of woordadres-G-code met de postprocessordetails van de machine. De twee beschrijven dezelfde nesting.
Voorraad die zichzelf bijhoudt
Een nesting als gesneden markeren verbruikt de plaat of de rest waarop hij lag, bewaart elke rest die voldoet als nieuwe voorraadregel met zijn contour en een verwijzing naar de nesting die hem maakte, verhoogt het gesneden aantal op elke orderregel die de nesting dekte, en meldt lage voorraad wanneer een materiaal onder de door u ingestelde drempel zakt.

Delen erin krijgen

DXF erin, en het vertelt u wat het niet kon lezen

De import leest lijnen, bogen, cirkels en polylijnen inclusief gebogen segmenten, sluit open ketens tot gesloten contouren door eindpunten binnen een twintigste millimeter aan elkaar te klikken, en sorteert de gevonden lussen op insluiting in buitencontouren en uitsnedes. Een cirkel die als losse entiteit binnenkomt houdt zijn boog, dus hij gaat er als boog weer uit en wordt als boog gepost in plaats van als veelhoek die er een nadoet.

Wat het niet kan gebruiken zegt het hardop. Niet ondersteunde entiteitstypen worden per type geteld en gemeld, en elke keten die niet zou sluiten wordt weggelaten en als weggelaten gemeld. Een DXF zonder ook maar één gesloten contour krijgt dat helder te horen, in plaats van als leeg deel te worden geïmporteerd, want een leeg deel dat u aan de machine ontdekt is een dure manier om erachter te komen.

Delen kunnen ook in de browser worden getekend of uit de parametrische sjablonen van de preset worden gehaald, en elk deel draagt zijn eigen materiaal, dikte, oppervlakte, snijlengte en aantal insteken, en daarop groepeert en calculeert de wachtrij.

OnderdeeleditorBeeld van de interface

Eerlijk gezegd

Wat dit niet doet

Goed om te weten voordat u er werk naartoe verplaatst, want een pagina die dit weglaat is er een waar u het later over hoort.

Het nest vlakke contouren in twee dimensies. Geen afschuining, geen buis- of profielnesting, geen meerdere toortsen en geen snijden met een gemeenschappelijke lijn of aaneengeschakelde contouren: elke contour krijgt zijn eigen insteek en aanloop. Eén werk is één materiaal op één dikte, want zo groepeert de snijwachtrij het openstaande werk.

Het kiest uw snijparameters niet. Voeding, insteektijd en snijspleet komen uit de procesparameters die u per materiaal en dikte instelt, en elk getal dat daaruit volgt, de snijtijd voorop, staat gemerkt als schatting. Niets hier beslist over een stroomsterkte, een toortshoogte of een set slijtdelen.

Het is geen machinebesturing. Het levert een bestand, en uw besturing beweegt de tafel. De directe G-code wordt samen op uw eigen tafel gevalideerd voordat iemand erop vertrouwt, en de DXF-weg naar de CAM die u al draait is er juist zodat u dat niet op vertrouwen hoeft aan te nemen.

Tegenover indelen op het oog

Waar het helpt en waar niet

Een zorgvuldige operator die delen op het scherm indeelt is een echt antwoord, en op een eenvoudige plaat een goed antwoord. Dit verandert er.

Een met de hand ingedeelde plaat naast dezelfde delen genest.
TaakOp het oog op het schermKabaido
Twee concave contouren in elkaar schuivenAls iemand het zietGezocht, op de echte contouren
De uitsnede in een groot deel gebruikenZeldenGevuld waar een deel past
Nesten op een grillige restOp het oog, op de rechthoekOp de echte contour
Kiezen welke plaat wordt gesnedenWat het dichtst bij ligtGerangschikt, resten eerst gewogen
De delen die niet passenTweede plaat, opnieuw indelenAutomatisch doorgeschoven en genest
Een geslaagde nesting herhalenUit het hoofdOpgeslagen met zijn seed
Vastleggen wat overblijftEen briefje op het rek, als het meezitBewaard met zijn contour
Snijvolgorde en plaats van de instekenUw CAMUitgestuurd, of geëxporteerd naar uw CAM
Voeding, insteektijd en snijspleetDe uweDe uwe
De tafel besturenUw besturingUw besturing
Beslissen dat het werk zo gesneden kan wordenUU

Aan de slag

Nest een plaat die u al hebt gesneden

Geen kaart bij aanmelden, en het gratis plan is geen proefperiode.

Stap 1

Importeer de DXF-bestanden en voer de plaat in

Haal de contouren binnen van een werk dat u vorige maand sneed en voeg het formaat toe waarop u het sneed, rest of volle plaat.

Stap 2

Nest en vergelijk

Draai het en leg de indeling naast die u gesneden hebt. De benutting en de rest zijn de twee getallen waarover het zinvol is te discussiëren.

Stap 3

Exporteer en controleer het bestand

Neem de DXF mee naar de CAM die u al draait, of de G-code naar de tafel met het machineprofiel ingesteld, en controleer hem voordat u erop vertrouwt.

In het gesprek nesten we samen met u een van uw eigen werken, op uw eigen formaten, en wat eruit komt houdt u.

Vragen

Wat plasmabedrijven als eerste vragen

Nest een plaat die u al hebt gesneden en vergelijk de twee.

Meld u gratis aan, importeer de contouren, voer het formaat in waarop u sneed en draai het. Is de indeling niet beter dan die u met de hand maakte, vertel ons dan om welk werk het ging.