Inleiding tot G-code en M-code in CNC en 3D-printen

Laatste update: 17/12/2025
Auteur: Isaac
  • G-code definieert de geometrie en beweging van CNC-machines en 3D-printers.
  • De M-code regelt hulpfuncties zoals de spindel, de koelvloeistof en het wisselen van gereedschap.
  • CAD/CAM-programma's en slicers genereren automatisch G- en M-codes, maar het is essentieel om deze te begrijpen.
  • Beheersing van deze codes voorkomt fouten, verbetert de nauwkeurigheid en optimaliseert de productie.

Inleiding tot G-code en M-code

Als je met werkt CNC-machines of 3D-printersVroeg of laat kom je de beroemde G-code en zijn onlosmakelijke metgezel, de M-code, tegen. Voor velen klinkt het als een buitenaardse taal, maar in werkelijkheid zijn het gewoon sterk gestructureerde instructies die de machine perfect begrijpt. Begrijpen wat ze zeggen en hoe ze gecombineerd worden, is essentieel om niet langer "blindelings" te werken en om daadwerkelijk controle te hebben over bewerkingen of printprocessen.

Beschouw uw machine, hoe duur of modern deze ook mag zijn, als tamelijk "eenvoudig": hij kent alleen maar... verplaatsen naar X-, Y-, Z-coördinaten, een spindel roteren of materiaal extruderen Wanneer je het commando geeft, wordt al het andere afgehandeld door G-code en M-code. In dit artikel leggen we rustig uit wat ze zijn, hoe ze zijn ontstaan, waarin ze verschillen, hoe ze tegenwoordig worden gebruikt met CAD/CAM en slicers, welke typische fouten ze veroorzaken, en we bekijken zelfs voorbeelden van complexere programma's, zowel voor CNC-draaibanken als voor 3D-printers.

Wat is CNC-bewerking en waarom is het zo sterk afhankelijk van G-code en M-code?

CNC-bewerking is in wezen het gebruik van computergestuurde machines (Draaibanken, freesmachines, bewerkingscentra, enz.) worden gebruikt om onderdelen te vervaardigen met een precisie die handmatig en herhaaldelijk onmogelijk te bereiken zou zijn. Numerieke besturing definieert posities, snelheden en trajecten; de machine gehoorzaamt.

Een van de belangrijkste voordelen springt eruit Extreem hoge precisie en efficiëntie bij materiaalverwijdering.Mogelijkheid om met zeer complexe geometrieën te werken en extreme herhaalbaarheid: als het programma goed is gemaakt, kun je 10 of 10.000 vrijwel identieke stukken produceren.

Voordat computers zoals we die nu kennen bestonden, gebruikten treinmachinisten... ponskaarten of -banden Om de instructies te coderen. Het ponsen van gaten in de juiste volgorde was een langzaam en kwetsbaar proces: als de kaart beschadigd raakte of verloren ging, was het werk verpest en lag de productie stil.

Met de komst van numerieke besturing en de eerste computers begonnen operators regels code handmatigDit was een verbetering, maar voor complexe onderdelen met veel bewerkingen werd het uiterst omslachtig en vatbaar voor type- of rekenfouten.

Tegenwoordig is de situatie heel anders: we gebruiken CAD-software voor het ontwerp en CAM-programma's om automatisch gereedschapspaden te genereren. CAM zelf produceert de gereedschappen. G-code- en M-code-bestanden klaar om de machine te laten draaien. Dat betekent echter niet dat inzicht in de interne werking niet essentieel is voor het controleren, optimaliseren, corrigeren en, indien nodig, handmatig programmeren.

G- en M-codes in CNC en 3D-printen

Hoe CNC-programmering machines aanstuurt

In een typische workflow bereidt de programmeur de bewerkingsomgeving in de CAM voor: onderdeelmodel, kaak- of gereedschapsmodel, gereedschapsselectie en gereedschapspaden voor elke bewerking (voorbewerken, nabewerken, boren, tappen, enz.). Op basis hiervan genereert de software het CNC-programma, dat bestaat uit blokken instructies.

Elk blok bestaat meestal uit een regel tekst met een G-code, optioneel een M-code en diverse parameters: X-, Y-, Z-coördinaten, radii, voedingen (F), spindelsnelheid (S), aantal gereedschappen (T), enz. De besturing interpreteert deze blokken in sequentiële volgorde en beweegt de machine of verandert de toestand ervan op basis van wat er is ingevoerd.

In de praktijk combineert het programma meestal bewegingsinstructies (G-code) en hulpfuncties (M-code) met enkele andere elementen. commando's Extra tekens zoals F, S, T of N worden gebruikt om getallenlijnen te nummeren. De logica is als volgt: G-code bepaalt "hoe" de machine beweegt.De M-code bepaalt "wat" de machine doet qua functies. hardware.

Hoewel CAM veel werk bespaart, kan nabewerking nodig zijn wanneer het onderdeel complex is. Handmatig de cycli, compensaties en voortgang controleren of beveiligingssequenties. Bij complexe projecten is het niet ongebruikelijk dat het genereren, aanpassen en valideren van code dagen of zelfs weken duurt.

Wat is G-code in CNC en 3D-printen?

G-code, ook wel bekend als RS-274 of ISO-code, is de standaardtaal van programmering geometrisch van CNC-machines (Verschillen tussen machinecode en bytecodeDe "G" komt precies van "geometrie": het beschrijft hoe de machine zich in de ruimte moet bewegen en met welke parameters.

Bij traditionele CNC-machines (draaibanken, freesmachines, lasers, enz.) geeft de G-code aan wat er moet gebeuren. trajecten, werkvlakken, voedingssnelheden en andere informatie met betrekking tot de beweging van het gereedschap ten opzichte van het werkstuk. Bij 3D-printen doet het precies hetzelfde, maar dan toegepast op de assen van de printer en de extruder.

Een typische G-code-opdracht begint met de letter G, gevolgd door een getal, bijvoorbeeld: G00, G01, G02, G03, G17enzovoort. Elke combinatie heeft een zeer specifieke betekenis. Vaak bevat de lijn meer parameters zoals X, Y, Z, R, F, S of E (bij 3D-printen voor de extruder).

  Hoe ASUS AI Suite, EZ Flash en USB BIOS FlashBack te gebruiken (met probleemoplossing en MSI-notities)

Hoewel er normen zijn (ISO 6983, DIN 66025, Siemens-dialecten, FANUC, Haas, enzovoort), kan elke besturing extensies of variaties toevoegenDaarnaast kunnen sommige opmaakdetails per fabrikant verschillen: zo accepteert de ene machine G3 en de andere G03, of staat het weglaten van bepaalde nullen en spaties toe.

In alle gevallen is het basisidee hetzelfde: een reeks blokken die, wanneer ze in de juiste volgorde worden uitgevoerd, Ze vormen het volledige gereedschapspad. en daarmee de uiteindelijke vorm van het gedrukte stuk of object.

Letters en veelgebruikte parameters in G-code

Naast de letter G gebruikt de taal ook andere letters om aan te geven belangrijke parametersBij klassieke CNC-bewerking vinden we onder andere:

  • X EN ZCartesiaanse coördinaten die de positie van het gereedschap of werkstuk in drie dimensies aangeven. X en Y zijn meestal het horizontale vlak, Z de diepte of hoogte.
  • A: rotatie of draaiing rond de X-as (bij meerassige machines).
  • R: straal van een boog bij het uitvoeren van cirkelvormige interpolatie.
  • Ik, J: incrementele componenten van het middelpunt van een boog bij circulaire interpolaties.
  • N: programmaregel- of bloknummer.
  • F: voeding, oftewel snij- of verplaatsingssnelheid bij bewerkingsprocessen.
  • S: spindelsnelheid, in omwentelingen per minuut.
  • T: gereedschap dat gebruikt moet worden in combinatie met instructies zoals M06.

Bij FFF/FDM 3D-printing komt de letter ook zeer vaak voor. E om de hoeveelheid geëxtrudeerd filament aan te geven., samen met G0/G1-positioneringscommando's op X, Y en Z.

Belangrijkste G-codes bij CNC-bewerking

Sommige van de meest voorkomende G-codes Hieronder volgen de specificaties voor CNC-frees- en draaibanken:

  • G00 – Snelle positionering: Verplaats het gereedschap zo snel mogelijk naar een opgegeven coördinaat, zonder de intentie om te snijden. Dit wordt gebruikt bij naderingen en terugtrekkingen waarbij het enige belangrijke is om snel en zonder botsingen aan te komen.
  • G01 – Lineaire interpolatie: Het commando geeft een opdracht voor een beweging in een rechte lijn tussen twee punten met een gespecificeerde voedingssnelheid F. Het is het klassieke commando voor rechte sneden en contourbewerking.
  • G02 – Circulaire tijdinterpolatie: Teken bogen of cirkels met de klok mee, meestal met behulp van de coördinaten X, Y (of X, Z / Y, Z, afhankelijk van het actieve vlak) en een straal R of een middelpunt I, J.
  • G03 – Cirkelvormige interpolatie tegen de klok in: Hetzelfde als G02, maar dan omgekeerd. Zeer handig voor het profileren van ronde vormen, cirkelvormige groeven of gebogen uitsparingen.
  • G04 – Pauze of doorgaan: Het dwingt de machine om gedurende een bepaalde tijd stil te staan. Dit wordt gebruikt om de spindel te laten stabiliseren, een gereedschap te laten afkoelen of een koelvloeistof zijn werk te laten doen.
  • G17, G18, G19 – Vliegtuigselectie: G17 activeert het XY-vlak, G18 het XZ-vlak en G19 het YZ-vlak. Dit is essentieel bij het werken in de meerassige modus of bij het interpoleren van bogen buiten het standaardvlak.
  • G21 / G20: Ze definiëren het eenhedenstelsel, meestal G21 voor millimeters en G20 voor inches.
  • G43 – Compensatie voor gereedschapslengte: Er wordt rekening gehouden met het feit dat elk gereedschap een andere lengte heeft en de juiste correctie wordt toegepast, zodat de daadwerkelijke bewerkingsdiepte naar wens is.

Specifieke codes komen ook vaak voor bij draaibanken, zoals bijvoorbeeld G71 voor longitudinale ruwcycliG70 voor profielafwerking of G76 voor cyclisch draadsnijden, waarmee u een contour kunt definiëren en de besturing automatisch de bekende "ladder" van tussenliggende bewerkingen laat genereren.

Geavanceerd voorbeeld van G-code op een CNC-draaibank

Om het ware potentieel van deze cycli te zien, kunt u het volgende typische scenario overwegen: we beginnen met een cilindrisch blok en we willen het ruw bewerken van grote hoeveelheden materiaal Met weinig steken, waarbij wat extra materiaal overblijft voor een afwerkingsronde en afgewerkt wordt met draad.

In een draaibankprogramma kunnen we beginnen met het definiëren van de initiële materiaalgrootte met een standaardinstructie in de simulator, het identificeren van het programma met een nummer zoals O0001, het selecteren van het metrische systeem met G21 en het instellen van de voeding per omwenteling met G99.

Vervolgens wordt een gereedschapswissel bevolen met iets als M06 T0101 (gereedschap 1 met zijn offset 1), de spindeltoeren worden gedefinieerd in de G97-modus (constant toerental) met S1800 M03 om met de klok mee te draaien, en het wordt snel gepositioneerd met G00 dicht bij het werkstuk (bijvoorbeeld X26 Z2).

Vervolgens kunt u met behulp van G01 om de baksteen te confronteren Ga door het midden (X-1 F.05), keer terug naar de veilige positie en begin aan de bekende voorfreescyclus G71. Deze cyclus is gedefinieerd in twee regels, waarin de snijdiepte U, de terugtrekking R, het beginblok P en het eindblok Q van de contour, de toleranties U en W en de voeding F worden gespecificeerd.

De contourlijnen tussen bijvoorbeeld N1 en N2 worden hieronder beschreven: een vlak naar X0, een voeding in Z, een boog G03 met een specifieke straal, cilindrisch draaien en conisch draaien. Het belangrijkste is dat het profiel monotoon stijgend of dalend in diameter, zodat de cyclus correct werkt.

Zodra de voorbewerking met G71 is voltooid, wordt een G70 P1 Q2 gestart, zodat met de fijne snelheid en voeding, de laatste hand leggen aan de afwerking Volg dezelfde contour. Vervolgens kunt u de slede naar de referentiepositie sturen met G28 U0 W0, de spindel stoppen met M05, wisselen naar een draadsnijgereedschap T0303 en een cyclus G76 activeren om een ​​schroefdraad te genereren met meerdere doorgangen en parameters voor diepte, hoek, spoed (bijvoorbeeld F1.5) en binnendiameter.

  Beste alternatieven voor Google Play Store: complete gids

Ten slotte wordt de wagen teruggebracht naar de veilige positie (G28 U0 W0) en wordt het programma beëindigd met M30 (einde en terugspoelen) of M00 (stop zonder terugspoelen). Dit hele proces kan worden beschreven met Dankzij vaste cycli zijn er zeer weinig programmaregels.wat het dagelijkse werk aanzienlijk vereenvoudigt.

Wat is M-code en welke rol speelt het?

M-code staat bekend als "diverse" of "machinefunctie"-code. Waar G-code zich bezighoudt met geometrie en beweging, bestuurt M-code de machinefuncties. Hulpfuncties: de spindel starten of stoppen, de koelvloeistof inschakelen, gereedschap wisselenhet programma stoppen of beëindigen, enz.

Formeel gezien zijn dit opdrachten die beginnen met de letter M, gevolgd door een cijfer, zoals M00, M03, M05, M06, M08, M30Elk onderdeel fungeert als een schakelaar die iets aan- of uitzet of ervoor zorgt dat de besturing naar een andere toestand verandert.

Een belangrijk detail is dat er in de regel slechts één blok per blok wordt gebruikt. een enkele M-codeHet is meestal geen goed idee om twee of meer machines op dezelfde lijn aan te sluiten, omdat veel functies elkaar uitsluiten: de spindel kan niet tegelijkertijd starten en stoppen met hetzelfde commando zonder dat de machine vastloopt.

In tegenstelling tot G-code, dat meer gestandaardiseerd is, zijn M-codes Ze verschillen aanzienlijk per fabrikant.De betekenis van M03 of M05 is in vrijwel alle gevallen hetzelfde, maar andere codes (palletwissel, grijper, speciale cycli) kunnen variëren en zelfs het formaat (M3 versus M03) kan fouten veroorzaken als de controle strikt is.

Meest gebruikte M-codes in CNC

Onder de meest voorkomende M-codes De programma's die je in CNC zult zien, zijn:

  • M00 – Programma stoppen: Het pauzeert de uitvoering op een gecontroleerde manier totdat de operator op de knop drukt om verder te gaan. Het wordt gebruikt voor inspecties, handmatige wijzigingen of eenmalige interventies.
  • M02 / M30 – Einde van het programma: Ze geven aan dat het programma is afgelopen. M30, op veel controllers, stopt het programma niet alleen, maar spoelt het ook terug naar het begin om het af te ronden.
  • M03 – Spindel in beweging (met de klok mee): De spindel begint met de klok mee te draaien, meestal vergezeld van een S-waarde voor het toerental (RPM).
  • M04 – Spindel in beweging (tegen de klok in): Hetzelfde als M03, maar dan met de draairichting naar links of rechts; handig voor bepaalde handelingen of speciale configuraties.
  • M05 – Spindelstop: Het vertraagt ​​de rotatie, een noodzakelijke stap voordat gereedschap wordt verwisseld of een snijbewerking wordt afgerond.
  • M06 – Gereedschapswissel: Geeft de machine de opdracht om automatisch van gereedschap te wisselen naar het gereedschap dat met T is aangegeven. Essentieel in bewerkingscentra met een gereedschapsmagazijn.
  • M08 – Koelmiddel AAN: Schakel het koelsysteem in (straal, regen, enz.) om de temperatuur te handhaven en de oppervlakteafwerking te verbeteren.
  • M09 – Koelmiddel UIT: Het onderbreekt de toevoer van koelvloeistof, wat erg handig is vlak voor gereedschapswisselingen of aan het einde van de bewerking.

Hoewel veel van deze codes op verschillende machines op elkaar lijken, is het verplicht om ze te controleren. specifieke bedieningshandleiding omdat sommige M-modellen, afhankelijk van de fabrikant, compleet verschillende functies kunnen hebben.

G-code en M-code in FDM/FFF 3D-printen

Bij 3D-printen gebeurt er iets heel bijzonders: hoewel het om een ​​andere technologie gaat, is de kern van de besturing gebaseerd op... Hetzelfde concept als G-code en M-code. dan bij CNC. De firmware van de printer (Marlin, Klipper, RepRap, enz.) interpreteert de lijnen en stuurt motoren aan, verwarmt de hotend, schakelt ventilatoren in of voert bednivellering uit.

De printer begrijpt geen STL-, OBJ- of 3D-meshes; hij weet alleen dat hij moet printen. Verplaats het hoofd naar bepaalde coördinaten.Het proces omvat het afzetten van materiaal (extruderen) met een specifieke snelheid en temperatuur. De slicer vertaalt de 3D-geometrie naar duizenden regels G-code.

Een eenvoudig voorbeeld van een printeropdracht is G0 X15, waarmee de X-as 15 mm in de positieve richting wordt bewogen. Door X, Y, Z en E te combineren met G0/G1-opdrachten wordt het volgende bereikt: teken elke laag van het stuk op het bed.

Naast de G-code die het onderdeel beschrijft, genereren slicers altijd een begin- en eindcode (start G-code en eind G-code) die vóór en na elke printopdracht wordt uitgevoerd. Deze scripts worden in alle opdrachten herhaald, tenzij u ze wijzigt.

De eerste installatie omvat doorgaans het homing-proces (G28), het verwarmen van het printbed en de hotend (M140, M104, M109) en automatische nivellering indien er een sensor aanwezig is. extrusie van een spoelleidingenz. Wanneer het proces is voltooid, worden de verwarmingselementen (M104 S0, M140 S0), motoren (M84) en ventilatoren (M106 S0) uitgeschakeld, en soms wordt de Z-as verplaatst om het onderdeel van de hotend af te bewegen.

Waarom de start- en eind-G-code aanpassen bij 3D-printen?

Hoewel de meeste snijmachines vrij generieke standaardscripts Omdat ze met veel printers werken, is het vaak de moeite waard om ze aan te passen om er het maximale uit te halen. Enkele veelvoorkomende redenen zijn:

  • Voeg een reeks toe automatische bednivellering als uw printer een sensor heeft.
  • Voeg voorreinigingsleidingen toe om de extruder te reinigen en de hechting van de eerste laag te verbeteren.
  • Configureer geluiden of meldingen die verschijnen wanneer het printproces is voltooid.
  • Betere controle over koeling van de hotend en het bed om kromtrekken of druipende filamenten te voorkomen.
  • Bij printers zonder EEPROM kunt u de Z-offset, PID-parameters of instellingen die verloren gaan bij het uitschakelen van de stroom, opnieuw instellen.
  De beste gadgets voor Windows 10

In slicers zoals Cura is het vrij eenvoudig: je gaat naar de printerinstellingen, opent de machine-instellingen en je ziet twee tekstvakken voor de start G-code en eind G-codeDaar kunt u codefragmenten bewerken en plakken en aanpassen aan uw specifieke model.

Veelgebruikte G-code commando's in 3D-printerscripts

Enkele commando's die gewoonlijk verschijnen Deze scripts (geen complete programma's) zijn:

  • G92 E0: Zet de extruder terug naar nul, zodat de extrusiecommando's vanaf dat moment relatief ten opzichte van dat punt zijn.
  • G28: Het brengt alle assen terug naar hun beginpunt (homing), wat essentieel is voordat er met printen begonnen wordt.
  • G1 XYFE: Het combineert X/Y-beweging, F-toevoer en E-extrusie, meestal om spoelleidingen te trekken of naar een specifieke positie op het bed te bewegen.
  • G1 Z: Stel de hoogte van de Z-as zo in dat de hotend het printbed of het afgewerkte onderdeel niet raakt.
  • G1 FE: Commando's voor het terugtrekken van de filament aan het einde, om druppelen te voorkomen.
  • M106 S: Stel de ventilatorsnelheid van de laag in, van 0 (uit) tot maximaal.
  • M104 S0 / M140 S0: Ze schakelen de extruder en het bed uit wanneer het werk klaar is.
  • M84: Schakel alle motoren uit zodat de assen vrij zijn.

Naast deze commando's voegt elke firmware zijn eigen codes toe voor bednivellering, geavanceerde pauzes, filamentwisselingen, enzovoort. Daarom is het zo belangrijk. om precies te weten wat uw printer begrijpt.

Belangrijkste verschillen tussen G-code en M-code

Hoewel G-code en M-code altijd samen voorkomen en elkaar aanvullen, hebben ze toch een aantal eigenschappen. verschillende rollen Binnen CNC-programmering en 3D-printen kunnen we de verschillen in een aantal punten samenvatten:

  • Voordeel: G-code stuurt gereedschapspaden, posities, oriëntaties en voedingssnelheden aan. M-code beheert hulpfuncties zoals spindels, koelvloeistoffen, gereedschapswisselingen en programma-afsluiting.
  • Instructietype: G-code is geometrisch van aard; het bepaalt hoe de machine beweegt. M-code is operationeel en richt zich op machinetoestanden die niet per se beweging met zich meebrengen.
  • Standaardisatie: G-codes zijn relatief gestandaardiseerd in de industrie, dus G00, G01, G02, enzovoort, betekenen meestal hetzelfde op verschillende machines. Daarentegen zijn veel M-codes meer afhankelijk van de fabrikant en hun betekenis kan veranderen.
  • Gewicht in precisie: De G-code heeft een directe invloed op de maatnauwkeurigheid van het onderdeel; een onjuist geparametriseerde G01 kan een contour verpesten. De M-code heeft een meer indirecte invloed (het aan- of uitschakelen van de koelvloeistof beïnvloedt bijvoorbeeld de thermische stabiliteit en de oppervlakteafwerking).
  • Complexiteit: G-codeblokken zijn doorgaans dichter van structuur, met veel coördinaten, radii en stappen, terwijl M-code doorgaans eenvoudiger is, maar wel cruciaal voor de veiligheid en de volgorde van de bewerkingen.

Uiteindelijk kan het programma worden gezien als een orkest waarin de G-code markeert de noten en de melodie.En de M-code bepaalt wanneer elk instrument invalt, wanneer het stil is en wanneer het doek valt.

Andere aanvullende commando's in CNC-programmering

Naast G en M zijn er drie letters die essentieel zijn voor zowel CNC-bewerking als 3D-printen: F, S en T. Dit zijn geen onafhankelijke codes, maar parameters die de bewegingen begeleiden of functies:

  • F (Voeding): Hiermee wordt de voedingssnelheid gedefinieerd, bijvoorbeeld in mm/min of mm/omwenteling, afhankelijk van of G94 of G95 (of G99 op sommige besturingen) actief is. Een te hoge F-waarde zal gereedschap breken; een te lage waarde zal de cyclustijden negatief beïnvloeden en kan leiden tot een slechte afwerking.
  • S (Spindelsnelheid): Geeft het toerental van de spindel in RPM aan in combinatie met M03 of M04. Het kan in bepaalde contexten ook andere snelheden weergeven.
  • T (Gereedschap): Selecteer het gereedschap dat gebruikt moet worden bij de M06-gereedschapswisseling. Het is cruciaal dat dit overeenkomt met de daadwerkelijke positie van het gereedschap in het magazijn.

Een voorbeeld van een CNC-bewegingscommando is G01 X-100. Y-50. Z35. F10, wat een lineaire verplaatsing met een voedingssnelheid van 10 eenheden per minuut (afhankelijk van het systeem) aanstuurt. Als we M03 S3000 toevoegen, geven we aan dat we op die positie de spindel willen laten draaien met een bepaalde snelheid. 3000 toeren per minuut met de klok mee.