G-kodkommandon i 3D-utskrift
G-kod eller G-kod. Du har förmodligen hört den här termen tidigare eller läst den i ordlistan om du har sysslat med 3D-utskrift tidigare. I den här artikeln kommer jag att berätta vad en G-kod är och vad den används till vid 3D-utskrift. Jag kommer också att visa dig vilka G-Code-kommandon som är viktiga för dig om du vill börja med 3D-utskrift eller redan har börjat.
G-Code – vad är det här och vad används det till?
3D-skrivare kan inte göra så mycket med 3D-modeller i formaten .stl, .obj etc., eftersom de lagrar den geometriska formen, men inte hur 3D-skrivaren ska hantera den formen. ”Hur snabbt ska modellen skrivas ut i lager nummer 5?” och liknande frågor måste besvaras för 3D-skrivaren. Svaren finns i G-koden, som är 3D-skrivarens språk. Endast med en G-kod vet skrivaren vad den ska göra.
Slicern översätter 3D-modellen till G-kod och lägger även in maskinrelevanta data. Dessa definierades exakt för den 3D-skrivare som användes. Detta innebär att den G-kod som du skapat för ditt 3D-skrivarkit som Creality CR-10-skrivaren inte kommer att fungera för din vän med en Ultimaker 2.
För att göra detta måste de maskinrelevanta inställningarna ses över. Dessa inkluderar till exempel storleken på utskriftsbädden. Om denna inställning är felaktig kommer skrivaren att starta i mitten av din utskriftsbädd och kanske till och med utanför den med din vän.
Det är därför fördelaktigt att ha grundläggande kunskaper om G-koder för att kunna förstå felaktiga koder och förbättra dem vid behov. Observera att vissa kommandon börjar med bokstaven G, medan andra börjar med ett M.
De ofta använda G-kodkommandona och deras innebörd
I det följande kommer jag att visa dig vad respektive G-kodkommando säger, vilka individualiseringar som är möjliga och hur ett sådant G-kodkommando kan se ut.
G1 – Kommandot för linjär rörelse
Din 3D-skrivare utför kommandot G1 oftast. Därför är det inte dumt att ta en närmare titt på det. G1 talar om för din skrivare att förflytta sig i en rak linje till nästa punkt. Du kan använda det här kommandot för att styra en eller flera axlar.
Notera: Extrudern styrs som alla andra axlar. Du kan alltså styra materialflödet (extrudering) och indragningen av filamentet.
Värden:
Om du anger X, Y och Z kan du tala om för skrivaren vilka punkter den ska röra sig till. Observera dock att dessa kommandon utförs enligt typen av positionering (absolut/relativ) och därmed antingen flyttas till den exakta koordinaten eller till avståndet till den aktuella punkten.
Om du lägger till ett E-kommando kan du bestämma om 3D-skrivaren även ska extrudera på vägen, och i så fall hur mycket. Observera att extruderingslängden avser det material som pressas in i munstycket av mataren. Så om du säger åt skrivaren att extrudera 10 mm är längden som kommer ut ur munstycket inte 10 mm, utan mycket längre. Detta beror på att filamentet har en diameter på 1,75 mm eller 2,85 mm och att matrisen vanligtvis bara är 0,4 mm. Av denna anledning är E-värdena från skivaren lägre än det avstånd som skrivaren måste överbrygga.
F-kommandot talar om för skrivaren vilken hastighet den ska röra sig med. Denna hastighet anges alltid i mm/min, även om du har valt mm/s i skäraren. Så bli inte förvånad om G-koden innehåller de konverterade värdena.
Många 3D-skrivare behöver bara värdena för de axlar som faktiskt ska flyttas. Om du vill att endast X-axeln ska röra sig lägger du till X och ett F-värde för hastigheten.
Exempel:
G1 X0 Y0 F3000 | Driv på värmebädden till punkten X=0, Y=0 med en hastighet på 3000 mm/min. |
G1 Z10 F1000 | Förflytta Z-axeln till värdet Z=10mm med en hastighet på 1000 mm/min. |
G1 X30 E10 F1600 | Pressa 10 mm filament i munstycket medan du kör på värmebädden till punkten X=30 mm med en hastighet på 1600 mm/min. |
G4 pausar trycket under en bestämd tid
Med kommandot G4 har du möjlighet att pausa din skrivare under en viss tid.
Värden:
P000 – Skrivaren väntar under en viss tid i millisekunder.
S000 – Skrivaren väntar en viss tid i sekunder (detta kommando gäller endast Repetier, Marlin, RepRap Firmware och Smoothieware)
Exempel:
G4 P500 ; Vänta 500 millisekunder och gör ingenting under tiden – Under denna tid kan alla skrivarparametrar, t.ex. värmebäddens temperatur osv. bibehålls så du behöver inte oroa dig för att utskriften ska förstöras.
G21-växling av enheter i millimeter
Det borde inte hända så ofta att du måste använda det här kommandot, eftersom nästan alla 3D-skrivare arbetar i enheten som standard. Det kan dock inte skada att ha den här koden i åtanke om du verkar ha skrivaren inställd på tum.
Värden:
Ingen
Exempel:
G21
G28-utför homing genom
Det här kommandot suger för att din 3D-skrivare ska utföra den så kallade homing. Vid homing återgår skrivarhuvudet till sin ”nollpunkt”, som det har nått när det har nått ändstoppet för alla axlar (X, Y och Z). Detta är viktigt eftersom skrivarhuvudet kommer att ha samma startpunkt för varje utskrift. Banorna i G-koden definieras från denna startpunkt. Utan denna referens till en specifik punkt skulle 3D-utskrift inte vara rimlig. I slutet av en utskrift utförs det här kommandot också ofta. Detta gör det enkelt att ta bort de 3D-printade modellerna.
Värden:
Om inga värden anges kommer skrivaren att köras till ändhållplatserna för alla tre axlarna. Du kan dock också välja vilka axlar som ska köras till genom att helt enkelt lägga till bokstäverna X, Y eller Z.
Exempel:
G28 | Hoppning för alla axlar (X, Y och Z) |
G28 X Y | Homing för X- och Y-axlarna |
G28 Z | Homing endast för Z-axeln |
G90 och G91-ställer in positioneringsläget (Positioning Mode).
Din skrivare kan utföra positioneringen antingen absolut eller relativt:
– Absolut positionering: Här ger du 3D-skrivaren den exakta koordinaten för X, Y eller Z som den ska förflytta sig till. För detta använder du kommandot G90.
– Relativ positionering: Här talar du om för 3D-skrivaren hur långt den ska förflytta sig från sin nuvarande position (X,Y,Z) i (X,Y,Z)-riktningen. Detta fungerar med kommandot G91.
– Du kommer förmodligen att hitta absolut positionering i dina G-koder oftare, eftersom skivaren redan känner till de exakta koordinaterna för de tre axlarna och använder dem för att bestämma den absoluta positionen.
Värden:
None.
Exempel:
G90 | Använd absolut positionering för alla tre axlar |
G1 X10 F3000 | Kör på värmesängen. till punkten X=10mm med en hastighet på 3000 mm/min (F3000) |
G1 X20 F3000 | Driv på värmebädden till punkten X=20mm med en hastighet på 3000 mm/min. |
G91 | Använd relativ positionering för alla tre axlar |
G1 X10 F3000 | Förflytta dig från den aktuella positionen på uppvärmningsbädden 10mm åt höger med en hastighet på 3000 mm/min. |
G1 X10 F3000 | Förflytta ytterligare 10 mm till höger från den aktuella positionen på värmebädden med en hastighet på 3000 mm/min. |
G92-Bestämning av den aktuella positionen (Current Position)
Använd det här kommandot om du vill definiera den aktuella positionen för dina axlar. På så sätt kan du kompensera för förskjutningar i vissa axlar. Det här kommandot används ofta tillsammans med extrudern, dvs. E-axeln, för att bestämma filamentets position. Du kan skriva över den aktuella filamentpositionen och alla andra kommandon relaterade till extrudern kommer att ta denna position som referenspunkt.
Värden:
Ange den absoluta koordinaten för den axel som du vill skriva över med kommandot G92. Detta fungerar för X, Y, Z och även E. Om du utelämnar en axel kommer dess värde inte att skrivas över med den aktuella positionen.
Exempel:
G92 E0 | Sätt den aktuella filamentpositionen till E=0 i extrudern. |
G1 E10 F800 | Extruderad filament med en längd på 10 mm |
M104- och M109-kommandon för temperaturinställning av extruder
Dessa två G-kodkommandon används för att ställa in temperaturinställningen för extrudern.
– M104: Detta kommando börjar med att värma extrudern och möjliggör direkt utförande av ytterligare kommandon.
– M109: Detta kommando väntar tills den önskade extrudertemperaturen har uppnåtts. Först därefter kan ytterligare kommandon utföras.
G-kodkommandot M109 kan förmodligen ses oftare, annars kan trycket börja innan den önskade temperaturen är uppnådd.
Är G-koderna för varje 3D-skrivare så här?
Men även om M104 och M109 används mycket ofta finns det också fall där andra kommandon används. Detta händer till exempel när skrivaren läser .x3g-koder i stället för .gcode-filer. Då används M133 i stället för M109. Vissa 3D-skrivare (Flashforge Dreamer, Dremel eller liknande) använder då kommandot M6. Detta beror på vilken firmware som används.
Värden:
Med S-värdet kan du ställa in extruderns temperatur i grader Celsius (S190= 190 grader Celsius).
T-värdet används bäst om din 3D-skrivare har flera extruderare och du vill ställa in en viss temperatur till önskat värde. Normalt är T0 den högra extrudern, medan T1 beskriver den vänstra extrudern.
Exempel:
M104 S190 T0 | Starta uppvärmning från T0 till 190 grader Celsius. |
G28 X0 | Gör homing för X-axeln medan extrudern fortfarande värms upp. |
M109 S190 T0 | Vänta tills T0 har nått en temperatur på 190 grader Celsius för att kunna utföra ytterligare kommandon. |
M106 fläkthastighetsreglering (Set Fan Speed)
Med kommandot M106 kan du ställa in hastigheten på komponentfläkten i din 3D-skrivare. Observera att din skrivare också kan ha en fläkt som kyler extrudern. Så du bör först se om du har rätt fläkt. Det är också möjligt att du ännu inte har installerat en komponentfläkt.
Värden:
Här bestämmer S-värdet fläktens hastighet, där 0=av och 255=100% medelhastighet.
Exempel:
M106 S255 | Sätt fläkthastigheten till 100 %. |
M106 S127 | Sätt fläkthastigheten till ca 50 %. (255/2=127,5) |
M106 S0 | Stäng av fläkten helt. |
M140 och M190-G Kodkommandon för temperaturinställning av uppvärmningsbädden (Bed Heating Commands)
Med M140- och M190-kommandona bestämmer du temperaturinställningen av uppvärmningsbädden analogt med M104- och M109-kommandona enligt beskrivningen ovan.
– M140: Detta kommando startar med att värma upp värmebädden och gör det möjligt att utföra andra kommandon direkt.
– M190: Detta kommando väntar tills den önskade temperaturen för uppvärmningsbädden har uppnåtts. Först därefter kan ytterligare kommandon utföras.
Observera att uppvärmningen av värmebädden kan ta en viss tid. Bli inte förvånad om din 3D-skrivare plötsligt pausar under utskrift (vid M190) tills den fortsätter.
Ofta placeras M140-kommandot i början av G-koden för att kunna exekvera andra kommandon som homing osv. Innan trycket börjar bör dock ett M190-kommando installeras för att säkerställa en stabil temperatur för det första lagret.
Gäller detta för alla 3D-skrivare?
Som med M104- och M109-kommandona beror detta också på den firmware som används. Om din 3D-skrivare läser .x3g-filer används M134 istället för M190 och Flashforge Dreamer, Dremel eller liknande skrivare använder M7.
Värden:
Med S-värdet kan du ställa in värmebäddens temperatur i grader Celsius (S30= 30 grader Celsius). Eftersom de flesta 3D-skrivare endast har en värmebädd behövs inga ytterligare justeringar etc..
Exempel:
M140 S50 | Start med att värma värmebädden till 50 grader Celsius. |
G28 | Gör homing för alla axlar och värm samtidigt uppvärmningsbädden till 50 grader Celsius. |
M190 S50 | Vänta tills temperaturen på 50 grader Celsius för uppvärmningsbädden har uppnåtts, för att sedan kunna utföra ytterligare kommandon. |