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 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 | |||
G01 |
Motion
|
Move in a straight line at last speed commanded by a (F)eedrate | XYZ of endpoint | |||
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 | ||||
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 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 4 million visitors a year it’s the most popular CNC blog by far on the web.
More Resources
Recently updated on August 18th, 2023 at 11:00 am