CNCCookbook: Be a Better CNC'er

Enter a drawing to win a SideStop work stop and receive our free weekly newsletter.

Enter Now!

G-Code and M-Code Reference 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 tutorial that uses G-Wizard Editor to teach how to use the g-code.

 
Code
Category
Function

Notes

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   CNC G-Code Coordinates  
  G18
Coordinate
Select X-Z plane   CNC G-Code Coordinates  
  G19
Coordinate
Select Y-Z plane   CNC G-Code Coordinates  
  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.1
Coordinate
Absolute programming IJK (type B and C systems)      
  G91
Coordinate
Incremental programming of XYZ (type B and C systems)      
  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
Linear Feedrate per Time      
  G99
Motion
Feedrate per Revolution      
             
             
             
             
   
       
 
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 and MDI.  
  M04
M-Code
Spindle ON (CCW Rotation)      
  M05
M-Code
Spindle Stop   M05 and MDI.  
  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 2 million visitors a year it's the most popular CNC blog by far on the web.


 

Featured Articles

Step-By-Step Guide to Making CNC Parts

CNC Router Cutter Types

Why Use a Single Flute Endmill?

Step and Servo Motor Sizing

The Truth About Tool Deflection

10 TIps for Router Aluminum Cutting

2 Tools for Calculating Cut Depth and Stepover

CNC Machine Hourly Rate Calculator

Special Purpose CNC Calculators

Feeds and Speeds Guide

CNC Cutter Guide

Feeds and Speeds By Material

G-Code Tutorial

  Feed Rate Calculator

Sales, and Special Deals

 

GCode is complicated.
G-Wizard Editor
makes it easy.

Try It!

 

Feeds and Speeds:
Made Easy.

Try G-Wizard

 

 

Do you want to be a better CNC'er?

Get Better Tool Life, Surface Finish, and Material Removal Rates.

 

Start Now, It's Free!