# G-Code and M-Code Reference List for Turning

These are the common g-codes for CNC Lathes and turning. Code categories are the groupings for the g-code Wizard (type Ctrl+G for the Wizard). Function tells what the g-code does, Notes gives a little more information such as the parameters, and Tutorial is a link (if any) to a g-code tutorial that uses G-Wizard Editor to teach how to use the g-code.  For specifics on CNC Lathe Programming, see our intro article.

Category

#### Tutorials

G00
Motion
Move in a straight line at rapids speed. XYZ of endpoint G00 and MDI.

Linear Motion: G00 and G01

G01
Motion
Move in a straight line at last speed commanded by a (F)eedrate XYZ of endpoint G01 and MDI.

Linear Motion: G00 and G01

G02
Motion
Clockwise circular arc at (F)eedrate XYZ of endpoint

IJK relative to center

R for radius

Circular Arcs: G02 and G03
G03
Motion
Counter-clockwise circular arc at (F)eedrate XYZ of endpoint

IJK relative to center

R for radius

Circular Arcs: G02 and G03
G04
Motion
Dwell: Stop for a specified time. P for milliseconds

X for seconds

Precise Timing and Speed: Dwell, Exact Stop, Backlash Compensation
G09
Motion
Exact stop check Precise Timing and Speed: Dwell, Exact Stop, Backlash Compensation
G10
Compensation
Programmable parameter input
G17
Coordinate
Select X-Y plane Select X-Y plane
G18
Coordinate
Select X-Z plane Select X-Z plane
G19
Coordinate
Select Y-Z plane Select Y-Z plane
G20
Coordinate
Program coordinates are inches G20 and G21: Unit Conversion
G21
Coordinate
Program coordinates are mm G20 and G21: Unit Conversion
G27
Motion
Reference point return check G28: Return to Reference Point
G28
Motion
Return to home position G28: Return to Reference Point
G29
Motion
Return from the reference position G28: Return to Reference Point
G30
Motion
Return to the 2nd, 3rd, and 4th reference point G28: Return to Reference Point
G32
Canned
Constant lead threading (like G01 synchronized with spindle)
G40
Compensation
Tool cutter compensation off (radius comp.)
G41
Compensation
Tool cutter compensation left (radius comp.)
G42
Compensation
Tool cutter compensation right (radius comp.)
G43
Compensation
Apply tool length compensation (plus)
G44
Compensation
Apply tool length compensation (minus)
G49
Compensation
Tool length compensation cancel
G50
Compensation
Reset all scale factors to 1.0
G51
Compensation
Turn on scale factors
G52
Coordinate
Local workshift for all coordinate systems: add XYZ offsets
G53
Coordinate
Machine coordinate system (cancel work offsets)
G54
Coordinate
Work coordinate system (1st Workpiece)
G55
Coordinate
Work coordinate system (2nd Workpiece)
G56
Coordinate
Work coordinate system (3rd Workpiece)
G57
Coordinate
Work coordinate system (4th Workpiece)
G58
Coordinate
Work coordinate system (5th Workpiece)
G59
Coordinate
Work coordinate system (6th Workpiece)
G61
Other
Exact stop check mode Precise Timing and Speed: Dwell, Exact Stop, Backlash Compensation
G62
Other
Automatic corner override
G63
Other
Tapping mode
G64
Other
Best speed path
G65
Other
Custom macro simple call Subprograms and Macros
G70
Canned
Finish Turning Cycle
G71
Canned
Rough Turning Cycle G71: Rough Turning Cycle

G71 Type II: Rough Turning With “Pockets”

G72
Canned
Rough Facing Cycle
G73
Canned
Pattern Repeating Cycle
G74
Canned
Peck Drilling Cycle
G75
Canned
Grooving Cycle
G76
Canned
Threading Cycle G76 Lathe Threading Cycle
G80
Canned
Cancel canned cycle
G83
Canned
Face drilling cycle
G84
Canned
Face Tapping cycle
G86
Canned
Boring canned cycle, spindle stop, rapid out
G87
Canned
Side Drilling Cycle
G88
Canned
Side Tapping Cycle
G89
Canned
Side Boring Cycle
G90
Coordinate
Absolute programming of XYZ (type B and C systems) G90 and G91 Absolute vs Incremental Mode
G90.1
Coordinate
Absolute programming IJK (type B and C systems)
G91
Coordinate
Incremental programming of XYZ (type B and C systems) G90 and G91 Absolute vs Incremental Mode
G91.1
Coordinate
Incremental programming IJK (type B and C systems)
G92
Coordinate
Thread Cutting Cycle
G92 (alternate)
Motion
Clamp of maximum spindle speed S
G94
Motion
Endface Turning Cycle
G96
Motion
Constant Surface Speed ON G96: Constant Surface Speed
G97
Motion
Constant Surface Speed Cancel G96: Constant Surface Speed
G98
Motion
Feedrate per Minute G98 G-Code and G99 G-Code: Canned Cycle Return or Feedrate Modes
G99
Motion
Feedrate per Revolution G98 G-Code and G99 G-Code: Canned Cycle Return or Feedrate Modes
G190 Motion Radius mode CNC Lathe Programming
G191 Motion Diameter mode CNC Lathe Programming

 M-Codes Code Category Function Notes Tutorials M00 M-Code Program Stop (non-optional) M01 M-Code Optional Stop: Operator Selected to Enable M02 M-Code End of Program M03 M-Code Spindle ON (CW Rotation) M03 Spindle On Clockwise M04 M-Code Spindle ON (CCW Rotation) M04 Spindle on Counter Clockwise M05 M-Code Spindle Stop M05 Spindle Off. M06 M-Code Tool Change M07 M-Code Mist Coolant ON M07 and MDI. M08 M-Code Flood Coolant ON M08 and MDI. M09 M-Code Coolant OFF M09 and MDI. M13 M-Code Spindle ON (CW Rotation) + Coolant ON M13 and MDI. M14 M-Code Spindle ON (CCW Rotation) + Coolant ON M14 and MDI. M30 M-Code End of Program, Rewind and Reset Modes M97 M-Code Haas-Style Subprogram Call Subprograms and Macros M98 M-Code Subprogram Call Subprograms and Macros M99 M-Code Return from Subprogram Subprograms and Macros

Bonus: Check Out our Other CNC Cookbooks for More In-Depth CNC Information!

If you’re a CNC Beginnner, check out our CNC Beginner’s Cookbook. It’ll get you up to speed with a solid CNC foundation fast.

We also have Cookbooks for Feeds and Speeds, G-Code Programming, CNC Manufacturing and Shop Management, DIY CNC, and don’t forget the CNC Cookbook Blog–with over 4 million visitors a year it’s the most popular CNC blog by far on the web.

## More Resources

#### Turning Feeds and Speeds Calculator

Recently updated on June 26th, 2024 at 03:41 pm