Introduksjon til G-kode og M-kode i CNC og 3D-printing

Siste oppdatering: 17/12/2025
Forfatter: Isaac
  • G-kode definerer geometrien og bevegelsen til CNC-maskiner og 3D-skrivere.
  • M-koden styrer hjelpefunksjoner som spindel, kjølevæske og verktøyskift.
  • CAD/CAM og slicere genererer automatisk G- og M-koder, men det er viktig å forstå dem.
  • Å mestre disse kodene forhindrer feil, forbedrer nøyaktigheten og optimaliserer produksjonen.

Introduksjon til G-kode og M-kode

Hvis du jobber med CNC-maskiner eller 3D-printereFør eller siden kommer du til å støte på den berømte G-koden og dens uatskillelige følgesvenn, M-koden. For mange høres det ut som et marsiansk språk, men i virkeligheten er de rett og slett svært strukturerte instruksjoner som maskinen forstår perfekt. Å forstå hva de sier og hvordan de kombineres er nøkkelen til å ikke lenger jobbe "blindt" og til å ha reell kontroll over maskinering eller utskrift.

Tenk på maskinen din, uansett hvor dyr eller moderne den måtte være, som ganske «enkel»: den vet bare flytte til X-, Y-, Z-koordinater, rotere en spindel eller ekstrudere materiale når du gir kommandoen. Alt annet håndteres av G-kode og M-kode. I denne artikkelen skal vi rolig bryte ned hva de er, hvordan de oppsto, hvordan de skiller seg fra hverandre, hvordan de brukes i dag med CAD/CAM og slicere, hvilke typiske feil de forårsaker, og vi skal til og med se på eksempler på mer komplekse programmer, både for CNC-dreiebenker og 3D-printing.

Hva er CNC-maskinering, og hvorfor er den så avhengig av G-kode og M-kode?

CNC-maskinering er i hovedsak bruken av numerisk styrte datamaskinmaskiner (Dreiebenker, fresemaskiner, maskineringssentre osv.) brukes til å produsere deler med en presisjon som ville være umulig å oppnå manuelt og gjentatte ganger. Numerisk kontroll definerer posisjoner, hastigheter og baner; maskinen adlyder.

Blant fordelene skiller én seg ut ekstremt høy presisjon og effektivitet i materialfjerning, mulighet for å jobbe med svært komplekse geometrier og brutal repeterbarhet: hvis programmet er godt laget, kan du produsere 10 eller 10 000 tilnærmet identiske deler.

Før datamaskiner slik vi kjenner dem i dag eksisterte, brukte lokomotivførere hullkort eller bånd å kode instruksjonene. Å lage hull i riktig rekkefølge var en langsom og skjør prosess: hvis kortet ble skadet eller mistet, ble arbeidet ødelagt og produksjonen ble stoppet.

Med fremveksten av numerisk kontroll og de første datamaskinene begynte operatører å introdusere linjer med kode manueltDette var en forbedring, men for komplekse deler med mange operasjoner ble det ekstremt kjedelig og utsatt for skrive- eller beregningsfeil.

I dag er situasjonen svært annerledes: vi bruker CAD-programvare for design og CAM-programmer for å generere verktøybaner automatisk. CAM produserer selv G-kode- og M-kodefiler klar for at maskinen skal kjøre. Det betyr ikke at det ikke er viktig å forstå hva som er inni for å gjennomgå, optimalisere, korrigere og, om nødvendig, programmere for hånd.

G- og M-koder i CNC og 3D-printing

Hvordan CNC-programmering styrer maskiner

I en typisk arbeidsflyt forbereder programmereren maskineringsmiljøet i CAM-en: delmodell, kjeve- eller verktøymodell, verktøyvalg og verktøybaner for hver operasjon (grovfresing, finbearbeiding, boring, gjenging osv.). Fra alt dette genererer programvaren CNC-programmet som består av instruksjonsblokker.

Hver blokk er vanligvis en tekstlinje med en G-kode, eventuelt en M-kode og diverse parametere: X-, Y-, Z-koordinater, radier, matinger (F), spindelhastighet (S), antall verktøy (T), osv. Kontrollen tolker disse blokkene i sekvensiell rekkefølge og beveger maskinen eller endrer tilstand i henhold til det som er skrevet.

I praksis kombinerer programmet vanligvis bevegelsesinstruksjoner (G-kode) og hjelpefunksjoner (M-kode) sammen med noen kommandoer Tilleggstegn som F, S, T eller N brukes til å talllinjer. Logikken er: G-koden dikterer «hvordan» maskinen beveger segM-koden dikterer «hva» maskinen gjør når det gjelder funksjoner maskinvare.

Selv om CAM sparer mye arbeid, kan etterbehandling være nødvendig når delen er sofistikert. manuelt gjennomgå sykluser, kompensasjoner og fremdrift eller sikkerhetssekvenser. I komplekse prosjekter er det ikke uvanlig at generering, justering og validering av kode tar dager eller til og med uker.

Hva er G-kode i CNC og 3D-printing

G-kode, også kjent som RS-274 eller ISO-kode, er standardspråk for programmering geometrisk av CNC-maskiner (Forskjeller mellom maskinkode og bytekode«G» kommer nettopp fra «geometri»: den beskriver hvordan maskinen skal bevege seg i rommet og med hvilke parametere.

I tradisjonell CNC (dreiebenker, fresemaskiner, lasere osv.) indikerer G-koden baner, arbeidsplan, matehastigheter og annen informasjon relatert til verktøyets bevegelse i forhold til arbeidsstykket. I 3D-printing gjør den akkurat det samme, men anvendt på skriverens akser og ekstruderen.

En typisk G-kodekommando begynner med bokstaven G etterfulgt av et tall, for eksempel G00, G01, G02, G03, G17osv. Hver kombinasjon har en veldig spesifikk betydning. Ofte inneholder linjen flere parametere som X, Y, Z, R, F, S eller E (ved 3D-printing for ekstruderen).

  Diagnostisering av interferens eller støy i PC-lydkabler

Selv om det finnes standarder (ISO 6983, DIN 66025, Siemens-dialekter, FANUC, Haas, blant andre), kan hver kontroll legg til utvidelser eller variasjonerI tillegg varierer noen formateringsdetaljer mellom produsenter: for eksempel kan én maskin godta G3 og en annen kreve G03, eller tillate at visse nuller og mellomrom utelates.

I alle tilfeller er grunnideen den samme: en sekvens av blokker som, når de utføres i rekkefølge, De utgjør hele verktøybanen og dermed den endelige formen på det trykte stykket eller objektet.

Bokstaver og vanlige parametere i G-kode

I tillegg til bokstaven G bruker språket andre bokstaver for å indikere viktige parametereI klassisk CNC-maskinering finner vi blant annet:

  • X OG ZKartesiske koordinater som plasserer verktøyet eller arbeidsstykket i tre dimensjoner. X og Y er vanligvis horisontalplanet, Z dybden eller høyden.
  • A: rotasjon eller spinn rundt X-aksen (i maskiner med flere akser).
  • Rradiusen til en bue når du utfører sirkulær interpolasjon.
  • Jeg, Jinkrementelle komponenter av sentrum av en bue i sirkulære interpolasjoner.
  • Nprogramlinje- eller blokknummer.
  • Fmating, det vil si skjære- eller forskyvningshastighet i maskineringsoperasjoner.
  • SSpindelhastighet, i omdreininger per minutt.
  • T: verktøy som skal brukes i kombinasjon med instruksjoner som M06.

I FFF/FDM 3D-printing forekommer bokstaven også veldig ofte. E for å indikere mengden ekstrudert filament, sammen med G0/G1-posisjoneringskommandoer på X, Y og Z.

Viktigste G-koder i CNC-maskinering

Noen av de vanligste G-kodene Følgende er spesifikasjonene for CNC-frese- og dreiebenkemaskiner:

  • G00 – Hurtigposisjonering: Flytt verktøyet så raskt som mulig til en spesifisert koordinat, uten å ha til hensikt å kutte. Dette brukes ved inn- og tilbaketrekninger der det eneste viktige er å komme raskt frem og uten å kollidere.
  • G01 – Lineær interpolasjon: Den kommanderer bevegelse i en rett linje mellom to punkter med en spesifisert matingshastighet F. Det er den klassiske kommandoen for rette snitt og konturmaskinering.
  • G02 – Sirkulær tidsinterpolasjon: Tegn buer eller sirkler i klokkens retning, vanligvis ved å bruke X, Y (eller X, Z / Y, Z avhengig av det aktive planet) og en radius R eller et sentrum I, J.
  • G03 – Sirkulær interpolasjon mot klokken: Samme som G02, men omvendt, veldig nyttig for profilering av runde deler, sirkulære spor eller buede lommer.
  • G04 – Pause eller stopp: Den tvinger maskinen til å stoppe i en angitt tid. Dette brukes for å la spindelen stabilisere seg, et verktøy kjøles ned eller for at et kjølemiddel skal virke.
  • G17, G18, G19 – Planvalg: G17 aktiverer XY-planet, G18 XZ-planet og G19 YZ-planet, noe som er viktig når man arbeider i fleraksemodus eller når man interpolerer buer utenfor standardplanet.
  • G21 / G20: De definerer enhetssystemet, vanligvis G21 for millimeter og G20 for tommer.
  • G43 – Kompensasjon for verktøylengde: Den tar hensyn til at hvert verktøy har forskjellig lengde og bruker riktig korrigerer slik at den faktiske maskineringsdybden blir som ønsket.

Spesifikke koder er også vanlige i dreiebenker, som for eksempel G71 for langsgående grovfresesykluser, G70 for profilfinish, eller G76 for syklisk gjenging, som lar deg definere en kontur og la kontrollen automatisk generere den berømte "stigen" med mellomliggende passeringer.

Avansert eksempel på G-kode på en CNC-dreiebenk

For å se det sanne potensialet til disse syklusene, bør du vurdere dette typiske scenariet: vi starter med en sylindrisk blokk, og vi ønsker grovbearbeiding av store mengder materiale med få linjer, og la litt overflødig materiale ligge til en etterbehandling og avslutte med en tråd.

I et dreiebenkprogram kan vi starte med å definere den opprinnelige materialstørrelsen med en standardinstruksjon i simulatoren, identifisere programmet med et tall som O0001, velge det metriske systemet med G21 og stille inn mating per omdreining-modus med G99.

Deretter bestilles et verktøybytte med noe sånt som M06 T0101 (verktøy 1 med forskyvning 1), spindelomdreiningene er definert i G97-modus (konstant o/min) med S1800 M03 for å rotere med klokken, og den posisjoneres raskt med G00 nær arbeidsstykket (for eksempel X26 Z2).

Så, ved å bruke G01, kan du å møte mursteinen passerer gjennom sentrum (X-1 F.05), går tilbake til sikker posisjon og går inn i den berømte grovfresesyklusen G71. Denne syklusen er definert i to linjer, som spesifiserer skjæredybde U, uttrekking R, startblokk P og sluttblokk Q av konturen, toleranser U og W og mating F.

Konturlinjene mellom for eksempel N1 og N2 er beskrevet nedenfor: en overflate opp mot X0, en mating i Z, en bue G03 med en spesifikk radius, sylindrisk dreiing og kjegler. Det viktigste er at profilen er monotont økende eller avtagende i diameter slik at syklusen fungerer som den skal.

Når grovfresingen med G71 er ferdig, settes en G70 P1 Q2 i gang, slik at den med finhastighet og mating, gjøre de siste finpussene følger samme kontur. Deretter kan du sende vognen til referanse med G28 U0 W0, stoppe spindelen med M05, bytte til et gjengeverktøy T0303 og aktivere en syklus G76 for å generere en gjenge med flere gjennomløp og parametere for dybde, vinkel, stigning (for eksempel F1.5) og indre diameter.

  Slik tømmer du nedlastingsmappen på Windows, Mac og mer

Til slutt bringes vognen tilbake til sikker posisjon (G28 U0 W0) og programmet avsluttes med M30 (avslutt og spol tilbake) eller M00 (stopp uten tilbakespoling). Hele denne prosessen kan beskrives med svært få programlinjer takket være faste syklusernoe som forenkler det daglige arbeidet betraktelig.

Hva er M-kode og hvilken rolle spiller den

M-kode er kjent som «diverse» eller «maskinfunksjons»-kode. Mens G-kode omhandler geometri og bevegelse, kontrollerer M-kode Hjelpehandlinger: start eller stopp spindelen, slå på kjølevæsken, bytt verktøy, stoppe eller avslutte programmet, osv.

Formelt sett er dette kommandoer som begynner med bokstaven M etterfulgt av et tall, for eksempel M00, M03, M05, M06, M08, M30Hver av dem fungerer som en bryter som slår noe av eller på, eller får kontrollen til å endre tilstand.

En viktig detalj er at det som hovedregel bare brukes én blokk i hver blokk. en enkelt M-kodeÅ sette to eller flere på samme linje er vanligvis en dårlig idé fordi mange funksjoner utelukker hverandre: spindelen kan ikke starte og stoppe samtidig i samme kommando uten at maskinen "setter seg fast".

I motsetning til G-kode, som er mer standardisert, er M-koder De varierer betydelig mellom produsentene.Betydningen av M03 eller M05 er vanligvis den samme i nesten alle tilfeller, men andre koder (pallbytte, griper, spesialsykluser) kan endres, og til og med formatet (M3 vs. M03) kan forårsake feil hvis kontrollen er streng.

De vanligste M-kodene i CNC

Blant de vanligste M-kodene Programmene du ser i CNC er:

  • M00 – Programstopp: Den pauser utførelsen på en kontrollert måte inntil operatøren trykker for å fortsette. Den brukes til inspeksjoner, manuelle endringer eller engangsinngrep.
  • M02 / M30 – Programslutt: De indikerer at programmet er ferdig. M30, på mange kontrollere, spoler tilbake til begynnelsen av programmet for å fullføre det, i tillegg til å stoppe det.
  • M03 – Spindel i bevegelse (med klokken): Spindelen starter med klokken, vanligvis ledsaget av en S-verdi for RPM.
  • M04 – Spindel i bevegelse (mot klokken): Samme som M03, men roterer i motsatt retning, nyttig for visse operasjoner eller spesielle konfigurasjoner.
  • M05 – Spindelstopp: Det senker rotasjonen, et nødvendig trinn før du bytter verktøy eller avslutter en skjæreoperasjon.
  • M06 – Verktøybytte: Instruerer maskinen til å utføre et automatisk verktøybytte til verktøyet angitt i T. Viktig i maskineringssentre med verktøymagasin.
  • M08 – Kjølemiddel PÅ: Slå på kjølesystemet (stråle, regn osv.) for å opprettholde temperaturen og forbedre overflatefinishen.
  • M09 – Kjølemiddel AV: Den kutter av kjølevæskestrømmen, noe som er veldig nyttig rett før verktøyskift eller på slutten av operasjonen.

Selv om mange av disse kodene er like fra maskin til maskin, er det obligatorisk å gjennomgå spesifikk kontrollmanual fordi noen M-modeller kan ha helt forskjellige funksjoner avhengig av produsenten.

G-kode og M-kode i FDM/FFF 3D-printing

Noe veldig merkelig skjer innen 3D-printing: selv om vi snakker om en annen teknologi, er kjernen i kontrollen basert på samme konsept som G-kode og M-kode enn i CNC. Skriverens firmware (Marlin, Klipper, RepRap, osv.) tolker linjene og beveger motorer, varmer opp hotenden, slår på vifter eller utfører nivellering av sengebunnen.

Skriveren forstår ikke STL-, OBJ- eller 3D-nett; den vet bare at den må flytt hodet til noen koordinaterProsessen innebærer å avsette materiale (ekstrudere) med en bestemt hastighet og temperatur. Sliceren oversetter 3D-geometrien til tusenvis av linjer med G-kode.

Et enkelt eksempel på en skriverkommando ville være noe sånt som G0 X15, som beveger X-aksen 15 mm i positiv retning. Ved å kombinere X, Y, Z og E med G0/G1-kommandoer oppnås følgende: tegn hvert lag av stykket på sengen.

I tillegg til G-koden som beskriver stykket, genererer slicere alltid en start- og sluttkode (start G-kode og slutt G-kode) som kjører før og etter hver utskriftsjobb. Disse skriptene gjentas i alle jobber med mindre du endrer dem.

Første oppsett inkluderer vanligvis hjemjustering (G28), oppvarming av sjikt og varmeelement (M140, M104, M109) og automatisk nivellering hvis en sensor er tilstede. ekstrudering av en spyleledningosv. Når det er ferdig, slås varmeelementene (M104 S0, M140 S0), motorene (M84) og viftene (M106 S0) av, og noen ganger beveges Z-aksen for å flytte delen bort fra varmeenden.

Hvorfor endre start- og slutt-G-koden i 3D-printing

Selv om de fleste slicere tar med ganske generiske standardskript Siden de fungerer med mange skrivere, er det ofte verdt å tilpasse dem for å få mest mulig ut av dem. Noen typiske årsaker er:

  • Legg til en sekvens av automatisk sengenivåjustering hvis skriveren din har en sensor.
  • Inkluder forrensingslinjer for å rengjøre ekstruderen og forbedre vedheftingen til det første laget.
  • Konfigurer lyder eller varsler når utskriften er fullført.
  • Bedre kontroll over kjøling av varmeenden og sengen for å unngå vridning eller drypp av filament.
  • På skrivere uten EEPROM, tilbakestill Z-forskyvninger, PID-parametere eller innstillinger som går tapt når de slås av.
  Løsning på feil 5 "Filfeil i katalogen"

I slicere som Cura er det ganske enkelt: du går inn i skriverinnstillingene, åpner maskininnstillingene, og du vil se to tekstbokser for start G-kode og slutt G-kodeDer kan du redigere, lime inn kodestykker og tilpasse det til din spesifikke modell.

Vanlige G-kodekommandoer i 3D-skriverskript

Noen kommandoer som vanligvis vises Disse skriptene (ikke komplette programmer) er:

  • G92 E0: Tilbakestill ekstruderen til null, slik at ekstruderingskommandoene fra da av er relative til det punktet.
  • G28: Den bringer alle aksene til origo (hjemposisjonering), noe som er viktig før utskriften starter.
  • G1 XYFE: Den kombinerer X/Y-bevegelse, F-mating og E-ekstrudering, vanligvis for å tegne renselinjer eller flytte til en bestemt posisjon på sengen.
  • G1 Z: Juster Z-aksens høyde for å hindre at hotenden treffer sengen eller den ferdige delen.
  • G1 FE: Kommandoer for tilbaketrekking av filament på slutten for å forhindre drypp.
  • M106 S: Konfigurer lagets viftehastighet, fra 0 (av) til maksimum.
  • M104 S0 / M140 S0: De slår av ekstruderen og sengen når jobben er ferdig.
  • M84 XNUMX: Deaktiver alle motorer slik at aksene er frie.

Sammen med disse kommandoene legger hver firmware til sine egne koder for sengeutjevning, avanserte pauser, filamentbytter osv. Det er derfor det er så viktig. å vite nøyaktig hva skriveren din forstår.

Viktige forskjeller mellom G-kode og M-kode

Selv om de alltid vises sammen og utfyller hverandre, har G-kode og M-kode ulike roller innen CNC-programmering og 3D-printing. Vi kan oppsummere forskjellene deres i flere punkter:

  • propósito: G-kode styrer verktøybaner, posisjoner, retninger og matehastigheter. M-kode administrerer hjelpefunksjoner som spindler, kjølevæsker, verktøybytter og programavslutning.
  • Instruksjonstype: G-kode er geometrisk av natur, den dikterer hvordan maskinen beveger seg; M-kode er operasjonell, den fokuserer på maskintilstander som ikke nødvendigvis involverer bevegelse.
  • Standardisering: G-koder er relativt standardiserte i bransjen, så G00, G01, G02 osv. betyr vanligvis det samme på forskjellige maskiner. I motsetning til dette er mange M-koder mer avhengig av produsenten og betydningen deres kan endre seg.
  • Vekt i presisjon: G-koden påvirker direkte delens dimensjonsnøyaktighet; en feil parametrisert G01 kan ødelegge en kontur. M-koden har en mer indirekte innflytelse (for eksempel påvirker det termisk stabilitet og overflatefinish å slå kjølevæsken av eller på).
  • Kompleksitet: G-kodeblokker har en tendens til å være tettere, med mange koordinater, radier og fremskritt, mens M-kode har en tendens til å være enklere, men svært kritisk for sikkerhet og sekvensering.

Til syvende og sist kan programmet sees på som et orkester der G-kode markerer notene og melodienOg M-koden bestemmer når hvert instrument kommer inn, når det er stillhet, og når teppet går ned.

Andre komplementære kommandoer i CNC-programmering

Foruten G og M, er det tre bokstaver som er essensielle i både CNC- og 3D-printing: F, S og T. Dette er ikke uavhengige koder, men parametere som følger med bevegelsene eller funksjoner:

  • F (Fôring): Definerer matehastigheten, for eksempel i mm/min eller mm/omdreining, avhengig av om G94 eller G95 (eller G99 på noen kontroller) er aktiv. En F-verdi som er for høy vil ødelegge verktøy; en for lav vil forringe syklustidene og kan føre til dårlige finisher.
  • S (Spindelhastighet): Angir spindelhastigheten i o/min når den kombineres med M03 eller M04. Den kan også representere andre hastigheter i visse sammenhenger.
  • T (Verktøy): Velg verktøyet som skal brukes i M06-verktøybyttet, og gjør det kritisk at det samsvarer med verktøyets faktiske posisjon på lageret.

Et eksempel på en CNC-bevegelseskommando kan være G01 X-100, Y-50, Z35, F10, som kommanderer en lineær forskyvning med en matehastighet på 10 enheter per minutt (avhengig av systemet). Hvis vi legger til M03 S3000, vil vi indikere at vi i den posisjonen ønsker at spindelen skal rotere med 3000 o/min med klokken.