CNC-fräsning med öppen programvara

Jag letar alltid efter nya projekt att skapa med min 3D-skrivare. När jag nyligen såg en ny design för en CNC-fräsmaskin (Computer Numeric Code) som huvudsakligen använder 3D-utskrivna delar blev jag nyfiken. När jag såg att maskinen fungerar med programvara med öppen källkod och att styrenheten är en Arduino som kör programvara med öppen källkod visste jag att jag var tvungen att göra en.

CNC-fräsmaskiner är precisionsskärverktyg som används för att skapa matriser, graveringar och modeller. Till skillnad från andra fräsverktyg kan CNC-maskiner röra sig på tre axlar: Z-axeln rör sig vertikalt, X-axeln rör sig horisontellt och Y-axeln rör sig bakåt och framåt.

Den här CNC-maskinen är 3D-utskriven, men flera delar måste beställas för att få den att fungera. Dess skapare, Nikodem Bartnik, har en lista över delar på projektets Thingiverse-sida tillsammans med länkar för att ladda ner de 3D-printade delarnas STL-filer.

Jag beställde de nödvändiga delarna och började vänta. De skickades från utlandet, så en del av dem tog ungefär en månad att anlända. Under tiden 3D-printade jag de andra delarna.

CNC-maskinen är byggd på en Arduino-kontroller som kör den öppna källkodsmjukvaran GRBL för rörelsestyrning. GRBL-kontrollen tar emot CNC G-kod (en textbaserad lista med instruktioner för CNC-kvarnen) och översätter den till rörelse genom att driva stegmotorerna. Maskinen har en stegmotor för Z-axeln (uppåt och nedåt), en stegmotor för X-axeln (vänster och höger) och två stegmotorer för Y-axeln (bakåt och framåt). På GRBL:s webbplats finns dokumentation om hur man laddar GRBL på Arduinokortet.

Jag kommer inte att gå in på detaljer om monteringen av CNC-hårdvaran, eftersom Nikodem har en serie videor som förklarar det i detalj. Istället kommer jag att fokusera på den programvara med öppen källkod som kan användas för att skapa konstruktioner för och köra CNC-maskinen. Tillsammans med Fedora som mitt basoperativsystem är de andra delar av öppen källkodsmjukvara som jag använde GRBL, Inkscape, jscut och CNCjs.

För den här handledningen kommer jag att förklara hur man skapar en CNC-fräst, träversion av Larry Ewings Linux Tux-logotyp.

Gör dina filer

Det första steget mot att göra en Tux i trä är att ladda ner en svartvit version av logotypen i PNG-format från Wikimedia Commons.

cnc_bw-tux.png

Tux logotyp från Wikimedia Commons

Startpunkten för projektet, en PNG-bild av Tux från Wikimedia Commons, gjord av gg3po, licensierad under GPL v2.

För att Tux-logotypen ska kunna fungera på CNC-maskinen omvandlar du Tux PNG-fil till en SVG-fil med Inkscape genom att dra och släppa PNG-filen i Inkscape-fönstret. Använd sedan Inkscapes alternativ Trace Bitmap för att konvertera bilden till SVG-stigar. Detta skapar dubbla kopior av bilden – en är sökvägar, den andra är en bitmapp – radera bitmappkopian. Använd alternativet Break Apart och ta bort egenskapen Fill för konturerna av Tux och Tux mun; du får en SVG-bild som ser ut som den omvända bilden.

cnc_inverse-svg.png

Inverse Tux-fil skapad i Inkscape

Inverse Tux skapad i Inkscape. De svarta delarna kommer att fräsas ut av CNC-maskinen.

Nästan konverteras SVG-filen till CNC G-kod, vilket är en lista med instruktioner som talar om för CNC-maskinen hur den ska skapa den önskade designen. Jag använde den öppna källkodsmjukvaran jscut, som är ett webbaserat program för datorstödd tillverkning (CAM). Du kan ladda ner programmet och köra det på din lokala maskin eller använda den webbaserade versionen på jscut.org, vilket jag gjorde.

Öppna SVG-filen på jscut.org med hjälp av rullgardinsmenyn Öppna SVG. Klicka sedan på en eller flera delar av SVG-bilden och klicka sedan på Skapa operation. Välj typ av operation (gravyr, utvändig, ficka osv.) och skärdjup och klicka på Generera. De olika typerna av operationer definierar var snittet görs; du kan se effekterna av olika operationer genom att gå till fliken Simulera GCODE, som visar en förhandsgranskning av hur snittet kommer att se ut. För Tux skapade jag flera operationer för olika delar av konstruktionen.

cnc-jscut.png

Generering av Tux CNC G-kod med jscut

Generering av Tux CNC G-kod med jscut.

Inställ egenskaperna för din skärande bit under avsnittet Verktyg; dessa inkluderar att ange bitens diameter och hur snabbt snittet ska göras. En begränsning av jscut är att du inte kan ange olika bitsstorlekar för olika operationer. För att skapa Tux behövde jag använda två olika bitar: en mindre bit för att gravera detaljer som ögon, näsa och mun, och en större bit för att skära Tux kontur hela vägen genom träbrädan. Jag använde jscut två gånger för att skapa två olika G-kodfiler: en för att göra graveringarna med den mindre biten och en annan för att skära ut Tux kontur med den större biten.

När du har skapat de två G-kodfilerna är nästa uppgift att skaffa programvara för CNC-styrning. Jag använde den öppna källkoden CNCjs. CNCjs är webbaserad, lätt att använda och stöder gränssnitt med GRBL-styrenheter. När den är installerad får du tillgång till CNCjs i en webbläsare och ansluter den till din Arduino GRBL-styrenhet.

Klicka på Ladda upp G-kod och ange filen som du skapade med jscut. Först laddade jag G-kodfilen som gör graveringarna på toppen av Tux.

Var redo att skära

Du är nästan redo att börja skära! Eftersom du kommer att skära hela vägen genom träet är det smart att använda en ”spillbräda” – en bräda som sitter ovanpå CNC-maskinen och som du inte har något emot att skära in i. Detta beror på att när maskinen skär ut Tux kommer den att gå hela vägen igenom och in i brädan under den. Avfallsbrädan kan bytas ut vid behov.

cnc-wasteboard.jpg

Avfallsbräda

Avfallsbräda som visar tidigare snitt.

Fäst avfallstavlan på ett säkert sätt på CNC-maskinen för att förhindra att den rör sig. Fäst sedan den träbit som du ska använda för Tux. Det finns många sätt att fästa träet – jag använder kraftig dubbelhäftande matttejp.

Det sista steget innan du skär är att rikta in biten på spindeln mot träbiten du ska skära. Använd CNCjs axelknappar för att fysiskt flytta spindeln så att bitsens X-, Y- och Z-koordinater är i linje med det övre vänstra hörnet av träet. Z-axeln ska vara precis ovanför träet; du ska kunna föra en pappersbit mellan träet och biten men känna att biten drar på pappret när den glider.

När allt är uppriktat ställer du in arbetslägesförskjutningarna för X-, Y- och Z-axlarna till noll genom att klicka på knappen Set (Ställ in) för var och en av dem.

cnc-set-axes (CNC-set-axes).png

Nollställning av axlarnas arbetsposition

Sätt arbetspositionen till noll för X-, Y- och Z-axlarna.

Tryck på Z+-knappen i CNCjs för att höja biten lite så att spindeln inte gör ett märke i träet när den sätts på.

För att börja skära tar du på dig skyddsglasögon, hörselskydd och dammask. Slå sedan på spindeln och klicka på Play-knappen i CNCjs.

Bevaka maskinen noga under kapningen och ha en plan för att snabbt koppla bort strömmen till CNC-maskinen och spindeln om det behövs. Var också redo med en dammsugare, eftersom det kommer att uppstå mycket sågspån.

När den första G-kodfilen avslutar graveringarna på Tux, stäng av spindeln och tryck på X0Y0-knappen i CNCjs för att återföra spindeln till X- och Y-axelns arbetsläge i hemmet. Byt sedan till den större biten, ladda upp G-kodfilen som kommer att skära ut Tux kontur och följ samma process för att köra den.