Zaaglab

ZaaglabGidsen › Zo werkt een zaagschema-optimizer

Zo werkt een zaagschema-optimizer

Geen jargon, gewoon het idee achter de tool. Wat "optimaliseren" echt betekent, waarom het zaagblad de rekensom verandert, en waarom er meer dan één goed antwoord is, afhankelijk van wat jij belangrijk vindt.

Zie het op je eigen onderdelen Voer een paar maten in en zie de indeling en zaaglijst verschijnen. Gratis, in je browser, zonder account.
Open de tool →

Het probleem in één zin

Je hebt een lijst onderdelen om te zagen, elk met een lengte, een breedte en een aantal. Je koopt materiaal in hele platen. De taak van een zaagschema-optimizer is om al die onderdelen op zo min mogelijk platen (en je overgebleven restplaten) te leggen, zodat je het minste materiaal verspilt, en wel zó dat elke snede ook echt te maken is. Dat laatste maakt het interessant.

Kerf: het zaagblad eet materiaal op

Elke snede neemt een dun strookje materiaal weg, zo breed als het zaagblad. Dat strookje heet de kerf, en het is vaak rond 3 mm. Klinkt verwaarloosbaar, maar over een hele plaat vol onderdelen telt het op, en houdt de optimizer er geen rekening mee, dan komen je onderdelen net te klein uit. Een goede optimizer trekt de kerf bij elke snede af, zodat de getallen op je scherm kloppen met het hout in je handen. In Zaaglab stel je de kerf één keer in en geldt hij voor de hele plaat.

Guillotinesnedes: de indeling moet zaagbaar zijn

Een mooie indeling is nutteloos als je hem niet kunt zagen. Een cirkelzaag, een invalzaag en de zaagservice van de bouwmarkt maken allemaal guillotinesnedes: één rechte snede die helemaal over het stuk loopt, van rand tot rand. Dat betekent dat de indeling moet uiteenvallen in een reeks volledige snedes, niet in een legpuzzel van vormen die geen zaag uit elkaar krijgt. Een optimizer die guillotinesnedes respecteert geeft je een plan dat je op volgorde kunt volgen, en kan je daarom ook een genummerde zaagvolgorde meegeven voor aan de werkbank of mee naar de bouwmarkt.

Recht zagen of een CNC-frees

Guillotinesnedes zijn een eis van de cirkelzaag, niet van de tool. Heb je een CNC-frees, dan kan die ook binnenwerkse uitsnijdingen maken en mag de indeling compacter (niet-guillotine). Zaaglab heeft daarvoor een CNC-modus (in Instellingen) die de stukken zo dicht mogelijk pakt; het overgebleven materiaal balt dan vaak samen tot één grote bruikbare reststrook in plaats van verspreid afval. Zo'n indeling is bewust niet met een cirkelzaag of rail te zagen: je exporteert hem als DXF (Exporteren › CNC-export) en stuurt die naar je freesmachine. Veel tools tonen standaard zulke niet-zaagbare indelingen; wij houden de gewone berekening juist altijd recht zaagbaar, en zetten de CNC-modus als bewuste keuze apart. Voor de meeste klussers laat je de modus uit en hou je een plan dat je gewoon op de zaag legt.

Probeer het verschil zelf: open de CNC-puzzel, een windmolen-achtige set stukken die de CNC-modus op 2 platen legt, terwijl de gewone zaagmodus er 4 voor nodig heeft. Zet in Instellingen de CNC-modus aan en uit om de twee indelingen te vergelijken.

Hoe de optimizer een goede indeling vindt

Dit is het eerlijke deel: rechthoeken perfect op platen passen is zo'n probleem dat onmogelijk traag wordt om exact op te lossen zodra je meer dan een handvol onderdelen hebt. Optimizers jagen daarom niet op het perfecte antwoord, maar gebruiken sterke vuistregels (heuristieken). Zaaglab probeert meerdere pakstrategieën, bijvoorbeeld onderdelen in verschillende volgordes sorteren en op verschillende manieren plaatsen, draait elke strategie en houdt het beste resultaat. Daarna besteedt het nog wat tijd aan het verder verbeteren van dat resultaat. De uitkomst is near-optimaal: niet bewijsbaar perfect, maar consequent beter dan met de hand indelen, en in een seconde of twee klaar.

Onderdelen zonder nerf-eis mogen draaien, zodat ze in krappere gaten passen. Onderdelen die je op nerf vastzet blijven goed georiënteerd, ook al kost dat soms een beetje rendement, want een doorlopende nerf telt zwaarder dan dat laatste procentje.

Geverifieerd optimaal: de knop "Grondig zoeken"

Omdat het standaardresultaat al in een seconde near-optimaal is, kun je op Grondig zoeken drukken om dat te laten verifiëren. De tool blijft dan op de achtergrond duizenden extra indelingen proberen met zwaardere zoektechnieken (simulated annealing en een genetisch algoritme bovenop de gewone strategieën) en houdt de beste. Vindt hij iets beters, dan neemt hij dat automatisch over; vindt hij na honderden pogingen niets beters, dan weet je zeker dat je indeling zo goed als optimaal is. We tonen er een theoretische ondergrens bij: het minimaal aantal platen dat je op basis van de oppervlakte sowieso nodig hebt. Zo zie je hoe dicht je bij het wiskundige minimum zit. In de praktijk haalt de gewone berekening dat minimum vaak al, dus de knop geeft je vooral zekerheid, eerlijk gemeten in plaats van een loze belofte.

Er is meer dan één "beste": drie doelen

"Beste" hangt af van waarvoor je optimaliseert, en die trekken aan verschillende kanten. Zaaglab laat je het doel kiezen, en dat verandert de indeling echt:

DoelWat het bevoordeeltHandig wanneer
Minste afvalDrukt onderdelen samen om de minste platen te gebruikenMateriaal is duur of je wilt zo min mogelijk rest
Minste zaaghandelingenEenvoudiger indelingen met minder losse snedesJe zaagt met de hand of betaalt per snede bij de bouwmarkt
Laagste kostenGoedkoopste combinatie van platen, met de prijzen die je invultJe kunt plaatmaten of materialen mengen en wilt de laagste rekening

Dit is het deel dat de meeste tools overslaan. Puur op afval optimaliseren kan je een indeling met tientallen priegelsnedes geven, en dat is geen koopje als de bouwmarkt per snede rekent of je ze allemaal met een handzaag doet.

Restplaten eerst

Heb je al overgebleven platen liggen, dan zou een goede optimizer die moeten gebruiken vóór hij een verse plaat aansnijdt. Zaaglab houdt een restvoorraad bij over je projecten en legt onderdelen eerst op het kleinste passende stuk, zodat je stapel rest echt slinkt in plaats van groeit.

Probeer het op een echte zaag. Open de gratis tool, voer je onderdelen in, wissel het doel tussen minste afval en minste zaaghandelingen, en zie de indeling veranderen. Geen account, niets te installeren.

Veelgestelde vragen

Wat doet een zaagschema-optimizer precies?

Hij deelt je onderdelen in op zo min mogelijk platen en restplaten, met zo min mogelijk afval, rekening houdend met de kerf en de nerf, en vertelt hoeveel platen je nodig hebt en in welke volgorde je zaagt.

Wat is kerf en waarom telt het mee?

Kerf is de breedte die het zaagblad bij elke snede wegneemt, vaak rond 3 mm. Negeer je het, dan komen onderdelen te klein uit; een goede optimizer trekt het bij elke snede af.

Is het resultaat altijd wiskundig perfect?

Niet gegarandeerd. Perfect indelen is heel zwaar, dus optimizers proberen meerdere strategieën en houden de beste. In de praktijk is dat near-optimaal en beter dan met de hand.

Wat is een guillotinesnede?

Een snede die helemaal over het stuk loopt, van rand tot rand, zoals een cirkelzaag, invalzaag of zaagservice werkt. Indelingen uit guillotinesnedes zijn er die je echt kunt maken.