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.
| Code | Category | Function | Notes | Tutorials | |
G00 | Motion | Move in a straight line at rapids speed. | XYZ of endpoint | G00 and MDI. | ||
G01 | Motion | Move in a straight line at last speed commanded by a (F)eedrate | XYZ of endpoint | G01 and MDI. | ||
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 | |||
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
G75 and Peck Parting Off For Lathes
Mazatrol Training Classes
Fanuc CNC Training Classes
Turning Feeds and Speeds Calculator
Recently updated on June 26th, 2024 at 03:41 pm