G and M Codes CNC: A Complete Guide

G and M codes are the backbone of CNC machining, serving as the language that communicates instructions to your machine. While G codes primarily control the movement and positioning of the tool, M codes handle auxiliary functions like turning the spindle on or off. This comprehensive overview will help you understand the key G and M codes and how they work together to bring your CNC projects to life.

What Are G and M Codes?

G Codes: Geometric Codes

G codes are commands that control the movement and positioning of the CNC machine’s tool. They determine where the tool goes and how it gets there.

M Codes: Miscellaneous Codes

M codes handle non-movement operations, such as starting and stopping the spindle, turning coolant on or off, and ending the program.

Together, G and M codes create the complete set of instructions that tell the CNC machine what to do.

Key G Codes and What They Do

Movement and Positioning

  • G00: Rapid positioning (non-cutting movement)
  • G01: Linear cutting motion
  • G02: Circular interpolation (clockwise)
  • G03: Circular interpolation (counterclockwise)

Units and Measurement

  • G20: Set units to inches
  • G21: Set units to millimeters

Positioning Modes

  • G90: Absolute positioning (coordinates are relative to the origin)
  • G91: Incremental positioning (coordinates are relative to the current position)

Cutting Planes

  • G17: Select XY plane
  • G18: Select ZX plane
  • G19: Select YZ plane

Tool Compensation

  • G40: Cancel tool radius compensation
  • G41: Apply left tool radius compensation
  • G42: Apply right tool radius compensation

Tool Length Compensation

  • G43: Apply tool length compensation
  • G49: Cancel tool length compensation

Home and Work Offsets

  • G28: Return to home position
  • G54: Select work offset coordinate system

Key M Codes and What They Do

Spindle Control

  • M03: Start spindle clockwise
  • M04: Start spindle counterclockwise
  • M05: Stop spindle

Coolant Control

  • M07: Turn mist coolant on
  • M08: Turn flood coolant on
  • M09: Turn all coolant off

Tool and Program Control

  • M06: Tool change
  • M30: End program and reset
  • M00: Program stop

How G and M Codes Work Together

G and M codes are combined in a single program to execute complex machining tasks. Here’s an example:

G21           ; Set units to millimeters
G90           ; Use absolute positioning
G00 X0 Y0 Z5  ; Move to the starting position
M03 S1200     ; Start spindle clockwise at 1200 RPM
G01 Z-1 F100  ; Lower tool and start cutting
G01 X50 Y0    ; Cut to X=50, Y=0
M05           ; Stop spindle
G28           ; Return to home position
M30           ; End program

Tips for Working with G and M Codes

  • Always Include Units and Positioning: Use G20/G21 and G90/G91 at the start of every program to avoid confusion.
  • Simulate Before Cutting: Use simulation software to check your program for errors before running it on the machine.
  • Keep Commands Simple: Break complex operations into smaller, manageable steps.
  • Use Comments: Add comments in your code to explain each step. For example:
    G01 X10 Y10  ; Move to the first corner of the square

360 Key Takeaways

  • G codes control tool movement and positioning, while M codes manage auxiliary machine functions.
  • Common G codes include G00 (rapid positioning) and G01 (linear cutting), while common M codes include M03 (spindle on) and M30 (end program).
  • Combining G and M codes in a structured program enables precise and efficient machining.
  • Simulations and comments can save time and prevent errors when writing or editing G and M code programs.

Understand G and M codes is crucial for any CNC operator. These commands work together to control every aspect of your machine’s operations, from cutting paths to spindle control.