LinuxCNC "G-Code" Quick Reference
Code | Parameters | Description |
Motion | (X Y Z A B C U V W apply to all motions) |
G0 | | Rapid motion |
G1 | | Coordinated motion ("Straight feed") |
G2, G3 | I J K or R, P | Coordinated helical motion ("Arc feed") CW or CCW |
G4 | P | Dwell (no motion for P seconds) |
G5 | I J P Q | Cubic spline |
G5.1 | I J | Quadratic spline |
G5.2 | P L | NURBS, add control point |
G5.3 | | NURBS, execute |
G38.2…G38.5 | | Straight probe |
G33 | K | Spindle-synchronized motion |
G33.1 | K | Rigid tapping |
G80 | | Cancel motion mode |
Canned cycles | (X Y Z or U V W apply to canned cycles, depending on active plane) |
G81, G82 | R L (P) | Drilling cycle without (with) dwell |
G83, G73 | R L Q | Peck and Chip-break drilling cycles |
G85, G89 | R L (P) | Boring cycle without (with) dwell |
G76 | P Z I J R K Q H L E | Multipass lathe threading cycle |
Distance Mode |
G90 | | Absolute distance mode |
G91 | | Incremental distance mode |
G90.1 | | Arc centers I,J,K are absolute |
G91.1 | | Arc centers I,J,K are relative to the arc's starting point |
G7 | | X Diameter mode (lathe) |
G8 | | X Radius mode (lathe) |
Feed Rate Mode |
G93 | | Inverse time feed rate |
G94 | | Units per minute feed rate |
G95 | | Units per revolution |
Spindle Control |
M3, M4 | S | Turn spindle clockwise or counterclockwise |
M5 | | Stop spindle |
G96 | S D | CSS mode (Constant Surface Speed) |
G97 | | RPM mode |
Coolant |
M7 | | Turn mist on |
M8 | | Turn flood on |
M9 | | Turn all coolant off |
Tool Length Offset |
G43 | H | Use tool length offset from tool table |
G43.1 | I K | Use specified tool length offset for transient tool |
G49 | | Cancel tool length offset |
Stopping |
M0 | | Program Pause |
M1 | | Optional Pause |
M2, M30 | | End Program |
M60 | | Pallet Change Pause |
Units |
G20 | | Inches |
G21 | | Millimeters |
Plane Selection | (affects G2, G3, G81…G89, G40…G42) |
G17 | | Select XY plane |
G18 | | Select XZ plane |
G19 | | Select YZ plane |
Cutter Radius Compensation |
G40 | | Cancel cutter radius compensation |
G41,G42 | D | Start cutter radius compensation left or right |
G41.1, G42.1 | D L | Start cutter radius compensation left or right, transient tool |
Path Control Mode |
G61 | | Exact Path mode |
G61.1 | | Exact Stop mode |
G64 | P | Continuous mode with optional path tolerance |
Return Mode in Canned Cycles |
G98 | | Retract to prior position |
G99 | | Retract to R position |
Other Modal Codes |
F | | Set Feed Rate |
S | | Set Spindle Speed |
T | | Select Tool (also see M6) |
M48, M49 | | Speed and Feed Override Control |
M50 | P0 (off) or P1 (on) | Feed Override Control |
M51 | P0 (off) or P1 (on) | Spindle Speed Override Control |
M52 | P0 (off) or P1 (on) | Adaptive Feed Control |
M53 | P0 (off) or P1 (on) | Feed Stop Control |
G54…G59.3 | | Select coordinate system |
Flow-control Codes |
O- sub | | Subroutines, sub/endsub call |
O- while | | Looping, while/endwhile do/while |
O- if | | Conditional, if/else/endif |
O- repeat | | Run enclosed code more than once |
Input/Output Codes |
M62…M65 | P | Digital Output Control |
M66 | P E L Q | Digital and Analog Input Control |
M67 | T | Analog Output Synchronized with Motion |
M68 | T | Analog Output Immediate |
Non-modal Codes |
M6 | T | Change tool |
M61 | Q | Set Current Tool |
G4 | P | Dwell (seconds) |
G10 L1 | P Q R axes | Tool offset, radius, orientation setting |
G10 L10 | P axes | Tool offset, setting calculated from workpiece |
G10 L11 | P axes | Tool offset, setting calculated from fixture |
G10 L2 | P R axes | Coordinate system origin, rotation setting |
G10 L20 | P axes | Coordinate system origin setting calculated |
G28, G28.1 | | Return to or Set reference point 1 |
G30, G30.1 | | Return to or Set reference point 2 |
G53 | | Motion in machine coordinate system |
G92 | axes | Offset coordinate systems and set parameters |
G92.1 | | Cancel offset coordinate systems and set parameters to zero |
G92.2 | | Cancel offset coordinate systems but do not reset parameters |
G92.3 | | Apply parameters to offset coordinate systems |
M101…M199 | P Q | User-defined M-codes |
Comments & Messages |
(…) | | An inline comment |
(MSG,…) | | Display a message "…" to the user (e.g., in a popup) |
(DEBUG,…) | | Display a message (with variables substituted) like MSG |
(PRINT,…) | | Display a message (with variables substituted) to stderr |