20120804 20:33:21 (CET)
G Codes ( G0  G10 )
G Codes  
G codes of the RS274/NGC language are shown in Table 34 and described in this Section. The descriptions contain command prototypes, set in bold type. In the command prototypes, three dots (…) stand for a real value. As described earlier, a real value may be (1) an explicit number, 4, for example, (2) an expression, [2+2], for example, (3) a parameter value, #88, for example, or (4) a unary function value, acos[0], for example. In most cases, if axis words (any or all of X…, Y…, Z…, A…, B…, C…) are given, they specify a destination point. Axis numbers are in the currently active coordinate system, unless explicitly described as being in the absolute coordinate system. Where axis words are optional, any omitted axes will have their current value. Any items in the command prototypes not explicitly described as optional are required. It is an error if a required item is omitted.
In the prototypes, the values following letters are often given as explicit numbers. Unless stated otherwise, the explicit numbers can be real values. For example, G10 L2 could equally well be written G[2*5] L[1+1]. If the value of parameter 100 were 2, G10 L#100 would also mean the same. Using real values which are not explicit numbers as just shown in the examples is rarely useful.
If L… is written in a prototype the "…" will often be referred to as the "L number". Similarly the "…" in H… may be called the "H number", and so on for any other letter. 

Rapid Linear Motion  G0 

For rapid linear motion, program G0 X… Y… Z… A…, where all the axis words are optional, except that at least one must be used. The G0 is optional if the current motion mode is G0. This will produce coordinated linear motion to the
destination point at the current traverse rate (or slower if the machine will not go that fast). It is expected that cutting will not take place when a G0 command is executing.
It is an error if: • All axis words are omitted.
If cutter radius compensation is active, the motion will differ from the above; see Appendix A. If G53 is programmed on the same line, the motion will also differ; see Section 3.5.12. 



G code  meaning 
G0  rapid positioning 
G1  linear interpolation 
G2  circular/helical interpolation (clockwise) 
G3  circular/helical interpolation (counterclockwise) 
G4  dwell 
G10  coordinate system origin setting 
G17  XYplane selection 
G18 
XZplane selection 
G19 
YZplane selection 
G20 
inch system selection 
G21 
millimeter system selection 
G28 
move to park position 1, setup on variable page 
G30 
move to park position 2, setup on variable page 
G33 
Lathe, motion synchronized to spindle 
G38.2 
straight probe 
G40 
cancel cutter radius compensation 
G41 
start cutter radius compensation left 
G42 
start cutter radius compensation right 
G43 
tool length offset (plus) , tool X offset for lathe 
G49 
cancel tool length offset 
G53 
motion in machine coordinate system 
G54 
use preset work coordinate system 1 
G55 
use preset work coordinate system 2 
G56 
use preset work coordinate system 3 
G57 
use preset work coordinate system 4 
G58 
use preset work coordinate system 5 
G59 
use preset work coordinate system 6 
G59.1 
use preset work coordinate system 7 
G59.2 
use preset work coordinate system 8 
G59.3 
use preset work coordinate system 9 
G61 
set path control mode: exact path 
G61.1 
set path control mode: exact stop 
G64 
set path control mode: continuous 
G68 
XY rotation 
G76 
Lathe, threading 
G80 
cancel motion mode (including any canned cycle) 
G81 
canned cycle: drilling 
G82 
canned cycle: drilling with dwell 
G83 
canned cycle: peck drilling 
G84 
canned cycle: right hand tapping 
G85 
canned cycle: boring, no dwell, feed out 
G86 
canned cycle: boring, spindle stop, rapid out 
G87 
canned cycle: back boring 
G88 
canned cycle: boring, spindle stop, manual out 
G89 
canned cycle: boring, dwell, feed out 
G90 
absolute distance mode 
G91 
incremental distance mode 
G92 
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 
G93 
inverse time feed rate mode 
G94 
units per minute feed rate mode 
G98 
initial level return in canned cycles 
G99 
Rpoint level return in canned cycles 
Linear Motion at Feed Rate  G1 

For linear motion at feed rate (for cutting or not), program G1 X… Y… Z… A…, where all the axis words are optional, except that at least one must be used. The G1 is optional if the current motion mode is G1. This will produce coordinated linear motion to the destination point at the current feed rate (or slower if the machine will not go that fast).
It is an error if:
If cutter radius compensation is active, the motion will differ from the above; see Appendix A. If G53 is programmed on the same line, the motion will also differ; see Section 3.5.12. 

3.5.3Arc at Feed Rate  G2 and G3 

A circular or helical arc is specified using either G2 (clockwise arc) or G3 (counterclockwise arc). The axis of the circle or helix must be parallel to the X, Y, or Zaxis of the machine coordinate system. The axis (or, equivalently, the plane perpendicular to the axis) is selected with G17 (Zaxis, XYplane), G18 (Yaxis, XZplane), or G19 (Xaxis, YZplane). If the arc is circular, it lies in a plane parallel to the selected plane.
If a line of RS274/NGC code makes an arc and includes rotational axis motion, the rotational axes turn at a constant rate so that the rotational motion starts and finishes when the XYZ motion starts and finishes. Lines of this sort are hardly ever programmed. If cutter radius compensation is active, the motion will differ from what is described here. See Appendix A.
Two formats are allowed for specifying an arc. We will call these the center format and the radius format. In both formats the G2 or G3 is optional if it is the current motion mode. 

Radius Format Arc 

In the radius format, the coordinates of the end point of the arc in the selected plane are specified along with the radius of the arc. Program G2 X… Y… Z… A… R… (or use G3 instead of G2). R is the radius. The axis words are all optional except that at least one of the two words for the axes in the selected plane must be used. The R number is the radius. A positive radius indicates that the arc turns through 180 degrees or less, while a negative radius indicates a turn of 180 degrees to 359.999 degrees. If the arc is helical, the value of the end point of the arc on the coordinate axis parallel to the axis of the helix is also specified.
It is an error if:
It is not good practice to program radius format arcs that are nearly full circles or are semicircles (or nearly semicircles) because a small change in the location of the end point will produce a much larger change in the location of the center of the circle (and, hence, the middle of the arc). The magnification effect is large enough that rounding error in a number can produce outoftolerance cuts. Nearly full circles are outrageously bad, semicircles (and nearly so) are only very bad. Other size arcs (in the range tiny to 165 degrees or 195 to 345 degrees) are OK.
Here is an example of a radius format command to mill an arc: G17 G2 x 10 y 15 r 20 z 5.
That means to make a clockwise (as viewed from the positive Zaxis) circular or helical arc whose axis is parallel to the Zaxis, ending where X=10, Y=15, and Z=5, with a radius of 20. If the starting value of Z is 5, this is an arc of a circle parallel to the XYplane; otherwise it is a helical arc.


Center Format Arc 

In the center format, the coordinates of the end point of the arc in the selected plane are specified along with the offsets of the center of the arc from the current location. In this format, it is OK if the end point of the arc is the same as the current point. It is an error if:
When the XYplane is selected, program G2 X… Y… Z… A… I… J… (or use G3 instead of G2). The axis words are all optional except that at least one of X and Y must be used. I and J are the offsets from the current location (in the X and Y directions, respectively) of the center of the circle. I and J are optional except that at least one of the two must be used. It is an error if:
When the XZplane is selected, program G2 X… Y… Z… A… I… K… (or use G3 instead of G2). The axis words are all optional except that at least one of X and Z must be used. I and K are the offsets from the current location (in the X and Z directions, respectively) of the center of the circle. I and K are optional except that at least one of the two must be used. It is an error if:
When the YZplane is selected, program G2 X… Y… Z… A… B… C… J… K… (or use G3 instead of G2). The axis words are all optional except that at least one of Y and Z must be used. J and K are the offsets from the current location (in the Y and Z directions, respectively) of the center of the circle. J and K are optional except that at least one of the two must be used. It is an error if:
Here is an example of a center format command to mill an arc: G17 G2 x10 y16 i3 j4 z9.
That means to make a clockwise (as viewed from the positive zaxis) circular or helical arc whose axis is parallel to the Zaxis, ending where X=10, Y=16, and Z=9, with its center offset in the X direction by 3 units from the current X location and offset in the Y direction by 4 units from the current Y location. If the current location has X=7, Y=7 at the outset, the center will be at X=10, Y=11. If the starting value of Z is 9, this is a circular arc; otherwise it is a helical arc. The radius of this arc would be 5.
In the center format, the radius of the arc is not specified, but it may be found easily as the distance from the center of the circle to either the current point or the end point of the arc. 

Dwell  G4 

For a dwell, program G4 P… . This will keep the axes unmoving for the period of time in seconds specified by the P number. It is an error if:


Set Coordinate System Data G10 

To set the coordinate values for the origin of a coordinate system, program
It is an error if:
If origin offsets (made by G92 or G92.3) were in effect before G10 is used, they will continue to be in effect afterwards.
The coordinate system whose origin is set by a G10 command may be active or inactive at the time the G10 is executed. Example:G10 L2 P1 x 3.5 y 17.2 sets the origin of the first coordinate system (the one selected by G54) to a point where X is 3.5 and Y is 17.2 (in absolute coordinates). The Z coordinate of the origin (and the coordinates for any rotational axes) are whatever those coordinates of the origin were before the line was executed.
G10 L20 P.. X.. Y.. Z.. A..
Set coordinate system given by P number relative to actual machine position. 