G-Code and M-Code Reference List for Milling
These are the common g-codes and m-codes for milling that G-Wizard Editor supports for Mills. 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 from our Online G-Code Tutorial that uses G-Wizard Editor to teach how to program the g-code.
Pssst! Hey, if you’re here looking up g-codes, maybe you’d like to find an easier way. What could be better than software that tells you exactly what each g-code does in plain English?
That’s what G-Wizard Editor is like.
GCode is complicated. G-Wizard Editor makes it easy.
|
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 | G02 / G03 Tutorial and Examples | ||
| G03 |
Motion
|
Counter-clockwise circular arc at (F)eedrate | XYZ of endpoint IJK relative to center R for radius | G02 / G03 Tutorial and Examples | ||
| G04 |
Motion
|
Dwell: Stop for a specified time. | P for milliseconds X for seconds | Precise Timing and Speed: Dwell, Exact Stop, Backlash Compensation | ||
| G05 |
Motion
|
FADAL Non-Modal Rapids | ||||
| G09 |
Motion
|
Exact stop check | Precise Timing and Speed: Dwell, Exact Stop, Backlash Compensation | |||
| G10 |
Compensation
|
Programmable parameter input | ||||
| G15 |
Coordinate
|
Turn Polar Coordinates OFF, return to Cartesian Coordinates | G15/G16 Polar Coordinates | |||
| G16 |
Coordinate
|
Turn Polar Coordinates ON | G15/G16 Polar Coordinates Polar Coordinate Calculator | |||
| 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 | |||
| G68 |
Coordinate
|
Coordinate System Rotation | G68 and G69 Tutorial and Examples | |||
| G69 |
Coordinate
|
Cancel Coordinate System Rotation | G68 and G69 Tutorial and Examples | |||
| G73 |
Canned
|
High speed drilling cycle (small retract) | ||||
| G74 |
Canned
|
Left hand tapping cycle | ||||
| G76 |
Canned
|
Fine boring cyle | ||||
| G80 |
Canned
|
Cancel canned cycle | ||||
| G81 |
Canned
|
Simple drilling cycle | ||||
| G82 |
Canned
|
Drilling cycle with dwell (counterboring) | ||||
| G83 |
Canned
|
Peck drilling cycle (full retract) | ||||
| G84 |
Canned
|
Tapping cycle | ||||
| G85 |
Canned
|
Boring canned cycle, no dwell, feed out | ||||
| G86 |
Canned
|
Boring canned cycle, spindle stop, rapid out | ||||
| G87 |
Canned
|
Back boring canned cycle | ||||
| G88 |
Canned
|
Boring canned cycle, spindle stop, manual out | ||||
| G89 |
Canned
|
Boring canned cycle, dwell, feed out | ||||
| 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
|
Offset coordinate system and save parameters | ||||
| G92 (alternate) |
Motion
|
Clamp of maximum spindle speed | S | |||
| G92.1 |
Coordinate
|
Cancel offset and zero parameters | ||||
| G92.2 |
Coordinate
|
Cancel offset and retain parameters | ||||
| G92.3 |
Coordinate
|
Offset coordinate system with saved parameters | ||||
| G94 |
Motion
|
Units per minute feed mode. Units in inches or mm. | ||||
| G95 |
Motion
|
Units per revolution feed mode. Units in inches or mm. | ||||
| G96 |
Motion
|
Constant surface speed | G96: Constant Surface Speed | |||
| G97 |
Motion
|
Cancel constant surface speed | G96: Constant Surface Speed | |||
| G98 |
Canned
|
Return to initial Z plane after canned cycle | G98 G-Code and G99 G-Code: Canned Cycle Return or Feedrate Modes | |||
| G99 |
Canned
|
Return to initial R plane after canned cycle | G98 G-Code and G99 G-Code: Canned Cycle Return or Feedrate Modes | |||
|
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. | |||
| M17 |
M-Code
|
FADAL subroutine return | ||||
| M29 |
M-Code
|
Rigid Tapping Mode on Fanuc Controls | ||||
| 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
Software that will make anyone a better CNC'er
Get Better Tool Life, Surface Finish, and Material Removal Rates Fast.
It's that easy. You can install and get results in a matter of minutes.
