CNC marás nyílt forráskódú szoftverrel

Mindig új projekteket keresek, amelyeket a 3D nyomtatómmal készíthetek. Amikor nemrég megláttam egy új tervezetet egy számítógépes numerikus kódú (CNC) marógéphez, amely főként 3D nyomtatott alkatrészeket használ, kíváncsivá tett. Amikor megláttam, hogy a gép nyílt forráskódú szoftverrel működik, a vezérlő pedig egy nyílt forráskódú szoftvert futtató Arduino, tudtam, hogy egyet el kell készítenem.

A CNC marógépek precíziós vágószerszámok, amelyeket szerszámok, metszetek és modellek készítésére használnak. Más marószerszámokkal ellentétben a CNC-gépek három tengelyen tudnak mozogni: a Z tengely függőlegesen, az X tengely vízszintesen, az Y tengely pedig előre és hátrafelé mozog.

DIY your CNC

Míg ennek a CNC-gépnek sok alkatrésze 3D nyomtatással készült, számos alkatrészt meg kell rendelni ahhoz, hogy működjön. A készítője, Nikodem Bartnik a projekt Thingiverse oldalán megtalálható az alkatrészek listája, valamint a 3D nyomtatott alkatrészek STL fájljainak letöltésére szolgáló linkek.

Megrendeltem a szükséges alkatrészeket, és elkezdtem várni. A tengerentúlról szállították őket, így némelyiknek körülbelül egy hónapig tartott, mire megérkeztek. Közben 3D-nyomtattam a többi alkatrészt.

A CNC-gép egy Arduino vezérlőre épül, amelyen a nyílt forráskódú GRBL mozgásvezérlő szoftver fut. A GRBL-vezérlő CNC G-kódot (a CNC-malomnak szóló szöveges utasításlista) kap, és azt a léptetőmotorok meghajtásával mozgásra fordítja. A gép egy léptetőmotorral rendelkezik a Z tengelyhez (fel és le), egy léptetőmotorral az X tengelyhez (balra és jobbra), és két léptetőmotorral az Y tengelyhez (előre és hátra). A GRBL weboldalán dokumentáció található a GRBL Arduino kártyára való betöltéséhez.

A CNC hardver összeszerelésének részleteibe nem megyek bele, mivel Nikodemnek van egy videósorozata, amely részletesen elmagyarázza azt. Ehelyett a nyílt forráskódú szoftverre fogok összpontosítani, amely a CNC-gép terveinek elkészítéséhez és futtatásához használható. A Fedora mint alap operációs rendszer mellett az általam használt nyílt forráskódú szoftverek a GRBL, az Inkscape, a jscut és a CNCjs.

Ezzel a bemutatóval azt fogom elmagyarázni, hogyan lehet elkészíteni Larry Ewing Linux Tux logójának CNC-faragott, fából készült változatát.

Fájlok elkészítése

A fából készült Tux elkészítésének első lépése a logó fekete-fehér változatának letöltése PNG formátumban a Wikimedia Commonsról.

cnc_bw-tux.png

Tux logó a Wikimedia Commonsból

A projekt kiindulópontja, a Tux PNG formátumú képe a Wikimedia Commonsból, amelyet gg3po készített, a GPL v2 licenc alatt.

Hogy a Tux logó működhessen a CNC-gépen, alakítsuk át a Tux PNG-fájlt SVG-fájllá az Inkscape programmal, a PNG-fájlt az Inkscape ablakba húzva. Ezután használja az Inkscape Trace Bitmap opcióját a kép SVG-útvonalakká alakításához. Ez létrehozza a kép két példányát – az egyik az elérési utak, a másik a bittérkép -, törölje a bittérképes példányt. Használd a Break Apart opciót, és távolítsd el a Tux körvonalának és Tux szájának Fill tulajdonságát; így egy olyan SVG-képet kapsz, amely úgy néz ki, mint az eredeti kép inverze.

cnc_inverse-svg.png

Inverz Tux-fájl Inkscape-ben létrehozva

Inverz Tux Inkscape-ben létrehozva. A fekete részeket a CNC-gép fogja kifaragni.

A következő lépésben az SVG-fájlt CNC G-kóddá alakítjuk, amely egy utasításlista, amely megmondja a CNC-gépnek, hogyan hozza létre a kívánt mintát. Én a nyílt forráskódú jscut szoftvert használtam, amely egy webalapú, számítógéppel támogatott gyártási (CAM) program. Letöltheti a szoftvert, és futtathatja a helyi gépén, vagy használhatja a webalapú verziót a jscut.org oldalon, amit én is tettem.

Nyissa meg az SVG-fájlt a jscut.org oldalon az Open SVG legördülő menü segítségével. Ezután kattintson az SVG-kép egy vagy több részére, majd kattintson a Create Operation (Művelet létrehozása) gombra. Válassza ki a művelet típusát (vésés, külső, zseb stb.) és a vágás mélységét, majd kattintson a Generálás gombra. A különböző művelettípusok határozzák meg a vágás helyét; a különböző műveletek hatásait a GCODE szimulálása lapra lépve láthatja, amely egy előnézetet mutat arról, hogyan fog kinézni a vágás. A Tux esetében több műveletet hoztam létre a terv különböző részeihez.

cnc-jscut.png

A Tux CNC G-kódjának generálása jscut segítségével

A Tux CNC G-kódjának generálása jscut segítségével.

A vágófej tulajdonságainak beállítása a Szerszám szakaszban; ezek közé tartozik a vágófej átmérőjének és a vágás sebességének megadása. A jscut egyik korlátja, hogy nem adhat meg különböző bitméreteket a különböző műveletekhez. Tux létrehozásához két különböző bitet kellett használnom: egy kisebb bitet a részletek, például a szemek, az orr és a száj véséséhez, és egy nagyobb bitet Tux körvonalának teljes átvágásához a fatáblán. Kétszer használtam a jscut-ot, hogy két különböző G-kód fájlt generáljak: az egyiket a vésések elkészítéséhez a kisebb fúróval, a másikat pedig Tux körvonalának kivágásához a nagyobb fúróval.

A két G-kód fájl elkészítése után a következő feladat a CNC vezérlő szoftver beszerzése. Én a nyílt forráskódú CNCjs-t használtam. A CNCjs webalapú, könnyen használható, és támogatja a GRBL vezérlőkkel való kapcsolódást. Miután telepítettük, érjük el a CNCjs-t egy webböngészőben, és csatlakoztassuk az Arduino GRBL vezérlőnkhöz.

Kattintsunk a G-kód feltöltésére, és adjuk meg a jscut segítségével létrehozott fájlt. Először azt a G-kód fájlt töltöttem be, amely a Tux tetején lévő véseteket készíti.

Készen áll a vágásra

Majdnem készen állsz a vágás megkezdésére! Mivel végig fogod vágni a fát, okos dolog egy “hulladéktáblát” használni – egy olyan táblát, amely a CNC-gép tetején helyezkedik el, és amelybe nem bánod, ha bele kell vágnod. Ez azért van így, mert amikor a gép kivágja a Tuxot, az egészen átmegy rajta, és az alatta lévő deszkába hatol. A hulladéktábla szükség szerint cserélhető.

cnc-hulladéktábla.jpg

Hulladéktábla

A hulladéktábla a korábbi vágásokat mutatja.

Biztosan rögzítse a hulladéktáblát a CNC-gépéhez, hogy megakadályozza a mozgást, majd rögzítse a Tuxhoz használt fadarabot. Sokféleképpen rögzítheti a fadarabot – én nagy teherbírású, kétoldalas szőnyegszalagot használok.

A vágás előtti utolsó lépés az, hogy a bitet az orsón a vágandó fadarabhoz igazítsa. Használja a CNCjs tengelyek gombjait az orsó fizikai mozgatásához, hogy a bit X, Y és Z koordinátái a fa bal felső sarkához igazodjanak. A Z tengelynek éppen a fa fölött kell lennie; egy papírdarabot kell tudnia becsúsztatni a fa és a fúrófej közé, de éreznie kell, hogy a fúrófej csúszás közben húzódik a papíron.

Ha minden egy vonalban van, állítsa nullára az X, Y és Z tengelyek munkapozíció-eltolódásait az egyes tengelyek Set gombjára kattintva.

cnc-set-axes.png

A tengelyek munkapozíciójának nullára állítása

A munkapozíció nullára állítása az X, Y és Z tengelyeknél.

Nyomja meg a Z+ gombot a CNCjs-ben, hogy a fúrófejet egy kicsit megemelje, hogy az orsó ne hagyjon nyomot a fában, amikor bekapcsolja.

A vágás megkezdéséhez vegye fel a védőszemüveget, a hallásvédőt és a porvédő maszkot. Ezután kapcsolja be az orsót, és kattintson a Lejátszás gombra a CNCjs-ben.

Vágás közben szorosan figyelje a gépet, és készítsen tervet arra, hogy szükség esetén gyorsan lekapcsolja a CNC-gép és az orsó áramellátását. Legyen készenlétben egy porszívó is, mert rengeteg fűrészpor fog keletkezni.

Amikor az első G-kódfájl befejezi a Tuxon a gravírozást, kapcsolja ki az orsót, és nyomja meg az X0Y0 gombot a CNCjs-ben, hogy az orsó visszatérjen az X és Y tengelyek kiindulási munkapozíciójába. Ezután váltson át a nagyobb bitre, töltse fel a Tux körvonalát kivágó G-kód fájlt, és kövesse ugyanezt a folyamatot a futtatásához.