2012-08-04 20:33:21 (CET)

G Codes ( G0 - G10 )

G Codes

G codes of the RS274/NGC language are shown in Table 3-4 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 XY-plane selection
G18

XZ-plane selection

G19

YZ-plane 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

R-point 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:

  • 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. 

 

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 Z-axis of the machine coordinate system. The axis (or, equivalently, the plane perpendicular to the axis) is selected with G17 (Z-axis, XY-plane), G18 (Y-axis, XZ-plane), or G19 (X-axis, YZ-plane). 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:

  • both of the axis words for the axes of the selected plane are omitted,

  • the end point of the arc is the same as the current point.

 

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 out-of-tolerance 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 Z-axis) circular or helical arc whose axis is parallel to the Z-axis, 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 XY-plane; 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 arc is projected on the selected plane, the distance from the current point to the center differs from the distance from the end point to the center by more than 0.0002 inch (if inches are being used) or 0.002 millimeter (if millimeters are being used).

 

When the XY-plane 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:

  • X and Y are both omitted,

  • I and J are both omitted.

 

When the XZ-plane 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:

  • X and Z are both omitted,

  • I and K are both omitted.

 

When the YZ-plane 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:

  • Y and Z are both omitted,

  • J and K are both omitted.

 

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 z-axis) circular or helical arc whose axis is parallel to the Z-axis, 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:

  • the P number is negative. 

 

Set Coordinate System Data -G10 

To set the coordinate values for the origin of a coordinate system, program
G10 L2 P … X… Y… Z… A…, where the P number must evaluate to an integer in the range 1 to 9 (corresponding to G54 to G59.3) and all axis words are optional. The coordinates of the origin of the coordinate system specified by the P number are reset to the coordinate values given (in terms of the absolute coordinate system). Only those coordinates for which an axis word is included on the line will be reset.

 

It is an error if:

  • the P number does not evaluate to an integer in the range 1 to 9.

 

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.
Working is similar to G92. Jog to any position, then apply e.g. G10 L20 P1 X0 Y0 to set G54 coordinate system zero point at current machine position.