🛠️ G-Code & M-Code Cheat Sheet for CNC Machinists
This is a more complete list of standard G- and M-codes commonly used on CNC mills and lathes. These codes are compatible with most Fanuc, Haas, and similar controllers.
🟦 G-Codes
Code |
Description |
G00 |
Rapid move |
G01 |
Feedrate move |
G02 |
Clockwise arc |
G03 |
Counter-clockwise arc |
G04 |
Dwell (L# = time) |
G08 |
Spline smoothing on |
G09 |
Exact stop (smoothing off) |
G10 / G11 |
Decelerated feed stops |
G17 / G18 / G19 |
Plane selection: XY / XZ / YZ |
G20 / G21 |
Units: Inch / Millimeter |
G28 |
Return to machine home |
G33 |
Threading (Lathe)* |
G35 |
Bypass error check next line |
G40 / G41 / G42 |
Tool comp: off / left / right |
G43 / G44 / G49 |
Tool length offset (+ / - / cancel) |
G53 |
Cancel work coordinate offsets |
G54–G59 |
Work coordinate offsets 1–6 |
G61 / G64 |
Buffering off / on |
G65 – G68 |
Pocket and flycut milling cycles |
G70 |
Inch mode |
G71 |
Millimeter mode |
G74 |
Lathe peck drilling |
G81 – G89 |
Drill & boring cycles |
G84 |
Tapping cycle |
G90 / G91 |
Absolute / Incremental positioning |
G92 |
Home coordinate reset |
G94 / G95 |
Feedrate modes: IPM / IPR |
G96 / G97 |
Constant surface speed on / off (Lathe) |
*G33 and G33.1 will not work on Sherline CNC machines, as they lack synchronized spindles.
🟨 M-Codes
Code |
Description |
M00 |
Program stop |
M01 |
Optional stop |
M02 / M30 |
End program |
M03 / M04 / M05 |
Spindle on CW / CCW / stop |
M06 |
Tool change |
M08 / M09 |
Coolant on / off |
M10 |
Reserved for tool height offset |
M13 |
Spindle and coolant on |
M91 / M92 |
Readout display: Incremental / Absolute |
M97 / M98 / M99 |
Subroutine jumps / returns |
M100 |
Machine zero reset |
M199 |
Mid-program start |
🟥 Symbols & Parameters
Symbol |
Description |
F |
Feedrate (in/min or mm/min) |
S |
Spindle speed (RPM) |
T |
Tool number |
H |
Tool length offset number |
D |
Diameter offset number |
N |
Line number label |
; |
Comment line |
💡 Pro Tips
- Always cancel cutter comp (G40) before a tool change.
- Use G43 H01 to apply tool length offset #1.
- G41/G42 require a linear feed move (G01).
- Use G28 U0. W0. to return via intermediate axes.