G-Code Reference
2020/03/12
G-Codes
Mode
G20 - Inch Units
G70 - Inch Units
Usage: G20
Set units to inches.
Parameters:
#<_units> - (RW) current units
G21 - Millimeter Units
G71 - Millimeter Units
Usage: G21
Set units to millimeters.
Parameters:
#<_units> - (RW) current units
G17 - XY Plane
Usage: G17
Set XY plane. Planes are used with arcs, circles and cycles.
#<_plane> - (RW) current plane
G18 - ZX Plane
Usage: G18
Set ZX plane. Planes are used with arcs, circles and cycles.
Parameters:
#<_plane> - (RW) current plane
G19 - YZ Plane
Usage: G19
Set YZ plane. Planes are used with arcs, circles and cycles.
Parameters:
#<_plane> - (RW) current plane
G90 - Distance Mode – Absolute
Usage: G90
Set absolute distance mode. In absolute position mode machine will move to the commanded
position in the active user coordinate system.
Parameters:
#<_distancemode> - (RW) current distance mode
G91 - Distance Mode – Incremental
Usage: G91
Set incremental distance mode. In incremental position mode commanded moves are interpreted as
distance and direction from the current position.
Parameters:
#<_distancemode> - (RW) current distance mode
G90.1- Distance Mode – IJK Absolute
Usage: G90.1
Set absolute distance mode for I, J, K arc values. In absolute arc center mode the I, J, K values
designate the position of the arc center in the user coordinate system.
Parameters:
#<_distancemode_ijk> - (RW) current distance mode for IJK
G91.1- Distance Mode – IJK Incremental
Usage: G91.1
Set incremental distance mode for I, J, K arc values. In incremental arc center mode the I, J, K values
designate the distance and direction to the arc center from the start point.
Parameters:
#<_distancemode_ijk> - (RW) current distance mode for IJK
G90.2- Distance Mode – ABC Absolute
Usage: G90.2
Set absolute distance mode for A, B, C axis values. (same as M82)
Parameters:
#<_distancemode_abc> - (RW) current distance mode for ABC
G91.2- Distance Mode – ABC Incremental
Usage: G91.2
Set incremental distance mode for A, B, C axis values. (same as M83)
#<_distancemode_abc> - (RW) current distance mode for ABC
G98 - Cycle Return - Initial Z Point
Usage: G98
Specifies that a cycle ends at the initial Z level.
Parameters:
#<_cyclereturnmode> - (RW) current cycle return mode
G99 - Cycle Return - R Point
Usage: G99
Specifies that a cycle ends at the programmed R level.
Parameters:
#<_cyclereturnmode> - (RW) current cycle return mode
G07 - Lathe Mode – Diameter
Usage: G07
Use diameter mode for axis X on a lathe. When in the diameter mode the X axis moves on a lathe
will be 1/2 the distance to the center of the lathe.
Parameters:
#<_lathemode> - (RW) current lathe mode
G08 - Lathe Mode – Radius
Usage: G08
Use radius mode for axis X on a lathe. When in radius mode the X axis moves on a lathe will be the
distance from the center.
Parameters:
#<_lathemode> - (RW) current lathe mode
G15 - Polar Coordinate Cancel
Usage: G15
Cancel polar mode coordinate positioning.
Parameters:
#<_polarmode> - (RW) current polar mode
G16 - Polar Coordinate Enable
Usage: G16
Enable polar mode coordinate positioning. In the polar coordinate mode movement end points are
specified as a radius and angle. Origin is determined by the absolute/incremental position mode
setting.
The current plane setting determines which word is radius and which is angle.
G17 – XY Plane – X is radius, Y is angle
G18 – ZX Plane – Z is radius, X is angle
G19 – YZ Plane – Y is radius, Z is angle
Parameters:
#<_polarmode> - (RW) current polar mode
Example:
(square with corners -30,-30 and 30,30)
G0 X0 Y0
G16
G00 X42.4264 Y225
G01 X42.4264 Y135
G01 X42.4264 Y45
G01 X42.4264 Y315
G01 X42.4264 Y225
G15
G61 - Blend Cancel
Usage: G61
In canceled blend mode movement is exactly as programmed. Moves will slow or stop as needed to
reach every programmed point. If two sequential moves are exactly co-linear movement will not stop.
Parameters:
#<_blendmode> - (R) current blend mode
G64 - Blend Enable
Usage: G64 <P> <Q> - P (optional) = tolerance
In blend mode sharp corners will be rounded and the machine may never reach the programmed
point before a direction change. Optional tolerance can be set.
Parameters:
#<_blendmode> - (R) current blend mode
#<_blend_tol> - (R) current blend tolerance
G93 - Feed Mode - Inverse Time
Usage: G93
In inverse time feed mode, an F word means the move should be completed in [one divided by the F
number] minutes. When inverse time feed mode is active, an F word must appear on every motion
line.
Parameters:
#<_feedmode> - (RW) current feed mode
G94 - Feed Mode - Units per Minute
Usage: G94
In units per minute feed mode, an F word is interpreted to mean the controlled point should move at a
certain distance per minute.
Parameters:
#<_feedmode> - (RW) current feed mode
G95 - Feed Mode - Units per Revolution
Usage: G95
In units per revolution feed mode, an F word is interpreted to mean the controlled point should move
at a certain distance per spindle revolution. This mode requires RPM feedback from the spindle.
Parameters:
#<_feedmode> - (RW) current feed mode
G96 - Spindle Mode – CSS
Usage: G96
In this mode surface speed is constant and based on cutting diameter. Surface speed is specified in
units per minute. This requires special hardware and is usually not used on simple machines.
Parameters:
#<_spindlemode> - (RW) current spindle mode
G97 - Spindle Mode – RPM
Usage: G97
In this mode the spindle speed is specified in revolutions per minute.
Parameters:
#<_spindlemode> - (RW) current spindle mode
Tools
G40 - Tool Compensation Cancel
Usage: G40
Cancel tool compensation.
Parameters:
#<_toolcomp> - (R) tool compensation side
#<_toolcomp_dia> - (R) tool compensation diameter
G41 - Tool Compensation Left
G42 - Tool Compensation Right
Usage: G41 <D> - D (optional) = tool number
Start tool compensation with diameter from tool table.
If D word is not specified then current tool number is used.
Parameters:
#<_toolcomp> - (R) tool compensation side
#<_toolcomp_dia> - (R) tool compensation diameter
G41.1- Tool Compensation Dynamic Left
G42.1- Tool Compensation Dynamic Right
Usage: G41.1 D - D = tool diameter
Start tool compensation.
D word specifies tool diameter.
Parameters:
#<_toolcomp> - (R) tool compensation side
#<_toolcomp_dia> - (R) tool compensation diameter
G43 - Tool Offset+ Enable
G44 - Tool Offset- Enable
Usage: G43 <H> - H (optional) = tool number
Set tool offset to value from tool table.
If H word is not specified then current tool number is used.
Parameters:
#<_tooloff> - (RW) true if tool offset is currently enabled
#<_tooloff_x..w> - (RW) current tool offset
G43.1- Tool Offset+ Enable
G44.1 - Tool Offset- Enable
Usage: G43.1 X..W - X..W = tool offset
Set tool offset to value from axis words.
Parameters:
#<_tooloff> - (RW) true if tool offset is currently enabled
#<_tooloff_x..w> - (RW) current tool offset
G49 - Tool Offset Cancel
Usage: G49
Cancel tool offset
Coordinate Systems
G54 - Coordinate System 1
G55 - Coordinate System 2
G56 - Coordinate System 3
G57 - Coordinate System 4
G58 - Coordinate System 5
G59 - Coordinate System 6
G59.1- Coordinate System 7
G59.2- Coordinate System 8
G59.3- Coordinate System 9
Usage: G54 - select coordinate system 1
G55 - select coordinate system 2
G56 - select coordinate system 3
G57 - select coordinate system 4
G58 - select coordinate system 5
G59 - select coordinate system 6
G59.1 - select coordinate system 7
G59.2 - select coordinate system 8
G59.3 - select coordinate system 9
Select coordinate system.
G54.1- Coordinate System P
G59 P- Coordinate System P
Usage: G54.1 P - P = select coordinate system P+6
G59 P - P = select coordinate system P
Select coordinate system.
Coordinate system can be set with G10 L2 code.
1000 different coordinate systems are available.
Parameters:
#<_coordsys> - (RW) current coordinate system number
#<_coordsys_x..w> - (RW) current coordinate system offset
#<_coordsys_rot> - (RW) current coordinate system rotation
Offsets
G92 - Working Offset
Usage: G92 X..W - X..W = desired position
Set working offset. Ofsset is calculated so that current position becomes desired position specified
with axis words.
Parameters:
#<_workoff> - (R) true, if working offset is set
#<_workoff_x..w> - (RW) current work offset
G92.1- Working Offset Cancel
Usage: G92.1
Cancel work offset and set it to zero.
G52 - Axes Offset
Usage: G52 X..W - X..W = desired offset
Set axis offset.
Parameters:
#<_axisoff> - (R) true if axis offset is enabled
#<_axisoff_x..w> - (RW) current axis offset value
G52.1- Axes Offset Cancel
Usage: G52.1
Cancel axis offset.
G51 - Axes Scale Enable
Usage: G51 X..Z I..K - X..Z = scale center
- I..K = scale value
G51 X..Z P - X..Z = scale center
- P = scale value
G51 U..W I..K - U..W = scale center
- I..K = scale value
G51 U..W P - U..W = scale center
- P = scale value
Set axis scale.
Parameters:
#<_axisscale> - (R) true if axis scale is enabled
#<_axisscale_i..k> - (RW) current axis scale value
#<_axisscale_x..z> - (RW) current axis scale center
#<_axisscale_iuvw..kuvw> - (RW) current axis scale value
#<_axisscale_u..w> - (RW) current axis scale center
G50 - Axes Scale Cancel
Usage: G50
Cancel axis scale.
G68 - Axes Rotate Enable
Usage: G68 X..Z R - X..Z – rotation center
- R – rotation angle
Set axis rotation.
Parameters:
#<_axisrot> - (R) true if axis rotation is enabled
#<_axisrot_ang> - (RW) current axis rotation angle
#<_axisrot_x..z> - (RW) current axis rotation center
#<_axisrot_anguvw> - (RW) current axis rotation angle
#<_axisrot_u..w> - (RW) current axis rotation center
G69 - Axes Rotate Cancel
Usage: G69
Cancel axis rotation.
Parameters:
#<_axisrot> - (R) true if axis rotation is enabled
Motion
G80 - Cancel Motion
Usage: G90
Cancels all motion.
G00 - Rapid Move
Usage: G00 <X..W@^>
Rapid move machine to programmed position.
G01 - Linear Feed Move
Usage: G01 <X..W@^>
Move machine to programmed position with feed speed.
G02 - Clockwise Arc Feed Move
G03 - Counter Clockwise Arc Feed Move
Usage: G02 <X..W@^> <IJK> <P>
G03 <X..W@^> <IJK> <P>
G02 <X..W@^> <R> <P>
G03 <X..W@^> <R> <P>
Move machine to programmed position with feed speed in arc motion.
G02 - clockwise arc
G03 - counterclockwise arc
Arc can be in 3 different planes, depending of G17, G18 or G19 modal state.
XY plane, G17 state, Z rotation axis
ZX plane, G18 state, Y rotation axis
YZ plane, G19 state, X rotation axis
If motion in direction of rotation axis is specified then helical motion is generated.
Arc is specified in center format using IJK words or in radius format using R word.
Center format – arc center is defined with IJ (in XY plane), KI (in ZX plane) or JK (in YZ plane) words.
In incremental arc distance mode (G91.1) arc center is set as offset from start position.
In absolute arc distance mode (G90.1) arc center is set as distance from zero position.
Radius format – arc is defined with arc radius. This format is depreciated because it can in certain
conditions produce cuts that are out of tolerances.
Number of rotations can be set with optional P word. If, for example, P3 is set then we have two full
circles before final arc.
Example:
G17 G21 G90 G91.1 G94
F1000
G0 X0 Y0
G1 X80 Y0
G3 X100 Y20 I0 J20
G1 X100 Y80
G3 X80 Y100 I-20 J0
G1 X20 Y100
G3 X0 Y80 I0 J-20
G1 X0 Y0
G05 - Cubic Spline
Usage: G05 XYZ IJK PQR X – end position X
Y – end position Y
Z – end position Z
I – incremental offset X from start point to first control point
J – incremental offset Y from start point to first control point
K – incremental offset Z from start point to first control point
P – incremental offset X from end point to second control point
Q – incremental offset Y from end point to second control point
R – incremental offset Z from end point to second control point
Cubic B-spline move.
Spline can be in 3 different planes, depending of G17, G18 or G19 modal state.
XY plane, G17 state, XY, IJ and PQ words used
ZX plane, G18 state, ZX, KI and RP words used
YZ plane, G19 state, YZ, JK and QR words used
Example:
G17 G21 G90 G91.1 G94
F1000
G0 X0 Y0
G1 X80 Y0
G5 X100 Y20 I20 J0 P0 Q-20
G1 X100 Y80
G5 X80 Y100 P20 Q0
G1 X20 Y100
G5 X0 Y80 P0 Q20
G1 X0 Y0
G05.1- Quadratic Spline
Usage: G05.1 XYZ IJK X – end position X
Y – end position Y
Z – end position Z
I – incremental offset X from start point to control point
J – incremental offset Y from start point to control point
K – incremental offset Z from start point to control point
Quadratic B-spline move.
Spline can be in 3 different planes, depending of G17, G18 or G19 modal state.
XY plane, G17 state, XY and IJ words used
ZX plane, G18 state, ZX and KI words used
YZ plane, G19 state, YZ and JK words used
Example:
G17 G21 G90 G91.1 G94
F1000
G0 X0 Y0
G1 X80 Y0
G5.1 X100 Y20 I20 J0
G1 X100 Y80
G5.1 X80 Y100 I0 J20
G1 X20 Y100
G5.1 X0 Y80 I-20 J0
G1 X0 Y0
G05.2- NURBS Block
G05.3- NURBS Block End
Usage: G05.2 <L> <P> XYZ L (optional) – curve order (default 3)
P (optional) – control point weight (default 1)
X – control point position X
Y – control point position Y
Z – control point position Z
G05.3 end NURBS block
NURBS spline move. Block of control points is added with G05.2. At end of block use G05.3.
Spline can be in 3 different planes, depending of G17, G18 or G19 modal state.
XY plane, G17 state, XY and IJ words used
ZX plane, G18 state, ZX and KI words used
YZ plane, G19 state, YZ and JK words used
Example:
G17 G21 G90 G91.1 G94
F1000
G0 X0 Y0
G1 X80 Y0
G5.2 L3
G5.2 X100 Y0 P2
G5.2 X100 Y20 P2
G5.3
G1 X100 Y80
G5.2 L3
G5.2 X100 Y100 P2
G5.2 X80 Y100 P2
G5.3
G1 X20 Y100
G5.2 L3
G5.2 X0 Y100 P2
G5.2 X0 Y80 P2
G5.3
G1 X0 Y0
G28 - Go To Home 1 Position
Usage: G28
G28 <X..W>
Rapid move machine to Home 1 position. If intermediate move is specified them machine will rapid
move to intermediate position first and only axes specified will move to final position.
This command is often used with G91. For example: G91 G28 Z0
Parameters:
#<_home1_x..w> - (RW) home 1 position
G28.1- Set Home 1 Position
Usage: G28.1
G28.1 <X..W>
Set current or set position as Home 1 position.
Parameters:
#<_home1_x..w> - (RW) home 1 position
G30 - Go To Home 2 Position
Usage: G30
G30 <X..W>
Rapid move machine to Home 2 position. If intermediate move is specified them machine will rapid
move to intermediate position first and only axes specified will move to final position.
This command is often used with G91. For example: G91 G30 Z0
Parameters:
#<_home1_x..w> - (RW) home 1 position
G30.1- Set Home 2 Position
Usage: G30.1
G30.1 <X..W>
Set current or set position as Home 2 position.
Parameters:
#<_home2_x..w> - (RW) home 2 position
G32 - Spindle Synchronized Motion / Threading
G33 - Spindle Synchronized Motion / Threading
Usage: G32 X..W F - X..W – end position
- F – distance per revolution
G33 X..W K - X..W – end position
- K – distance per revolution
Move machine with speed synchronized to spindle speed.
G33.1- Spindle Synchronized Motion With Return / Rigid Tapping
Usage: G33.1 X..W K - X..W – end position
- K – distance per revolution
Move machine with speed synchronized to spindle speed. When machine reaches end position,
spindle reverses direction and machine moves back to start position.
G31 - Probe
G38.1- Probe
G38.2- Probe
G38.3- Probe
G38.4- Probe
G38.5- Probe
Usage: G31 <X..W>
G38.1 <X..W>
G38.2 <X..W>
G38.3 <X..W>
G38.4 <X..W>
G38.5 <X..W>
Move machine with feed speed towards position. Immediately stop when sensor is signaled and store
position to probe parameters.
G31 – axis words are position, stop on contact, error if failure
G38.1 – axis words are direction, stop on contact, error if failure
G38.2 – axis words are position, stop on contact, error if failure
G38.3 – axis words are position, stop on contact
G38.4 – axis words are position, stop on loss of contact, error if failure
G38.5 – axis words are position, stop on loss of contact
Parameters:
#<_probe> - (R) true if probe tripped
#<_probe_x..w> - (R) probe position
Settings
G10 L9 - Set Controller Position
Usage: G10 L9 <X..W>
Set controller position without move
Sends axis words to controller. Controller will set its current motor position to this value.
See also: G09
Parameters:
#<_hw_motor_x..w> - (R) motor position
G10 L3 - Transformation
Usage: G10 L3 X Y Z A B C U V W I J K - X – Transformation A0 parameter
- Y – Transformation B0 parameter
- Z – Transformation C0 parameter
- A – Transformation A1 parameter
- B – Transformation B1 parameter
- C – Transformation C1 parameter
- U – Transformation A2 parameter
- V – Transformation B2 parameter
- W – Transformation C2 parameter
- I – Transformation A3 parameter
- J – Transformation B3 parameter
- K – Transformation C3 parameter
Set transformation parameters.
If any of XYZABCUVWIJK words are missing or values are invalid transformation is reset.
Reset state is A0=1, B0=0, C0=0, A1=0, B1=1, C1=0.
See also: M55
Parameters:
#<_trans_en> - (R) true if transformations are enabled
#<_trans_a0> - (R) transformation A0 parameter
#<_trans_b0> - (R) transformation B0 parameter
#<_trans_c0> - (R) transformation C0 parameter
#<_trans_a1> - (R) transformation A1 parameter
#<_trans_b1> - (R) transformation B1 parameter
#<_trans_c1> - (R) transformation C1 parameter
#<_trans_a2> - (R) transformation A2 parameter
#<_trans_b2> - (R) transformation B2 parameter
#<_trans_c2> - (R) transformation C2 parameter
#<_trans_a3> - (R) transformation A3 parameter
#<_trans_b3> - (R) transformation B3 parameter
#<_trans_c3> - (R) transformation C3 parameter
G10 L1, L10 - Tool Table
Usage: G10 L1 P <X..W> <D or R> - P – tool number
- X..W (optional) – tool offset
- D (optional) – tool diameter or
- R (optional) – tool radius
G10 L10 P <X..W> <D or R> - P – tool number
- X..W (optional) – tool offset
- D (optional) – tool diameter or
- R (optional) – tool radius
Use L1 or L10 to set tool in tool table.
L1 will set tool offset as entered. L10 will set offset so that current working position becomes entered
value.
Parameters:
#<_current_tool> - (RW) current tool number
#<_selected_tool> - (RW) selected tool number
#<_tooloff> - (RW) true if tool offset is currently enabled
#<_tooloff_x..w> - (RW) current tool offset
#<_tool_exists> - (R) true, if tool exists in tooltable
#<_tool_dia_num> - (R) tool diameter from tooltable
#<_tool_off_x_num>..#<_tool_off_w_num> - (R) tool offset from tooltable
#<_tool_tc_x_num>..#<_tool_tc_x_num> - (R) tool change position from tooltable
G10 L2, L20 - Coordinate System
Usage: G10 L2 P <X..W> <R> - P – coordinate system number
- X..W (optional) – coordinate system offset
- R (optional) – rotation in XY plane
G10 L20 P <X..W> <R> - P – coordinate system number
- X..W (optional) – coordinate system offset
- R (optional) – rotation in XY plane
Use L2 or L20 to set coordinate system.
L2 will set coordinate system offset as entered. L20 will set offset so that current working position
becomes entered value.
Optionally coordinate system rotation in XY plane is set with R word.
1000 different coordinate systems are available.
Parameters:
#<_coordsys> - (RW) current coordinate system number
#<_coordsys_x..w> - (RW) current coordinate system offset
#<_coordsys_rot> - (RW) current coordinate system rotation
#<_coordsystem_exists> - (R) true, if coordinate system exists in table
#<_coordsystem_x_num> .. #<_coordsystem_w_num> - (R) coordinate system offset from table
#<_coordsystem_rot> - (R) coordinate system rotation from table
Other
G04 - Dwell
Usage: G04 P
Delays execution for duration P seconds.
G09 - Stop, Sync & Set Controller Position
Usage: G09
G09 <X..W>
Stop motion any synchronize controller and interpreter state. Usually it is used before reading inputs
from controller. For example:
G00 X0
G01 X100
G09 ;wait for motion to stop before reading _hw_input parameter.
(print,Value of input is #<_hw_input>)
If axis words are present then controller will set its current motor position to this value.
For example:
G09 X10 Y20 ;controller motor position is set to X10 Y20
G53 - Machine Coordinate System
Usage: G53
Use G53 in same line with motion code to execute motion in machine coordinates.
Cycles
G75 - Lathe: Pattern Repeating (Finishing) TODO
G76 - Lathe: Threading
G77 - Lathe: X Roughing TODO
G78 - Lathe: Z Roughing TODO
G79 - Lathe: Grooving TODO
G73 - Cycle: Drill, Speed Peck, Dwell
G74 - Cycle: Tapping Left
G81 - Cycle: Drill
G82 - Cycle: Drill, Dwell
G83 - Cycle: Drill, Peck, Dwell
G84 - Cycle: Tapping Right
G85 - Cycle: Boring, Feed Out
G86 - Cycle: Boring, Spindle Stop, Rapid Out, Spindle Start
G87 - Cycle: Boring, Spindle Reverse, Rapid Out, Spindle Reverse
G88 - Cycle: Boring, Spindle Stop, Feed Out, Spindle Start
G89 - Cycle: Boring, Spindle Reverse, Feed Out, Spindle Reverse
Lathe Cacles
G75 - Lathe: Pattern Repeating (Finishing) TODO
G76 - Lathe: Threading
Usage: G76 Z P <X> I J K
<R> <Q> <H>
<E> <A> <L> - Z – final position of threads
- P – thread pitch in distance per revolution
- X – final X position
- I – thread peak offset from the drive line
- J – positive value specifying the initial cut depth
- K – positive value specifying the full thread depth
- R – depth degression
- Q – compound slide angle
- H – number of spring passes
- E – distance along the drive line used for the taper
- A – angle of taper
- L – which ends of the thread get the taper
Negative I values are external threads, and positive I values are internal threads.
R1.0 selects constant depth on successive threading passes. R2.0 selects constant area. Values
between 1.0 and 2.0 select decreasing depth but increasing area. Values above 2.0 select
decreasing area. Beware that unnecessarily high degression values will cause a large number of
passes to be used.
The compound slide angle is the angle (in degrees) describing to what extent successive passes
should be offset along the drive line. This is used to cause one side of the tool to remove more
material than the other. A positive Q value causes the leading edge of the tool to cut more heavily.
Typical values are 29, 29.5 or 30.
Spring passes are additional passes at full thread depth. If no additional passes are desired, program
H0.
The angle of the taper will be so the last pass tapers to the thread crest over the distance specified
with E. E10 will give a taper for the first/last 10 length units along the thread. For a 45 degree taper
program E the same as K. Alternatively you can use A to set angle of the taper.
L specifies which ends of the thread get the taper. Program L0 for no taper (the default), L1 for entry
taper, L2 for exit taper, or L3 for both entry and exit tapers. Entry tapers will pause at the drive line to
synchronize with the index pulse then move at the feed rate in to the beginning of the taper. No entry
taper and the tool will rapid to the cut depth then synchronize and begin the cut.
G77 - Lathe: X Roughing TODO
G78 - Lathe: Z Roughing TODO
G79 - Lathe: Grooving TODO
Drill Cycles
G73 - Cycle: Drill, Speed Peck, Dwell
Usage: G73 X Y Z R <P> Q <L> - X, Y – coordinate of drill center
- Z – drill position
- R – retract plane
- P – dwell time
- Q – delta increment
- H – initial delta
- D – chip break distance (default 0.2)
- E – chip clear
- L – repetition
Example 1:
G00 Z15
G98 G73 X0 Y0 R5 Z-3 Q1
Pseudocode:
G00 Z15
G00 X0 Y0
G00 H2 E5 (initial - rapid down to R5)
G01 H2 E4 (drill - feed down for Q1)
G00 H2 E4.2 (chip break - rapid up for 0.2)
G01 H2 E3 (drill - feed down for Q1)
G00 H2 E3.2 (chip break - rapid up for 0.2)
G01 H2 E2 (drill - feed down for Q1)
G00 H2 E2.2 (chip break - rapid up for 0.2)
G01 H2 E1 (drill - feed down for Q1)
G00 H2 E1.2 (chip break - rapid up for 0.2)
G01 H2 E0 (drill - feed down for Q1)
G00 H2 E0.2 (chip break - rapid up for 0.2)
G01 H2 E-1 (drill - feed down for Q1)
G00 H2 E-0.8 (chip break - rapid up for 0.2)
G01 H2 E-2 (drill - feed down for Q1)
G00 H2 E-1.8 (chip break - rapid up for 0.2)
G01 H2 E-3 (drill - feed down to Z-3)
G00 H2 E15 (final - rapid up to Z level Z15)
Example 2:
G00 Z15
G98 G73 X0 Y0 R5 Z-4 Q1 H1.5 D0.1 E3
Pseudocode:
G00 Z15
G00 X0 Y0
G00 H2 E5 (initial - rapid down to R5)
G01 H2 E2.5 (initial drill - feed down for Q1+H1.5)
G00 H2 E2.6 (chip break - rapid up for D0.1)
G01 H2 E1.5 (drill - feed down for Q1)
G00 H2 E1.6 (chip break - rapid up for D0.1)
G01 H2 E0.5 (drill - feed down for Q1)
G00 H2 E0.6 (chip break - rapid up for D0.1)
G01 H2 E-0.5 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E-0.4 (clear - rapid back down -D0.1)
G01 H2 E-1.5 (drill - feed down for Q1)
G00 H2 E-1.4 (chip break - rapid up for D0.1)
G01 H2 E-2.5 (drill - feed down for Q1)
G00 H2 E-2.4 (chip break - rapid up for D0.1)
G01 H2 E-3.5 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E-3.4 (clear - rapid back down -D0.1)
G01 H2 E-4 (drill - feed down to Z-4)
G00 H2 E15 (final - rapid up to Z level Z15)
G74 - Cycle: Tapping Left
Usage: G74 X Y Z R K <L> - X, Y – coordinate of drill center
- Z – drill position
- R – retract plane
- K – thread pitch
- L – repetition
G81 - Cycle - Drill
Usage: G81 X Y Z R <L> - X, Y – coordinate of drill center
- Z – end drill position
- R – retract plane
- L – repetition
Example 1:
G00 Z15
G99 G81 X0 Y0 R5 Z-3
Pseudocode:
G00 Z15
G00 X0 Y0
G00 H2 E5 (initial - rapid down to R5)
G01 H2 E-3 (drill - feed down to Z-3)
G00 H2 E5 (final - rapid up to R plane R5)
G82 - Cycle: Drill, Dwell
Usage: G82 X Y Z R <P> <L> - X, Y – coordinate of drill center
- Z – drill position
- R – retract plane
- P – dwell time
- L – repetition
Example 1:
G00 Z15
G99 G82 X0 Y0 R5 Z-3 P0.5
Pseudocode:
G00 Z15
G00 X0 Y0
G00 H2 E5 (initial - rapid down to R5)
G01 H2 E-3 (drill - feed down to Z-3)
G04 P0.5 (dwell for 0.5s)
G00 H2 E5 (final - rapid up to R plane R5)
G83 - Cycle: Drill, Peck, Dwell
Usage: G83 X Y Z R P Q <L> - X, Y – coordinate of drill center
- Z – drill position
- R – retract plane
- P – dwell time
- Q – delta increment
- H – initial delta
- D – chip break distance (default 0.2)
- L – repetition
Example 1:
G00 Z15
G98 G83 X0 Y0 R5 Z-3 Q1
Pseudocode:
G00 Z15
G00 X0 Y0
G00 H2 E5 (initial - rapid down to R5)
G01 H2 E4 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E4.2 (clear - rapid back down -0.2)
G01 H2 E3 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E3.2 (clear - rapid back down -0.2)
G01 H2 E2 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E2.2 (clear - rapid back down -0.2)
G01 H2 E1 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E1.2 (clear - rapid back down -0.2)
G01 H2 E0 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E0.2 (clear - rapid back down -0.2)
G01 H2 E-1 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E-0.8 (clear - rapid back down -0.2)
G01 H2 E-2 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E-1.8 (clear - rapid back down -0.2)
G01 H2 E-3 (drill - feed down to Z-3)
G00 H2 E15 (final - rapid up to Z level Z15)
Example 2:
G00 Z15
G98 G83 X0 Y0 R5 Z-3 Q1 H1.5 D0.1
Pseudocode:
G00 Z15
G00 X0 Y0
G00 H2 E5 (initial - rapid down to R5)
G01 H2 E2.5 (initial drill - feed down for Q1+H1.5)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E2.6 (clear - rapid back down -D0.1)
G01 H2 E1.5 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E1.6 (clear - rapid back down -D0.1)
G01 H2 E0.5 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E0.6 (clear - rapid back down -D0.1)
G01 H2 E-0.5 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E-0.4 (clear - rapid back down -D0.1)
G01 H2 E-1.5 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E-1.4 (clear - rapid back down -D0.1)
G01 H2 E-2.5 (drill - feed down for Q1)
G00 H2 E5 (clear - rapid up to R5)
G00 H2 E-2.4 (clear - rapid back down -D0.1)
G01 H2 E-3 (drill - feed down to Z-3)
G00 H2 E15 (final - rapid up to Z level Z15)
G84 - Cycle: Tapping Right
Usage: G84 X Y Z R K <L> - X, Y – coordinate of drill center
- Z – drill position
- R – retract plane
- K – thread pitch
- L – repetition
G85 - Cycle: Boring, Feed Out
Usage: G85 X Y Z R <P> <L> - X, Y – coordinate of boring center
- Z – bore position
- R – retract plane
- P – dwell time
- L – repetition
G86 - Cycle: Boring, Spindle Stop, Rapid Out, Spindle Start
Usage: G86 X Y Z R <P> <L> - X, Y – coordinate of boring center
- Z – bore position
- R – retract plane
- P – dwell time
- L – repetition
G87 - Cycle: Boring, Spindle Reverse, Rapid Out, Spindle Reverse
Usage: G87 X Y Z R <P> <L> - X, Y – coordinate of boring center
- Z – bore position
- R – retract plane
- P – dwell time
- L – repetition
G88 - Cycle: Boring, Spindle Stop, Feed Out, Spindle Start
Usage: G88 X Y Z R <P> <L> - X, Y – coordinate of boring center
- Z – bore position
- R – retract plane
- P – dwell time
- L – repetition
G89 - Cycle: Boring, Spindle Reverse, Feed Out, Spindle Reverse
Usage: G89 X Y Z R <P> <L> - X, Y – coordinate of boring center
- Z – bore position
- R – retract plane
- P – dwell time
- L – repetition
Other Cycles
G12 - Clockwise Circle
G13 - Counter Clockwise Circle
Usage: G12 I J ... I – circle lead-in direction X
J – circle lead-in direction Y
G12 W <A> ... W – circle width (diameter)
A – lead-in angle
… <Q> <P> <D> <H> ... Q (optional) – inner circle width (diameter)
P (optional) – stepover
D (optional) – tool diameter
H (optional) – number of finish passes
… <X> <Y> … X (optional) – circle center X
Y (optional) – circle center Y
… <Z> <R> ... Z (optional) – pocket depth
R (optional) – retract plane
K (optional) – stepover Z
E (optional) – plunge speed
Cut a circle with current position as circle center.
G12 – circle is in clockwise direction.
G13 – circle is in counter clockwise direction.
W word defines circle/spiral width (diameter). A word defines starting angle. Other option is using I
word and J word to define lead-in direction and radius. Radius can be calculated as “sqrt(I*I + J*J)”.
If optional P word is used then series of circles/spirals will be generated with P distance between
them. If optional Q word is used then inner circle will have diameter Q.
D word is used for tool diameter compensation.
H word defines number of finish passes.
X and Y words define circle/spiral center. Z word defines end depth, K is used to set stepover in Z
(plunge) direction and E word defines plunge feed speed.
R word is used to define retract plane.
This code is only valid in XY plane and with no tool compensation.
Example 1:
G00 Z15
G98 G12 X0 Y0 W50 A45 P5 Q30 D0 R5 Z-10 K1 E100 H0
Example 2:
G98 G12 X0 Y0 W50 A0 P2.5 Q20 D0
Example 3:
G98 G12 X0 Y0 W50 A0 P2.5 Q20 D0 H-1
M-Codes
Program
M0 - Pause
Usage: M0
Pause a running program.
M1 - Optional pause
Usage: M1
Pause a running program if „Optional Pause“ is enabled.
M2 - Program End
M30 - Program End
Usage: M2
M30
End the program. Code after M2 will not be executed. Wrapping G-Code between % does the same
thing.
Customization is possible by modifying M2.gcode script file (for example, to turn spindle off and
restore modal state at end of g-code execution).
Spindle
M3 - Spindle CW
Usage: M3
Start spindle clockwise with S speed. Customization is possible by modifying M3.gcode script file.
Parameters:
#<_spindle> - (R) spindle state
#<_spindle_on> - (R) true if spindle is running
#<_spindle_cw> - (R) true if spindle is running clockwise
#<_spindle_ccw> - (R) true if spindle is running counterclockwise
M4 - Spindle CCW
Usage: M4
Start spindle counterclockwise with S speed. Customization is possible by modifying M4.gcode script
file.
Parameters:
#<_spindle> - (R) spindle state
#<_spindle_on> - (R) true if spindle is running
#<_spindle_cw> - (R) true if spindle is running clockwise
#<_spindle_ccw> - (R) true if spindle is running counterclockwise
M5 - Spindle Stop
Usage: M5
Stop spindle. Customization is possible by modifying M5.gcode script file.
Parameters:
#<_spindle> - (R) spindle state
#<_spindle_on> - (R) true if spindle is running
#<_spindle_cw> - (R) true if spindle is running clockwise
#<_spindle_ccw> - (R) true if spindle is running counterclockwise
Tools
M6 - Tool Change
Usage: M6
Change tool with change procedure. Tool change will set tool selected with T as current tool. Tool
change customization is possible by modifying M6.gcode script file.
Parameters:
#<_selected_tool> - (RW) selected tool number
#<_current_tool> - (RW) current tool number
M61 - Tool Select
Usage: M61 Q - Q = tool number
Select current tool number without tool change procedure.
Parameters:
#<_selected_tool> - (RW) selected tool number
#<_current_tool> - (RW) current tool number
Coolant
M7 - Mist On
Usage: M7
Turn mist output On.
Parameters:
#<_mist> - (R) mist state
#<_mist_on> - (R) true if mist is on
M17 - Mist Off/On
Usage: M17
M17 P - P = zero for Off, otherwise On
Turn mist output Off or On.
Parameters:
#<_mist> - (R) mist state
#<_mist_on> - (R) true if mist is on
M8 - Flood On
Usage: M8
Turn flood output On.
Parameters:
#<_flood> - (R) flood state
#<_flood_on> - (R) true if flood is on
M18 - Flood Off/On
Usage: M18
M18 P - P = zero for Off, otherwise On
Turn flood output Off or On.
Parameters:
#<_flood> - (R) flood state
#<_flood_on> - (R) true if flood is on
M9 - Mist & Flood Off
Usage: M9
Turn mist and flood output Off
Parameters:
#<_mist> - (R) mist state
#<_mist_on> - (R) true if mist is on
#<_flood> - (R) flood state
#<_flood_on> - (R) true if flood is on
Overrides and options
M48 - Enable Override Feed & Spindle
Usage: M48
Enables feed and spindle override.
M49 - Disable Override Feed & Spindle
Usage: M49
Disables feed and spindle override.
M50 - Enable/Disable Override Feed
Usage: M50 P - P = zero for Off, otherwise On
Enables or disables feed override.
M51 - Enable/Disable Override Spindle
Usage: M51 P - P = zero for Off, otherwise On
Enables or disables spindle override.
M53 - Enable/Disable Pause
Usage: M53 P - P = zero for Off, otherwise On
Enables or disables program pause command.
M54 - Enable/Disable THC
Usage: M54 P <Q> <R> - P = zero for Off, otherwise On
- Q = speed limit
- R = constant speed
If speed limit is set then THC will not move if machine speed is below set speed.
If constant speed is enabled then THC will not move is machine is accelerating or decelerating.
Example:
M54 P1 Q1000 R1 – enable THC for constant speeds (no acceleration) above 1000.
M55 - Enable/Disable Transformations
Usage: M55 P - P = zero for Off, otherwise On
Enable or disable transformations.
See also: G10 L3
M56 - Enable/Disable Warp
Usage: M56 P - P = zero for Off, otherwise On
Enable or disable warp.
M57 - Enable/Disable Swap
Usage: M57 P - P = zero for Off, otherwise On
Enable or disable axis swapping.
Inputs & Outputs
M10 - Enable/Disable motor enable signal
Usage: M10 P - P = zero for Off, otherwise On
Enables or disables motor enable signal.
M11 - Enable/Disable limits
Usage: M11 P - P = zero for Off, otherwise On
Enables or disables limits.
M59 - Wait For Input
Usage: M59 P - P = pin number (1-8)
Waits for input pin.
Parameters:
#<_hw_input> - (R) output signals state
M62 - Output
Usage: M62 Q - Q = value for all eight outputs
M62 P Q - P = output number
- Q = zero for Off, otherwise On
Set signals on output connector.
Parameters:
#<_output> - (R) output signals state
#<_hw_output> - (R) actual output signals on controller
M63 - Output PWM
Usage: M63 P Q <E> - P = output number
- Q = frequency
- E (optional) = duty cycle (0% - 100%)
M63 P R - P = output number
- R = RC servo motor position (0% - 100%)
Set PWM signal on output connector. It is possible to set frequency, frequency with duty cycle of RC
servo motor position.
Parameters:
#<_hw_output> - (R) actual output signals on controller
#<_hw_output_freq1> - (R) actual PWM frequency on first PWM output
#<_hw_output_duty1> - (R) actual PWM duty cycle on first PWM output
#<_hw_output_freq2> - (R) actual PWM frequency on second PWM output
#<_hw_output_duty2> - (R) actual PWM duty cycle on second PWM output
#<_hw_output_freq3> - (R) actual PWM frequency on third PWM output
#<_hw_output_duty3> - (R) actual PWM duty cycle on third PWM output
M64 - Output ExtOut
Usage: M64 H Q <L> - H = ExtOut SSEL value (1 or 2)
- Q = data send to ExtOut
- L (optional) = number of bytes send to ExtOut
M64 H Q E <R> <D> <L> - H = ExtOut SSEL value (1 or 2)
- Q = parameter number of first data location
- E = data count
- R (optional) = parameter number for returned data
- D (optional) = returned data count
- L (optional) = number of bytes send to ExtOut
M64 H P Q <L> - H = ExtOut SSEL value (1 or 2)
- P = bit position
- Q = zero for Off, otherwise On
- L (optional) = number of bytes send to ExtOut
M64 H L0 - H = ExtOut SSEL value (1 or 2)
- L = zero bytes send to ExtOut
Send data to OutExt.
Parameters:
#<_hw_extout1> - (R) actual ExtOut1 value on controller
#<_hw_extout2> - (R) actual ExtOut2 value on controller
M65 - Output TX
Usage: M65 Q - Q = data send to TX
M65 Q E - Q = parameter number of first data location
- E = data count
Send data to TX.
M66 - Output I2C
Usage: M66 H Q - H = I2C address in 8bit mode
- Q = data send to I2C
M66 H Q E <R> <D> - H = I2C address in 8bit mode
- Q = parameter number of first data location
- E = data count
- R (optional) = parameter number for returned data
- D (optional) = returned data count
Send and receive data from I2C.
Modal State
M70 - Modal State Store
Usage: M70
Store current modal state. Stored modal state can be restored with M72. Modal state is stored only in
current call level. Storing/restoring modal state between call levels is not possible.
Stored modal state values are:
- Units (G20/G21)
- Plane (G17/G18/G19)
- DistanceMode (G90/G91)
- DistanceModeIJK (G90.1/G91.1)
- DistanceModeABC (G90.2/G91.2)
- LatheMode (G7/G8)
- CycleReturnMode (G98/G99)
- PolarMode (G15/G16)
- ToolOffset (G43/G49)
- ToolCompensation (G40/G41/G42)
- Coordinate System (G54..G59)
- BlendMode (G61/G64)
- FeedMode (G93/G94/G95)
- FeedSpeed (F)
- SpindleMode (G96/G97)
- SpindleSpeed(S)
- MotorsEnable (M10)
- LimitsEnable (M11)
- Overrides & Options (M48/M49/M50/51/M53/M54/M55/M56/M57)
M71 - Modal State Invalidate
Usage: M71
Invalidates stored modal state. Modal state can no longer be restored.
M72 - Modal State Restore
Usage: M72
Restore modal state stored with M70 or M73 in current call level.
M73 - Modal State Store & Autorestore
Usage: M73
Store current modal state and automatically restore on program or subroutine end. If stored state was
invalidated with M71 it will not be restored.
Other Codes
F - Feed Speed
Usage: Fn - F = feed speed
Set feed speed. Value depends on feed mode which can be „Units Per Minute“, „Units Per
Revolution“ or „Inverse Time“. In inverse time F must be specified an every motion line.
Parameters:
#<_feedspeed> - (R) feed speed value dependant on current feed mode
#<_feedspeed_upm> - (R) feed speed value in units per minute
#<_feedspeed_upr> - (R) feed speed value in units per minute per revolution
S - Spindle Speed
Usage: Sn - S = spindle speed
Set spindle speed. Value depends on spindle mode which can be „Revolution Per Minute“ or
„Constant Surface Speed“.
Parameters:
#<_spindlespeed> - (R) spindle speed value dependent on current spindle mode
#<_spindlespeed_rpm> - (R) spindle speed value in units per minute mode
#<_spindlespeed_css> - (R) spindle speed value in constant surface speed mode
T - Select Tool
Usage: Tn - T = tool number
Select tool number that will be used in next tool change (M6)
Parameters:
#<_selected_tool> - (RW) selected tool number
#<_current_tool> - (RW) current tool number
O-Words
sub..endsub subroutine block
Osub - Begin subroutine
Oendsub - End subroutine
Oreturn - Exit subroutine
Ocall - Call subroutine
do..while loop block
Odo - Begin block
Owhile - End block [condition evaluation]
Obreak - Exit block immediately
Ocontinue - Skip to next condition evaluation
while..endwhile loop block
Owhile - Begin block [condition evaluation]
Oendwhile - End block
Obreak - Exit block immediately
Ocontinue - Skip to next condition evaluation
repeat..endrepeat loop block
Orepeat - Begin block [count]
Oendrepeat - End block
if..endif condition block
Oif - Begin block [condition evaluation]
Oendif - End block
Oelseif - Else [condition evaluation]
Oelse - Else
Comments
CLEAR - clears output window
PRINT - prints message to output window
LOG - writes message to log
LOGCREATE - creates new log file
LOGOPEN - opens existing log file
LOGCLOSE - closes log file
POINTSCLEAR - clears points collection
POINTSSAVE - saves points collection to file
POINTSLOAD - loads points collection from file
POINT - adds point to collection
MSG - shows dialog with message
STATUS - shows message in status bar
PY - executes python script
PYTHR - executes python script
NAME - sets program name
DESC - sets program description
DLGNAME - sets dialog name
DLG - sets dialog property
ARRAY - creates parameters from data
ARCHR - creates parameters from characters
SW_RESET - stopwatch reset
SW_PRINT - stopwatch print
BLOCK_BEGIN - begin block
BLOCK_END - end block
COLOR=0xRRGGBB- g-code color
Operators
+ - Addition
- - Subtraction
* - Multiplication
/ - Division
MOD - Modulus
DIV - Integer Division
** - Power
EQ - Relational equality
NQ - Relational inequality
GT - Relational strictly greater than
LT - Relational strictly less than
GE - Relational greater than or equal to
LE - Relational less than or equal to
AND - Logical AND
OR - Logical non-exclusive OR
XOR - Logical exclusive OR
Operator precedence
1. **
2. * / MOD DIV
3. + -
4. GT GE LT LE
5. EQ NE
6. AND XOR OR
Functions
Exists - Checks is value exists
NotExists - Checks is value does not exists
Nop - No operation (returns zero)
Abs - Absolute value
Sqrt - Square Root
Sqr - Square
Sin - Sine
Cos - Cosine
Tan - Tangent
ASin - Inverse sine
ACos - Inverse cosine
ATan - Inverse tangent
ATan2 - Four quadrant inverse tangent
Pi - Pi constant value
Rad2Deg - Radians to degrees
Deg2Rad - Degrees to radians
E - e constant value
Pow - Power
Exp - e raised to the given power
Exp10 - 10 raised to the given power
Exp2 - 2 raised to the given power
Log - Base e logarithm
Log10 - Base 10 logarithm
Log2 - Base 2 logarithm
Rand - random value
Inc - Increases number
Dec - Decreases number
Min - Minimum
Max - Maximum
DateTime - Current time (seconds since 1970)
Year - Year from DateTime value
Month - Month from DateTime value
Day - Day from DateTime value
Hour - Hour from DateTime value
Minute - Minute from DateTime value
Second - Second from DateTime value
MilliSec - Millisecond from DateTime value
Round - Round to nearest integer
Floor - Round down to integer
Ceil - Round up to integer
Trunc - Truncate to integer
And - Bitwise AND
Or - Bitwise non-exclusive OR
Xor - Bitwise exclusive OR
Not - Bitwise complement
Shl - Bitwise shift left
Shr - Bitwise shift right
LAnd - Logic AND
LOr - Logic non-exclusive OR
LXor - Logic exclusive OR
LNot - Logic complement
Hex - Converts string to number
Bin - Converts string to number
ToWork - Converts machine coordinate to work
ToMachine - Converts work coordinate to machine
G53 - Machine Coordinate System
List of G-Codes
G54 - Coordinate System 1
G00 - Rapid Move G54.1 - Coordinate System P
G01 - Linear Feed Move G55 - Coordinate System 2
G02 - Clockwise Arc Feed Move G56 - Coordinate System 3
G03 - Counter Clockwise Arc Feed Move G57 - Coordinate System 4
G58 - Coordinate System 5
G04 - Dwell G59 - Coordinate System 6 (or P)
G59.1 - Coordinate System 7
G05 - Cubic Spline G59.2 - Coordinate System 8
G05.1 - Quadratic Spline G59.3 - Coordinate System 9
G05.2 - NURBS Block
G05.3 - NURBS Block End G61 - Blend Cancel
G64 - Blend Enable
G07 - Lathe Mode - Diameter
G08 - Lathe Mode - Radius G65 - Call Macro
G09 - Stop, Sync & Set Position G68 - Axes Rotate Enable
G69 - Axes Rotate Cancel
G10 - Settings
G70 - Inch Units
G12 - Clockwise Circle G71 - Millimeter Units
G13 - Counter Clockwise Circle
G73 - Cycle: Drill, Speed Peck, Dwell
G15 - Polar Coordinate Cancel G74 - Cycle: Tapping Left
G16 - Polar Coordinate Enable G75 - Lathe: Pattern Repeating (Finishing) TODO
G76 - Lathe: Threading
G17 - XY Plane G77 - Lathe: X Roughing TODO
G18 - ZX Plane G78 - Lathe: Z Roughing TODO
G19 - YZ Plane G79 - Lathe: Grooving TODO
G20 - Inch Units G80 - Cancel Motion
G21 - Millimeter Units
G81 - Cycle: Drill
G28 - Go To Home G82 - Cycle: Drill, Dwell
G28.1 - Set Home G83 - Cycle: Drill, Peck, Dwell
G30 - Go To Home G84 - Cycle: Tapping Right
G30.1 - Set Home G85 - Cycle: Boring, Feed Out
G86 - Cycle: Boring, Sp Stop, Rpd Out, Sp Strt
G32 - Spindle Synch Motion G87 - Cycle: Boring, Sp Rev, Rpd Out, Sp Rev
G33 - Spindle Synch Motion G88 - Cycle: Boring, Sp Stop, Fd Out, Sp Start
G33.1 - Spindle Synch Motion With Return G89 - Cycle: Boring, Sp Rev, Fd Out, Sp Rev
G31 - Probe G90 - Distance Mode - Absolute
G38.1 - Probe G90.1 - Distance Mode - IJK Absolute
G38.2 - Probe G90.2 - Distance Mode - ABC Absolute
G38.3 - Probe G91 - Distance Mode – Incremental
G38.4 - Probe G91.1 - Distance Mode - IJK Incremental
G38.5 - Probe G91.2 - Distance Mode - ABC Incremental
G40 - Tool Compensation Cancel G92 - Working Offset
G41 - Tool Compensation Left G92.1 - Working Offset Cancel
G41.1 - Tool Compensation Dynamic Left
G42 - Tool Compensation Right G93 - Feed Mode - Inverse Time
G42.1 - Tool Compensation Dynamic Right G94 - Feed Mode - Units per Minute
G95 - Feed Mode - Units per Revolution
G43 - Tool Offset+ Enable
G43.1 - Tool Offset+ Enable G96 - Spindle Mode - CSS
G44 - Tool Offset- Enable G97 - Spindle Mode - RPM
G44.1 - Tool Offset- Enable
G49 - Tool Offset Cancel G98 - Cycle Return - Initial Z Point
G99 - Cycle Return - R Point
G50 - Axes Scale Cancel
G51 - Axes Scale Enable
G52 - Axes Offset
G52.1 - Axes Offset Cancel
List of M-Codes
M0 - Pause
M1 - Pause (optional)
M2 - Program End
M30 - Program End
M3 - Spindle CW
M4 - Spindle CCW
M5 - Spindle Stop
M6 - Tool Change
M61 - Tool Select
M7 - Mist On
M17 - Mist Off/On
M8 - Flood On
M18 - Flood Off/On
M9 - Mist & Flood Off
M48 - Enable Override Feed & Spindle
M49 - Disable Override Feed & Spindle
M50 - Enable/Disable Override Feed
M51 - Enable/Disable Override Spindle
M53 - Enable/Disable Pause
M54 - Enable/Disable THC
M55 - Enable/Disable Transformations
M56 - Enable/Disable Warp
M57 - Enable/Disable Swap
M59 - Wait For Input
M62 - Output
M63 - Output PWM
M64 - Output ExtOut
M65 - Output TX
M66 - Output I2C
M70 - Modal State Store
M71 - Modal State Invalidate
M72 - Modal State Restore
M73 - Modal State Store & Autorestore
M82 - Distance Mode - ABC Absolute
M83 - Distance Mode - ABC Incremental
M98 - Call Subprogram
M99 - Return From Subprogram
_spindlespeed_css (R)
List of parameters
Tools:
Work position: _selected_tool (RW)
_x (R) _current_tool (RW)
_y (R)
_z (R) _tooloff (RW)
_a (R) _tooloff_x (RW)
_b (R) _tooloff_y (RW)
_c (R) _tooloff_z (RW)
_u (R) _tooloff_a (RW)
_v (R) _tooloff_b (RW)
_w (R) _tooloff_c (RW)
_work_axis (R) _tooloff_u (RW)
_tooloff_v (RW)
Machine position: _tooloff_w (RW)
_machine_x (R) _tooloff_axis (RW)
_machine_y (R)
_machine_z (R) _toolcomp (R)
_machine_a (R) _toolcomp_dia (R)
_machine_b (R) _toolcomp_orient (R)
_machine_c (R)
_machine_u (R) Tool Table:
_machine_v (R) _tool_exists (R)
_machine_w (R) _tool_name (R)
_machine_axis (R) _tool_off_x_num (R)
_tool_off_y_num (R)
Probe position: _tool_off_z_num (R)
_probe (R) _tool_off_a_num (R)
_probe_x (R) _tool_off_b_num (R)
_probe_y (R) _tool_off_c_num (R)
_probe_z (R) _tool_off_u_num (R)
_probe_a (R) _tool_off_v_num (R)
_probe_b (R) _tool_off_w_num (R)
_probe_c (R)
_probe_u (R) _tool_dia_num (R)
_probe_v (R) _tool_front_num (R)
_probe_w (R) _tool_back_num (R)
_probe_axis (R) _tool_orient_num (R)
THC: _tool_tc_x_num (R)
_thc (R) _tool_tc_y_num (R)
_thcen (R) _tool_tc_z_num (R)
_tool_tc_a_num (R)
Mode: _tool_tc_b_num (R)
_motion (R) _tool_tc_c_num (R)
_units (RW) _tool_tc_u_num (R)
_plane (RW) _tool_tc_v_num (R)
_distancemode (RW) _tool_tc_w_num (R)
_distancemode_ijk (RW)
_distancemode_abc (RW) _tool_so_x_num (R)
_polarmode (RW) _tool_so_y_num (R)
_cyclereturnmode (RW) _tool_so_z_num (R)
_lathemode (RW)
_tool_par1_num (R)
Blend: _tool_par2_num (R)
_blendmode (R) _tool_par3_num (R)
_blend_tol (R) _tool_par4_num (R)
_tool_par5_num (R)
Feed: _tool_par6_num (R)
_feedmode (R)
_feedspeed (R) _tool_skipmeasure_num (R)
_feedspeed_upm (R) _tool_skipchange_num (R)
_feedspeed_upr (R)
Offset:
Spindle: _workoff (R)
_spindlemode (R) _workoff_x (RW)
_spindlespeed (R) _workoff_y (RW)
_spindlespeed_rpm (R) _workoff_z (RW)
_workoff_a (RW)
_workoff_b (RW)
_workoff_c (RW) CameraOffset:
_workoff_u (RW) _cam_offset_x (R)
_workoff_v (RW) _cam_offset_y (R)
_workoff_w (RW)
_workoff_axis Home:
_home1_x (RW)
_axisoff (R) _home1_y (RW)
_axisoff_x (RW) _home1_z (RW)
_axisoff_y (RW) _home1_a (RW)
_axisoff_z (RW) _home1_b (RW)
_axisoff_a (RW) _home1_c (RW)
_axisoff_b (RW) _home1_u (RW)
_axisoff_c (RW) _home1_v (RW)
_axisoff_u (RW) _home1_w (RW)
_axisoff_v (RW)
_axisoff_w (RW) _home2_x (RW)
_axisoff_axis (RW) _home2_y (RW)
_home2_z (RW)
_axisscale (R) _home2_a (RW)
_axisscale_i (RW) _home2_b (RW)
_axisscale_j (RW) _home2_c (RW)
_axisscale_k (RW) _home2_u (RW)
_axisscale_iuvw (RW) _home2_v (RW)
_axisscale_juvw (RW) _home2_w (RW)
_axisscale_kuvw (RW)
_axisscale_x (RW) Transformation:
_axisscale_y (RW) _trans_en (R)
_axisscale_z (RW) _trans_a0 (R)
_axisscale_u (RW) _trans_b0 (R)
_axisscale_v (RW) _trans_c0 (R)
_axisscale_w (RW) _trans_a1 (R)
_trans_b1 (R)
_axisrot (R) _trans_c1 (R)
_axisrot_ang (R) _trans_a2 (R)
_axisrot_anguvw (R) _trans_b2 (R)
_axisrot_x (R) _trans_c2 (R)
_axisrot_y (R) _trans_a3 (R)
_axisrot_z (R) _trans_b3 (R)
_axisrot_u (R) _trans_c3 (R)
_axisrot_v (R)
_axisrot_w (R) _trans_shift_x (R)
_trans_shift_y (R)
CoordinateSystem: _trans_shift_z (R)
_coordsys_num (R) _trans_rot_x (R)
_coordsys_x (RW) _trans_rot_y (R)
_coordsys_y (RW) _trans_rot_z (R)
_coordsys_z (RW) _trans_scale_x (R)
_coordsys_a (RW) _trans_scale_y (R)
_coordsys_b (RW) _trans_scale_z (R)
_coordsys_c (RW)
_coordsys_u (RW) Warp:
_coordsys_v (RW) _warp_en (R)
_coordsys_w (RW) _warp_count (R)
_coordsys_axis (RW)
_coordsys_rot (RW) PointList:
_pointcnt (R)
CoordinateSystem Table: _point_x_num (R)
_coordsystem_exists (R) _point_y_num (R)
_coordsystem_x_num (R) _point_z_num (R)
_coordsystem_y_num (R) _point_a_num (R)
_coordsystem_z_num (R) _point_b_num (R)
_coordsystem_a_num (R) _point_c_num (R)
_coordsystem_b_num (R) _point_u_num (R)
_coordsystem_c_num (R) _point_v_num (R)
_coordsystem_u_num (R) _point_w_num (R)
_coordsystem_v_num (R)
_coordsystem_w_num (R) Output:
_coordsystem_rot_num (R) _output (R)
_motoracc_u (RW)
Spindle & Coolant: _motoracc_v (RW)
_spindle (R) _motoracc_w (RW)
_spindle_on (R) _motoracc_axis (RW)
_spindle_cw (R)
_spindle_ccw (R) _motordec_x (RW)
_mist (R) _motordec_y (RW)
_mist_on (R) _motordec_z (RW)
_flood (R) _motordec_a (RW)
_flood_on (R) _motordec_b (RW)
_motordec_c (RW)
_motordec_u (RW)
Settings: _motordec_v (RW)
_set_units (RW) _motordec_w (RW)
_motordec_axis (RW)
Settings – Motors: Settings – Motors/Limits:
_motoroutputorder_1 (RW) _motorlimit_xn (RW)
_motoroutputorder_2 (RW) _motorlimit_yn (RW)
_motoroutputorder_3 (RW) _motorlimit_zn (RW)
_motoroutputorder_4 (RW) _motorlimit_an (RW)
_motoroutputorder_5 (RW) _motorlimit_bn (RW)
_motoroutputorder_6 (RW) _motorlimit_cn (RW)
_motoroutputorder_7 (RW) _motorlimit_un (RW)
_motoroutputorder_8 (RW) _motorlimit_vn (RW)
_motoroutputorder_9 (RW) _motorlimit_wn (RW)
_motoroutputorder_axis (RW)
_motorlimit_xp (RW)
_motoroutputreverse_1 (RW) _motorlimit_yp (RW)
_motoroutputreverse_2 (RW) _motorlimit_zp (RW)
_motoroutputreverse_3 (RW) _motorlimit_ap (RW)
_motoroutputreverse_4 (RW) _motorlimit_bp (RW)
_motoroutputreverse_5 (RW) _motorlimit_cp (RW)
_motoroutputreverse_6 (RW) _motorlimit_up (RW)
_motoroutputreverse_7 (RW) _motorlimit_vp (RW)
_motoroutputreverse_8 (RW) _motorlimit_wp (RW)
_motoroutputreverse_9 (RW)
_motoroutputreverse_axis (RW) _motorlimit_xn_en (RW)
_motorlimit_yn_en (RW)
Settings – Motors/StepsPerUnit: _motorlimit_zn_en (RW)
_motorspu_x (RW) _motorlimit_an_en (RW)
_motorspu_y (RW) _motorlimit_bn_en (RW)
_motorspu_z (RW) _motorlimit_cn_en (RW)
_motorspu_a (RW) _motorlimit_un_en (RW)
_motorspu_b (RW) _motorlimit_vn_en (RW)
_motorspu_c (RW) _motorlimit_wn_en (RW)
_motorspu_u (RW)
_motorspu_v (RW) _motorlimit_xp_en (RW)
_motorspu_w (RW) _motorlimit_yp_en (RW)
_motorspu_axis (RW) _motorlimit_zp_en (RW)
_motorlimit_ap_en (RW)
Settings – Motors/Speed: _motorlimit_bp_en (RW)
_motorspeed_x (RW) _motorlimit_cp_en (RW)
_motorspeed_y (RW) _motorlimit_up_en (RW)
_motorspeed_z (RW) _motorlimit_vp_en (RW)
_motorspeed_a (RW) _motorlimit_wp_en (RW)
_motorspeed_b (RW)
_motorspeed_c (RW) Settings - Motors/Limit Switch:
_motorspeed_u (RW) _limitpin_xn (RW)
_motorspeed_v (RW) _limitpin_yn (RW)
_motorspeed_w (RW) _limitpin_zn (RW)
_motorspeed_axis (RW) _limitpin_an (RW)
_limitpin_bn (RW)
Settings – Motors/Acceleration: _limitpin_cn (RW)
_motoracc_x (RW) _limitpin_un (RW)
_motoracc_y (RW) _limitpin_vn (RW)
_motoracc_z (RW) _limitpin_wn (RW)
_motoracc_a (RW) _limitpin_n_axis (RW)
_motoracc_b (RW)
_motoracc_c (RW) _limitpin_xp (RW)
_limitpin_yp (RW) Settings – Measure:
_limitpin_zp (RW) _probe_pin_1 (RW)
_limitpin_ap (RW) _probe_pin_2 (RW)
_limitpin_bp (RW)
_limitpin_cp (RW) _probe_speed (RW)
_limitpin_up (RW) _probe_speed_low (RW)
_limitpin_vp (RW) _probe_swdist (RW)
_limitpin_wp (RW)
_limitpin_p_axis (RW) _probe_sizeZ (RW)
_probe_sizeXY (RW)
Settings – Motion: _probe_size_axis (RW)
_motion_maxspeed (RW) _probe_safeheigh (RW)
_motion_maxacc (RW)
_motion_maxdec (RW) Settings – Home:
_home_speed (RW)
Settings – Jogging: _home_speed_low (RW)
_jog_speeddef (RW) _home_swdist (RW)
_jog_stepdef (RW)
_jog_rounddef (RW) _home_order_x (RW)
_home_order_y (RW)
_jog_speedkbd (RW) _home_order_z (RW)
_home_order_a (RW)
_jog_speed (RW) _home_order_b (RW)
_jog_step (RW) _home_order_c (RW)
_jog_round (RW) _home_order_u (RW)
_home_order_v (RW)
Settings – IO/Spindle: _home_order_w (RW)
_spindle_pin_mode (RW) _home_order_axis (RW)
_spindle_pin_cw (RW)
_spindle_pin_ccw (RW) _home_dir_x (RW)
_spindle_pin_speed (RW) _home_dir_y (RW)
_spindle_speed_min (RW) _home_dir_z (RW)
_spindle_speed_max (RW) _home_dir_a (RW)
_spindle_delay_start (RW) _home_dir_b (RW)
_spindle_delay_stop (RW) _home_dir_c (RW)
_home_dir_u (RW)
_spindle_freq_mode (RW) _home_dir_v (RW)
_spindle_usefreq (R) _home_dir_w (RW)
_spindle_freq_min (RW) _home_dir_axis (RW)
_spindle_freq_max (RW)
_spindle_freq_stepwidth (RW) _home_swpos_x (RW)
_spindle_usepwm (R) _home_swpos_y (RW)
_spindle_pwm_freq (RW) _home_swpos_z (RW)
_spindle_userc (R) _home_swpos_a (RW)
_spindle_rc_lo (RW) _home_swpos_b (RW)
_spindle_rc_hi (RW) _home_swpos_c (RW)
_home_swpos_u (RW)
_home_swpos_v (RW)
Settings – IO/Coolant: _home_swpos_w (RW)
_mist_pin (RW) _home_swpos_axis (RW)
_flood_pin (RW)
_home_moveto_x (RW)
Settings - Program Options: _home_moveto_y (RW)
_program_units (RW) _home_moveto_z (RW)
_program_plane (RW) _home_moveto_a (RW)
_program_distmode (RW) _home_moveto_b (RW)
_program_distmodeijk (RW) _home_moveto_c (RW)
_program_distmodeabc (RW) _home_moveto_u (RW)
_program_cyclereturn (RW) _home_moveto_v (RW)
_program_lathemode (RW) _home_moveto_w (RW)
_home_moveto_axis (RW)
_speed_traverse (RW)
_speed_traverseabc (RW) Settings - Tool Change
_speed_feed (RW) _tc_enable (RW)
_speed_spindle (RW) _tc_skipsame (RW)
_tc_spindlecheck (RW)
_ovrd_speedfeed (RW) _tc_safeheight_en (RW)
_ovrd_speedtraverse (RW) _tc_safeheight (RW)
_ovrd_spindle (RW) _tc_pos_en (RW)
_tc_pos_x (RW)
_tc_pos_y (RW) _tooloff_swdist (RW)
_tc_pos_z (RW) _tooloff_safeheight (RW)
_tc_action (RW) _tooloff_sensorX (RW)
_tc_toolmeasure (RW) _tooloff_sensorY (RW)
_tc_tooloff_en (RW) _tooloff_sensorZ (RW)
_tc_autoreturn (RW)
Settings - Work Offset:
_tc_atc_en (RW) _workoff_speed (RW)
_tc_atc_speed (RW) _workoff_speed_low (RW)
_tc_atc_speed2 (RW) _workoff_swdist (RW)
_workoff_size (RW)
_tc_unload_in1_x (RW)
_tc_unload_in1_y (RW) Settings - Gantry Square
_tc_unload_in1_z (RW) _gantrysquare_speed (RW)
_gantrysquare_axis (RW)
_tc_unload_in2_x (RW) _gantrysquare_dir (RW)
_tc_unload_in2_y (RW) _gantrysquare_move_u (RW)
_tc_unload_in2_z (RW) _gantrysquare_move_v (RW)
_tc_unload_pin1 (RW) HW:
_tc_unload_pin1set1 (RW) _hw_isinit (R)
_tc_unload_pin1delay1 (RW) _hw_serial (R)
_tc_unload_pin1set2 (RW) _hw_version (R)
_tc_unload_pin1delay2 (RW) _sw_version (R)
_tc_unload_pin2 (RW) _hw_buffavail (R)
_tc_unload_pin2set1 (RW) _hw_buffempty (R)
_tc_unload_pin2delay1 (RW) _hw_buffutil (R)
_tc_unload_pin2set2 (RW)
_tc_unload_pin2delay2 (RW) _hw_cmdbufffull (R)
_hw_cmdbufffree (R)
_tc_unload_out1_x (RW) _hw_cmdbuffunread (R)
_tc_unload_out1_y (RW)
_tc_unload_out1_z (RW) _hw_idle (R)
_hw_estop (R)
_tc_unload_out2_x (RW) _hw_stop (R)
_tc_unload_out2_y (RW) _hw_pause (R)
_tc_unload_out2_z (RW)
_hw_speed (R)
_tc_load_in1_x (RW) _hw_accel (R)
_tc_load_in1_y (RW) _hw_spindle (R)
_tc_load_in1_z (RW) _hw_spindle_dir (R)
_tc_load_in2_x (RW) _hw_mist (R)
_tc_load_in2_y (RW) _hw_flood (R)
_tc_load_in2_z (RW)
_hw_ovrdspeed_enabled (R)
_tc_load_pin1 (RW) _hw_ovrdspindle_enabled (R)
_tc_load_pin1set1 (RW)
_tc_load_pin1delay1 (RW) _hw_motor_x (R)
_tc_load_pin1set2 (RW) _hw_motor_y (R)
_tc_load_pin1delay2 (RW) _hw_motor_z (R)
_hw_motor_a (R)
_tc_load_pin2 (RW) _hw_motor_b (R)
_tc_load_pin2set1 (RW) _hw_motor_c (R)
_tc_load_pin2delay1 (RW) _hw_motor_u (R)
_tc_load_pin2set2 (RW) _hw_motor_v (R)
_tc_load_pin2delay2 (RW) _hw_motor_w (R)
_tc_load_out1_x (RW) _hw_work_x (R)
_tc_load_out1_y (RW) _hw_work_y (R)
_tc_load_out1_z (RW) _hw_work_z (R)
_hw_work_a (R)
_tc_load_out2_x (RW) _hw_work_b (R)
_tc_load_out2_y (RW) _hw_work_c (R)
_tc_load_out2_z (RW) _hw_work_u (R)
_hw_work_v (R)
Settings - Tool Offset: _hw_work_w (R)
_tooloff_speed (RW)
_tooloff_speed_low (RW) _hw_srcidx (R)
_hw_linenum (R) _prog_linelimit (R)
_prog_looplimit (R)
_hw_output (R) _prog_loadtime (R)
_hw_output_num (R)
_hw_output_freq1 (R) _prog_min_x (R)
_hw_output_duty1 (R) _prog_min_y (R)
_hw_output_freq2 (R) _prog_min_z (R)
_hw_output_duty2 (R) _prog_min_a (R)
_hw_output_freq3 (R) _prog_min_b (R)
_hw_output_duty3 (R) _prog_min_c (R)
_prog_min_u (R)
_hw_extin1 (R) _prog_min_v (R)
_hw_extin1_num (R) _prog_min_w (R)
_hw_extin2 (R)
_hw_extin2_num (R) _prog_max_x (R)
_hw_extout1 (R) _prog_max_y (R)
_hw_extout1_num (R) _prog_max_z (R)
_hw_extout2 (R) _prog_max_a (R)
_hw_extout2_num (R) _prog_max_b (R)
_prog_max_c (R)
_hw_input (R) _prog_max_u (R)
_hw_input_num (R) _prog_max_v (R)
_prog_max_w (R)
_hw_limit (R)
_hw_limit_num (R) _prog_mintrav_x (R)
_prog_mintrav_y (R)
_hw_jog (R) _prog_mintrav_z (R)
_hw_jogpot (R) _prog_mintrav_a (R)
_prog_mintrav_b (R)
_hw_ctrl (R) _prog_mintrav_c (R)
_prog_mintrav_u (R)
_hw_aux1 (R) _prog_mintrav_v (R)
_hw_aux2 (R) _prog_mintrav_w (R)
_hw_aux3 (R)
_hw_aux4 (R) _prog_maxtrav_x (R)
_prog_maxtrav_y (R)
_hw_error (R) _prog_maxtrav_z (R)
_hw_motors_en (R) _prog_maxtrav_a (R)
_hw_limits_en (R) _prog_maxtrav_b (R)
_hw_axislock (R) _prog_maxtrav_c (R)
_prog_maxtrav_u (R)
_hw_ctrlspindleidx_rpm (R) _prog_maxtrav_v (R)
_hw_ctrlspindleidx_val (R) _prog_maxtrav_w (R)
_hw_ctrlspindle_rpm (R) _prog_minfeed_x (R)
_hw_ctrlspindle_dir (R) _prog_minfeed_y (R)
_hw_ctrlspindle_val (R) _prog_minfeed_z (R)
_prog_minfeed_a (R)
_hw_ctrlmpg_rpm (R) _prog_minfeed_b (R)
_hw_ctrlmpg_dir (R) _prog_minfeed_c (R)
_hw_ctrlmpg_val (R) _prog_minfeed_u (R)
_hw_ctrlmpg_velocity (R) _prog_minfeed_v (R)
_prog_minfeed_w (R)
_hw_ctrlenc_rpm (R)
_hw_ctrlenc_dir (R) _prog_maxfeed_x (R)
_hw_ctrlenc_val (R) _prog_maxfeed_y (R)
_prog_maxfeed_z (R)
_hw_mpg_mode (R) _prog_maxfeed_a (R)
_hw_mpg_axis (R) _prog_maxfeed_b (R)
_hw_mpg_key (R) _prog_maxfeed_c (R)
_hw_mpg_delta (R) _prog_maxfeed_u (R)
_hw_mpg_value (R) _prog_maxfeed_v (R)
_hw_mpg_axisnum (R) _prog_maxfeed_w (R)
_hw_mpg_velocity (R)
_prog_maxspeed (R)
Program: _prog_minspeed (R)
_prog_size (R) _prog_maxspindle (R)
_prog_linecount (R) _prog_minspindle (R)
_prog_totallen (R)
_prog_totaltime (R) UI:
_isuiready (R) Other:
_start_firstline (R)
_progress (R) _start_lastline (R)
_progress_timetoend (R) _start_loops (R)
_progress_loop (R)
_progress_loopcnt (R) _return (R)
_ui_width (R)
_ui_height (R)
_selected_gcode_line (R)
_selected_gcode (R)
_selected_gcode_x (R)
_selected_gcode_y (R)
_selected_gcode_z (R)
_selected_gcode_a (R)
_selected_gcode_b (R)
_selected_gcode_c (R)
_selected_gcode_u (R)
_selected_gcode_v (R)
_selected_gcode_w (R)
Dialogs:
_toolnumber (R)
_coord_x (R)
_coord_y (R)
_coord_z (R)
_coord_a (R)
_coord_b (R)
_coord_c (R)
_coord_u (R)
_coord_v (R)
_coord_w (R)
_coord_rot (R)
_coord_x_en (R)
_coord_y_en (R)
_coord_z_en (R)
_coord_a_en (R)
_coord_b_en (R)
_coord_c_en (R)
_coord_u_en (R)
_coord_v_en (R)
_coord_w_en (R)
_coord_rot_en (R)
Table of Contents
G-Codes.........................................................................................................................2
Mode...................................................................................................................................................2
G20 - Inch Units..............................................................................................................................2
G70 - Inch Units..............................................................................................................................2
G21 - Millimeter Units.....................................................................................................................2
G71 - Millimeter Units.....................................................................................................................2
G17 - XY Plane...............................................................................................................................3
G18 - ZX Plane...............................................................................................................................3
G19 - YZ Plane...............................................................................................................................3
G90 - Distance Mode – Absolute....................................................................................................4
G91 - Distance Mode – Incremental...............................................................................................4
G90.1 - Distance Mode – IJK Absolute..........................................................................................4
G91.1 - Distance Mode – IJK Incremental.....................................................................................4
G90.2 - Distance Mode – ABC Absolute........................................................................................4
G91.2 - Distance Mode – ABC Incremental...................................................................................4
G98 - Cycle Return - Initial Z Point.................................................................................................5
G99 - Cycle Return - R Point..........................................................................................................5
G07 - Lathe Mode – Diameter........................................................................................................5
G08 - Lathe Mode – Radius...........................................................................................................5
G15 - Polar Coordinate Cancel......................................................................................................6
G16 - Polar Coordinate Enable......................................................................................................6
G61 - Blend Cancel........................................................................................................................7
G64 - Blend Enable........................................................................................................................7
G93 - Feed Mode - Inverse Time....................................................................................................8
G94 - Feed Mode - Units per Minute..............................................................................................8
G95 - Feed Mode - Units per Revolution........................................................................................8
G96 - Spindle Mode – CSS............................................................................................................8
G97 - Spindle Mode – RPM............................................................................................................8
Tools....................................................................................................................................................9
G40 - Tool Compensation Cancel...................................................................................................9
G41 - Tool Compensation Left........................................................................................................9
G42 - Tool Compensation Right.....................................................................................................9
G41.1 - Tool Compensation Dynamic Left......................................................................................9
G42.1 - Tool Compensation Dynamic Right...................................................................................9
G43 - Tool Offset+ Enable............................................................................................................10
G44 - Tool Offset- Enable.............................................................................................................10
G43.1 - Tool Offset+ Enable.........................................................................................................10
G44.1 - Tool Offset- Enable..........................................................................................................10
G49 - Tool Offset Cancel..............................................................................................................10
Coordinate Systems..........................................................................................................................11
G54 - Coordinate System 1..........................................................................................................11
G55 - Coordinate System 2..........................................................................................................11
G56 - Coordinate System 3..........................................................................................................11
G57 - Coordinate System 4..........................................................................................................11
G58 - Coordinate System 5..........................................................................................................11
G59 - Coordinate System 6..........................................................................................................11
G59.1 - Coordinate System 7.......................................................................................................11
G59.2 - Coordinate System 8.......................................................................................................11
G59.3 - Coordinate System 9.......................................................................................................11
G54.1 - Coordinate System P.......................................................................................................11
G59 P- Coordinate System P.......................................................................................................11
Offsets...............................................................................................................................................12
G92 - Working Offset....................................................................................................................12
G92.1 - Working Offset Cancel.....................................................................................................12
G52 - Axes Offset.........................................................................................................................12
G52.1 - Axes Offset Cancel..........................................................................................................12
G51 - Axes Scale Enable..............................................................................................................13
G50 - Axes Scale Cancel..............................................................................................................13
G68 - Axes Rotate Enable............................................................................................................13
G69 - Axes Rotate Cancel............................................................................................................13
Motion...............................................................................................................................................14
G80 - Cancel Motion.....................................................................................................................14
G00 - Rapid Move.........................................................................................................................14
G01 - Linear Feed Move...............................................................................................................14
G02 - Clockwise Arc Feed Move..................................................................................................15
G03 - Counter Clockwise Arc Feed Move....................................................................................15
G05 - Cubic Spline........................................................................................................................16
G05.1 - Quadratic Spline..............................................................................................................16
G05.2 - NURBS Block..................................................................................................................17
G05.3 - NURBS Block End...........................................................................................................17
G28 - Go To Home 1 Position.......................................................................................................18
G28.1 - Set Home 1 Position........................................................................................................18
G30 - Go To Home 2 Position.......................................................................................................18
G30.1 - Set Home 2 Position........................................................................................................18
G32 - Spindle Synchronized Motion / Threading..........................................................................19
G33 - Spindle Synchronized Motion / Threading..........................................................................19
G33.1 - Spindle Synchronized Motion With Return / Rigid Tapping.............................................19
G31 - Probe..................................................................................................................................19
G38.1 - Probe...............................................................................................................................19
G38.2 - Probe...............................................................................................................................19
G38.3 - Probe...............................................................................................................................19
G38.4 - Probe...............................................................................................................................19
G38.5 - Probe...............................................................................................................................19
Settings.............................................................................................................................................20
G10 L9 - Set Controller Position...................................................................................................20
G10 L3 - Transformation...............................................................................................................20
G10 L1, L10 - Tool Table...............................................................................................................21
G10 L2, L20 - Coordinate System................................................................................................21
Other.................................................................................................................................................22
G04 - Dwell...................................................................................................................................22
G09 - Stop, Sync & Set Controller Position..................................................................................22
G53 - Machine Coordinate System..............................................................................................22
Cycles...............................................................................................................................................23
Lathe Cacles.....................................................................................................................................24
G75 - Lathe: Pattern Repeating (Finishing) TODO......................................................................24
G76 - Lathe: Threading.................................................................................................................24
G77 - Lathe: X Roughing TODO..................................................................................................25
G78 - Lathe: Z Roughing TODO...................................................................................................25
G79 - Lathe: Grooving TODO.......................................................................................................25
Drill Cycles........................................................................................................................................26
G73 - Cycle: Drill, Speed Peck, Dwell..........................................................................................26
G74 - Cycle: Tapping Left.............................................................................................................28
G81 - Cycle - Drill.........................................................................................................................28
G82 - Cycle: Drill, Dwell................................................................................................................28
G83 - Cycle: Drill, Peck, Dwell......................................................................................................29
G84 - Cycle: Tapping Right...........................................................................................................31
G85 - Cycle: Boring, Feed Out.....................................................................................................31
G86 - Cycle: Boring, Spindle Stop, Rapid Out, Spindle Start......................................................31
G87 - Cycle: Boring, Spindle Reverse, Rapid Out, Spindle Reverse...........................................31
G88 - Cycle: Boring, Spindle Stop, Feed Out, Spindle Start........................................................31
G89 - Cycle: Boring, Spindle Reverse, Feed Out, Spindle Reverse............................................31
Other Cycles.....................................................................................................................................32
G12 - Clockwise Circle.................................................................................................................32
G13 - Counter Clockwise Circle...................................................................................................32
M-Codes......................................................................................................................33
Program............................................................................................................................................33
M0 - Pause....................................................................................................................................33
M1 - Optional pause.....................................................................................................................33
M2 - Program End........................................................................................................................33
M30 - Program End......................................................................................................................33
Spindle..............................................................................................................................................34
M3 - Spindle CW...........................................................................................................................34
M4 - Spindle CCW........................................................................................................................34
M5 - Spindle Stop.........................................................................................................................34
Tools..................................................................................................................................................35
M6 - Tool Change.........................................................................................................................35
M61 - Tool Select..........................................................................................................................35
Coolant..............................................................................................................................................36
M7 - Mist On.................................................................................................................................36
M17 - Mist Off/On.........................................................................................................................36
M8 - Flood On...............................................................................................................................36
M18 - Flood Off/On.......................................................................................................................36
M9 - Mist & Flood Off....................................................................................................................36
Overrides and options.......................................................................................................................37
M48 - Enable Override Feed & Spindle........................................................................................37
M49 - Disable Override Feed & Spindle.......................................................................................37
M50 - Enable/Disable Override Feed...........................................................................................37
M51 - Enable/Disable Override Spindle.......................................................................................37
M53 - Enable/Disable Pause........................................................................................................38
M54 - Enable/Disable THC...........................................................................................................38
M55 - Enable/Disable Transformations........................................................................................38
M56 - Enable/Disable Warp..........................................................................................................38
M57 - Enable/Disable Swap.........................................................................................................38
Inputs & Outputs...............................................................................................................................39
M10 - Enable/Disable motor enable signal...................................................................................39
M11 - Enable/Disable limits..........................................................................................................39
M59 - Wait For Input.....................................................................................................................39
M62 - Output.................................................................................................................................39
M63 - Output PWM.......................................................................................................................40
M64 - Output ExtOut.....................................................................................................................40
M65 - Output TX...........................................................................................................................41
M66 - Output I2C..........................................................................................................................41
Modal State.......................................................................................................................................42
M70 - Modal State Store...............................................................................................................42
M71 - Modal State Invalidate........................................................................................................43
M72 - Modal State Restore...........................................................................................................43
M73 - Modal State Store & Autorestore........................................................................................43
Other Codes................................................................................................................44
F - Feed Speed.............................................................................................................................44
S - Spindle Speed.........................................................................................................................44
T - Select Tool...............................................................................................................................44
O-Words.......................................................................................................................45
Comments...................................................................................................................46
Operators....................................................................................................................47
Operator precedence........................................................................................................................47
Functions....................................................................................................................48
List of G-Codes...........................................................................................................49
List of M-Codes...........................................................................................................50
List of parameters.......................................................................................................51