
Leikkauslistaoptimoija vs Excel: Milloin taulukkolaskenta ei riitä
Excel on ensimmäinen työkalu, johon useimmat ihmiset turvautuvat, kun he tarvitsevat leikkauslistan järjestämiseen. Se on loogista — osaat jo käyttää sitä, se löytyy jokaiselta tietokoneelta, ja osien mitat sisältävä taulukko tuntuu juuri taulukkolaskentaongelmalta. Kunnes yrität selvittää, miten nämä osat mahtuvat levylle. Siinä kohtaa Excel törmää seinään.
Jokaisella puuseppäfoorumilla, jokaisella valmistuksen kysymys-vastaus-palstalla ja jokaisessa Excel-yhteisössä on sama ketju. Joku julkaisee taulukon, jossa on osien nimet, pituudet, leveydet ja määrät. Sitten he kysyvät: "Miten saan Excelin kertomaan tehokkaimman tavan leikata nämä osat varastolevyistäni?"
Vastaukset vaihtelevat "käytä Solveria" -neuvoista "kirjoita VBA-makro" -ehdotuksiin ja "et voi — käytä erillistä ohjelmistoa" -toteamuksiin. Totuus on jossain siltä väliltä, ja ymmärtämällä tarkalleen, missä Excel lakkaa olemasta hyödyllinen, voit päättää, milloin tarvitset oikean leikkauslistan optimointiohjelman.
Missä Excel on hyvä
Annetaan Excelille tunnustus. Leikkauslistan suunnittelun ensimmäisessä vaiheessa — osaluettelon rakentamisessa — Excel on täysin riittävä. Itse asiassa se on hyvä.
Voit listata jokaisen osan nimen, pituuden, leveyden, paksuuden, määrän, materiaalityypin, syynsuunnan ja muistiinpanot. Voit käyttää kaavoja laskemaan kokonaispinta-alan, reunanauhoituksen kokonaispituuden ja arvioidun materiaalikustannuksen. Voit lajitella, suodattaa ja ryhmitellä osia materiaalin tai kaapin mukaan. Voit jakaa taulukon tiimisi kanssa.
Jos tarvitset vain osaluettelon — jäsennellyn taulukon siitä, mitä leikata — Excel hoitaa homman. Siksi CutGrid (ja useimmat muut leikkauslistan optimointiohjelmat) antavat sinun tuoda tiedot suoraan Excelistä ja CSV-tiedostoista. Taulukkolaskenta on loistava paikka rakentaa listasi. Se ei vain ole oikea paikka asettelun optimointiin.
Missä Excel pettää
Heti kun kysyt "miten minun pitäisi järjestää nämä osat levyilleni?", olet poistunut taulukkolaskentakaavojen alueelta ja astunut kombinatorisen optimoinnin alueelle. Tässä syy, miksi sillä on merkitystä.
2D-sijoitteluongelma on NP-kova
Tämä ei ole pelkkää jargonia — sillä on käytännöllinen merkitys. "NP-kova" tarkoittaa, että mahdollisten järjestelyjen määrä kasvaa niin nopeasti, ettei mikään tietokone pysty kokeilemaan niitä kaikkia kohtuullisessa ajassa, edes vaatimattomilla syötteillä.
Otetaan yksinkertainen esimerkki: 20 osaa yhdellä levyllä. Jokainen osa voidaan sijoittaa mihin tahansa kohtaan, ja useimpia voidaan kääntää 90°. Mahdollisten järjestelyjen määrä on astronominen — paljon suurempi kuin atomien määrä maailmankaikkeudessa. Parhaan löytäminen vaatii erikoistuneita algoritmeja, jotka etsivät ratkaisutilaa älykkäästi heuristiikkojen avulla, ei raakaa voimaa käyttäen.
Excelin Solver-apuohjelma pystyy käsittelemään yksinkertaisia lineaarisia optimointiongelmia. Mutta 2D-levypakkaus kierrolla, leikkausraolla, syynsuunnalla ja useilla levyillä ei ole lineaarinen ongelma. Solver ei joko pysty mallintamaan sitä lainkaan, tai se pyörii tunteja ja tuottaa heikon tuloksen.
Ei visuaalista asettelua
Vaikka jotenkin laskisit optimaalisen järjestelyn Excelissä, sinun täytyisi silti piirtää se. Leikkauslistan optimointiohjelma tuottaa visuaalisen leikkauskaavion — värikoodatun kartan, joka näyttää tarkalleen, missä kukin osa sijaitsee kullakin levyllä, mitat, osien nimiöt ja leikkausjärjestyksen. Tämä on se, mitä tulostat ja viet sahalle.
Excelissä sinun täytyisi piirtää suorakulmioita manuaalisesti kaavioon tai ulkoiseen piirtotyökaluun. Jokaiselle levylle. Joka kerta, kun muutat mittaa tai lisäät osan.
Ei leikkausraon kompensointia
Kun sahanterä kulkee materiaalin läpi, se poistaa materiaalikaistaleen — leikkausraon. Tyypillinen levysahan leikkausrako on 3–3,5 mm. Leikkauslistan optimointiohjelma lisää tämän välin automaattisesti jokaisen vierekkäisen osaparin väliin.
Excelissä sinun täytyisi lisätä leikkausraon varat manuaalisesti jokaiseen mittakaavaan. Jos sinulla on 40 osaa useilla levyillä, se tarkoittaa kymmeniä ylimääräisiä kaavoja — joista jokainen on mahdollinen virhelähde. Ja jos muutat leikkausraon arvoa (koska vaihdoit terän), sinun täytyisi päivittää jokainen kaava.
Ei algoritmivalintaa
Erillinen optimointiohjelma antaa sinun valita Giljotiini- ja Standardi (Hylly) -algoritmien välillä laitteistosi mukaan. Giljotiini varmistaa, että jokainen leikkaus kulkee reunasta reunaan (levysahoille). Standardi mahdollistaa joustavan sijoittelun (CNC:lle). Excel ei tiedä, mikä giljotiinileikkaus on.
Ei usean levyn optimointia
Oikeat projektit käyttävät useita levyjä. 40-osainen keittiökaappiprojekti saattaa tarvita 3–4 MDF-levyä. Optimointiohjelma päättää, mitkä osat menevät millekin levylle, jotta kokonaisjäte kaikilla levyillä minimoituu — ei vain yhdellä levyllä kerrallaan.
Excelissä sinun täytyisi manuaalisesti jakaa osat levyille, sitten manuaalisesti tarkistaa, mahtuvatko ne, ja sitten manuaalisesti järjestellä uudelleen, kun ne eivät mahdu. Muuta yhtä mittaa ja koko jako saattaa täytyä tehdä uudelleen.
Ei ylijäämäpalojen seurantaa
Kun olet leikannut levyn, jäljelle jää ylijäämäpaloja — käyttökelpoisia materiaalikappaleita, jotka ovat liian pieniä nykyiseen projektiin, mutta saattavat olla täydellisiä seuraavaan. Leikkauslistan optimointiohjelma seuraa näitä ylijäämäpaloja varastokirjastossasi ja käyttää niitä uudelleen tulevissa projekteissa.
Excel ei tiedä ylijäämäpalojesi olemassaolosta.
VBA-makrolähestymistapa
Jotkut kekseliäät käyttäjät ovat kirjoittaneet VBA-makroja, jotka yrittävät perusmuotoista 1D-leikkausoptimointia Excelissä. Nämä toimivat lineaarisille materiaaleille — pituuksien leikkaamiseen tangosta tai putkesta — joissa ongelma on yksiulotteinen.
Tyypillinen VBA-lähestymistapa lajittelee osat pituuden mukaan (pisin ensin), jakaa ne varastopituuksille käyttäen first-fit decreasing -algoritmia ja raportoi tarvittavan kokonaisvaraston ja jätteen per tanko. Yksinkertaiseen lineaariseen leikkaamiseen — alumiiniprofiileihin, puutavaratolppiin, teräsputkiin — tämä voi toimia kohtuullisen hyvin.
Mutta rajoituksia on merkittävästi:
Vain 1D. VBA-makrot 2D-levysijoitteluun ovat erittäin harvinaisia ja erittäin hauraita. Algoritmin monimutkaisuus kasvaa dramaattisesti, kun lisäät toisen ulottuvuuden, kierron ja leikkausraon.
Ei visuaalista tulostetta. Makro antaa sinulle tekstilistan — "Tanko 1: leikkaa 2400, leikkaa 1800, jäte 300" — mutta ei kaaviota. Sinun täytyy rekonstruoida asettelu mielessäsi, mikä kutsuu virheitä.
Hauras koodi. VBA-makrot hajoavat, kun muutat taulukon rakennetta, nimeät sarakkeet uudelleen tai avaat tiedoston eri Excel-versiossa. Niitä on vaikea debugata ja mahdoton ylläpitää, ellei sinä itse kirjoittanut niitä.
Ei leikkausrakoa, ei reunaleikkausta, ei syynsuuntaa. Useimmat VBA-makrot jättävät huomiotta sahan leikkausraon, levyn reunaleikkausvarat ja syynsuunnan. Näiden parametrien lisääminen tekee koodista huomattavasti monimutkaisempaa — ja useimmat käyttäjät, jotka pystyvät kirjoittamaan sen tasoista VBA:ta, hyötyisivät enemmän erillisen sovelluksen kirjoittamisesta.
Suorituskyky. VBA on hidas. Monimutkainen 2D-optimointi, johon CutGridiltä menee alle sekunti, saattaa viedä VBA-makrolta minuutteja — tai kaataa Excelin kokonaan.
Solver-lähestymistapa
Excelin sisäänrakennettu Solver on aito optimointityökalu. Se pystyy ratkaisemaan lineaarisia ohjelmointiongelmia, ja sillä on evolutionaarinen ratkaisija epälineaarisiin ongelmiin. Jotkut käyttäjät ovat yrittäneet mallintaa leikkauslistan optimointia Solverin avulla.
Asetukset ovat monimutkaiset: määrittelet päätösmuuttujat (mihin kukin osa sijoitetaan), rajoitteet (ei päällekkäisyyttä, levyn rajojen sisällä, leikkausrakovälit) ja tavoitefunktion (minimoi jäte). Hyvin pienille ongelmille — 5–8 osaa yhdellä levyllä — Solver voi joskus löytää kohtuullisen ratkaisun.
Mitä suuremmaksi ongelma kasvaa, sitä enemmän Solver törmää rajoihinsa. Ilmainen versio on rajoitettu 200 päätösmuuttujaan. Jopa maksullinen versio (OpenSolver tai Solver-apuohjelmat) kamppailee 2D-pakkauksen epälineaaristen rajoitteiden kanssa. Eikä silti saa visuaalista asettelua — vain taulukon koordinaateista.
Käytännön vertailu: sama projekti, kaksi työkalua
Tehdään tästä konkreettinen. Rakennat viisi kirjahyllyä 18 mm:n koivuvanerista. Varastolevy: 2440 × 1220 mm. Leikkausrako: 3 mm. Reunaleikkaus: 10 mm.
Osa | Pituus (mm) | Leveys (mm) | Määrä | Yhteensä |
|---|---|---|---|---|
Sivupaneeli | 1800 | 300 | 10 | 10 |
Ylä-/alapaneeli | 564 | 300 | 10 | 10 |
Hylly | 564 | 280 | 15 | 15 |
Takaräjähdys | 564 | 80 | 10 | 10 |
Jalkalista | 600 | 100 | 5 | 5 |
Yhteensä: 50 osaa.
Excelissä: Listaat osat (2 minuuttia). Lasket kaikkien osien kokonaispinta-alan: noin 10,2 m². Jokainen levy on 2,98 m². Tarvitset siis vähintään 3,4 levyä — eli vähintään 4 levyä, todennäköisesti 5, kun otat huomioon leikkausraon ja reunaleikkauksen. Mutta kuinka monta tarvitset oikeasti? Et tiedä, koska et näe, miten osat sopivat. Saatat arvata 5 tai 6 levyä ja ostaa sen mukaan. Jos arvauksesi on väärä, olet taas puutavaraliikkeessä.
CutGridissä: Syötät samat osat (tai tuot Excel-tiedoston — 30 sekuntia). Asetat leikkausraoksi 3 mm ja reunaleikkaukseksi 10 mm. Painat Optimoi. Alle sekunnissa CutGrid tuottaa asettelun: 4 levyä, 86 %:n materiaalin hyödyntämisaste, selkeällä kaaviolla, joka näyttää tarkalleen, mihin kukin osa menee. Viet PDF:n sahalle.
Ero: Excel kertoi sinulle "todennäköisesti 5 levyä, ehkä 6." CutGrid kertoi sinulle "tarkalleen 4 levyä, näin ne leikataan, ja nämä ovat ylijäämäpalat, jotka voit säästää." Yksi levy säästetty, 40–80 € takaisin taskuusi.
Milloin Excel on silti oikea valinta
Rehellisyyden nimissä on tilanteita, joissa Excel on aidosti riittävä:
Rakennat osaluetteloa, et optimoi. Jos tarvitset vain listata osat mitoineen ja laskea materiaalin pinta-alan, Excel riittää. Tuo sitten lista CutGridiin optimointivaihetta varten.
Sinulla on 5 osaa tai vähemmän. Jos leikkaat pienen hyllyn tai yksinkertaisen laatikon, pystyt todennäköisesti järjestämään osat levylle päässäsi. Optimointiohjelma lisää tarpeetonta monimutkaisuutta triviaaleille projekteille.
Teet 1D-lineaarista leikkausta yksinkertaisella makrolla. Pituuksien leikkaamiseen tangoista tai putkista — joissa ongelma on yksiulotteinen ja sinulla on toimiva VBA-makro — Excel voi tuottaa kohtuullisia tuloksia. Kuilu yksinkertaisen VBA-makron ja erillisen lineaarisen optimointiohjelman välillä on pienempi kuin kuilu 2D-levyoptimoinnissa.
Olet kentällä ja sinulla on vain puhelin. Nopea taulukko Google Sheetsillä materiaalimäärien arvioimiseksi on parempi kuin ei mitään. Mutta CutGrid toimii myös missä tahansa selaimessa — myös puhelimellasi — joten tämä etu on katoamassa.
Hybridityönkulku: Excel + optimointiohjelma
Monille työpajoille paras lähestymistapa yhdistää molemmat työkalut. Tässä on toimiva työnkulku:
Vaihe 1: Rakenna leikkauslistasi Excelissä. Käytä taulukkoa siihen, missä se on hyvä: tietojen järjestämiseen. Listaa osat, laske määrät, seuraa materiaaleja, arvioi kustannukset. Jos sinulla on malli, jota olet käyttänyt vuosia, jatka sen käyttöä.
Vaihe 2: Tuo CutGridiin. Tallenna Excel-tiedostosi .xlsx- tai .csv-muodossa. Tuo se CutGridiin. Osat, mitat, määrät ja materiaalityypit siirtyvät suoraan — ei uudelleenkirjoittamista.
Vaihe 3: Optimoi ja vie. Aseta leikkausrako, reunaleikkaus ja algoritmi. Suorita optimointi. Vie leikkauskaavio PDF:nä tuotantotiloihin tai DXF:nä CNC:lle.
Vaihe 4: Päivitä Excel-tiedostosi. Optimoinnin jälkeen vie tulokset takaisin Exceliin, jos tarvitset tietoja olemassa olevassa työnkulussasi — kustannusraportit, ostotilaukset, varastopäivitykset.
Tämä työnkulku kunnioittaa olemassa olevaa prosessiasi samalla kun lisää sen yhden asian, jota Excel ei pysty tekemään: tilaoptimointia.
Matematiikka sen takana, miksi taulukkolaskenta ei pysty kilpailemaan
Jos olet utelias, miksi tämä ongelma on niin vaikea taulukkolaskennalle, tässä on intuitio.
1D-ongelmassa (pituuksien leikkaaminen tangosta) mahdollisten järjestelyjen määrä kasvaa faktoriaalisesti — 20 osalla on 20! (noin 2,4 kvintiljoona) mahdollista järjestystä. Mutta hyvät heuristiikat, kuten first-fit decreasing, voivat ratkaista tämän tehokkaasti, koska niiden tarvitsee vain päättää, mille tangolle kukin pituus menee.
2D-ongelmassa (suorakulmioiden leikkaaminen levystä) jokaisella osalla on X-koordinaatti, Y-koordinaatti ja kierto. Rajoitteet (ei päällekkäisyyttä, rajojen sisällä, leikkausrakovälit) luovat monimutkaisen geometrisen ongelman, jota ei voida pelkistää yksinkertaiseksi järjestykseksi. Päätösmuuttujien määrä kasvaa 3n:nä (kolme muuttujaa per osa), ja rajoitteet kasvavat n²:na (jokainen osapari ei saa olla päällekkäin).
50 osalla se tarkoittaa 150 päätösmuuttujaa ja 2 500 ei-päällekkäisyysrajoitetta. Excelin Solver on suunniteltu ongelmiin, joissa on kymmeniä muuttujia, ei satoja. Ja vaikka se pystyisi käsittelemään koon, geometriset rajoitteet ovat epälineaarisia — ne sisältävät "joko/tai"-ehtoja, joita Solver käsittelee huonosti.
Siksi erilliset leikkauslistan optimointiohjelmat ovat olemassa. Ne käyttävät erikoistuneita algoritmeja — hyllyistä heuristiikkoja, geneettisiä algoritmeja, simuloitua jäähdytystä ja hybridilähestymistapoja — jotka on rakennettu nimenomaan tätä ongelmaluokkaa varten. Ne löytävät lähes optimaalisia ratkaisuja sekunneissa, ei tunneissa.
Tärkeimmät opit
Excel on erinomainen osaluettelon rakentamiseen. Jatka sen käyttöä tietojen syöttämiseen, laskemiseen ja järjestämiseen. Se on maailman paras taulukkolaskentaohjelma syystä.
Excel ei ole asettelun optimointiohjelma. Heti kun sinun täytyy päättää, miten osat sopivat levyille, tarvitset eri työkalun. 2D-sijoitteluongelma on matemaattisesti vaikea — liian vaikea Solverille, liian vaikea VBA-makroille ja liian visuaalinen soluruudukolle.
Todellinen hukka ei ole ohjelmistokustannuksissa — se on ylimääräisissä levyissä. CutGrid-tilaus maksaa vähemmän kuin yksi koivuvanerilevy. Jos optimointiohjelma säästää sinulle edes yhden levyn per projekti, se maksaa itsensä takaisin välittömästi.
Tuo, älä kirjoita uudelleen. CutGrid lukee Exceliä ja CSV:tä natiivisti. Taulukkolaskentasi on syöte; optimointiohjelma on moottori; leikkauskaavio on tuloste.
Käytätkö vielä Exceliä leikkauslistoihisi?
Tuo taulukkosi CutGridiin ja katso ero. Osaluettelosi pysyy samana — saat vain älykkäämmän asettelun.