Definition of feed axes (#FGROUP, #FGROUP ROT, #FGROUP WAXIS)

#FGROUP defines the axes to which the programmed feedrate (F word) refers. For axes programmed in the #FGROUP command, a path in space is defined for execution at the programmed feedrate. All other axes are treated as tracking axes and they then reach their target points simultaneously with the path axes.

A characteristic feature of a path axis is that the distance to be moved is included in the feedrate. On the other hand, the tracking axis distance to be moved has no direct influence on path velocity.

Syntax of Defining feed axes:

#FGROUP [ <axis_name> {,<axis_name> } ]


Name of the axes which are members of the feed group

Syntax of Selecting default setting:


If no feed axes are programmed, the default setting defined in the channel parameters P-CHAN-00096 and P-CHAN-00011 are valid. If no feed axes are configured there, all main axes (Index 0, 1, 2) automatically form the channel feed group. This is indicated by the message 21209.

With linear interpolation, feed axes may be given any definition:

With circular and polynomial interpolation, the following exceptions apply:

Programing Example


Definition of feed axes

N10 #FGROUP [X,Y]         ;X and Y are feed axes

N20 #FGROUP [X,Y,U,V]     ;X,Y,U and V are feed axes


N50 #FGROUP [A]           ;Tracking axis A is feed axis

N60 #FGROUP [X,Y,U,V,A,B] ;X,Y,U,V,A and B are feed axes


N100 #FGROUP              ;Feed axes acc. to default settings

:                         ;in the channel parameters

N999 M30

In the default setting, all feed axes defined with #FGROUP are equally weighted when determining the effective feed rate. By optionally specifying a factor when defining the feed axes, a weighting and therefore its effect on determining the effective feed can be defined for each axis. The extension of #FGROUP is described below.

Syntax of Determining feed axes with feed factors:

#FGROUP [ <axis_name>=.. { ,<axis_name>=..} ]


Name of the axes which form the feed group with associated feed factors. If no factor is specified for an axis, the factor 1.0 will apply.

If an axis is fetched by axis exchange to the channel, its feed factor is initialised with a value of 1.0..

The permissible value range for feed factor is [0.001..1000]

Syntax of Selecting default setting, all feed factors to 1.0:


Programing Example


Definition of feed axes with feed weighting

N10 #FGROUP [X= 0.5, Y= 0.75]; X and Y are feed axes with

                           ;changed feed factors


N50 #FGROUP [A=0.85]           ;Tracking axis A is feed axis

                           ;with changed feed factor

N60 #FGROUP [X,Y,U,V,A=0.85,B=1.7] ;X,Y,U,V are feed axes

                                   ;with feed factor 1.0

                                   ,A and B are feed axes

                                   ;with changed feed factors


N100 #FGROUP           ;All feed axes with feed factor 1.0


N999 M30

In order to machine cylindrical workpieces on a rotary workpiece axis, the real programmed feedrate [mm/min] should act at the tool contact point. This can be ensured either by selecting a suitable kinematic transformation (e.g. lateral surface transformation) or by using the command #FGROUP ROT[...]. After programming this command, the feedrate of the rotary axis in [°/min] is recalculated depending on the reference radius. When the rotary axis is programmed alone or together with linear axes, the required programmed feedrate is obtained at the reference radius.

Syntax of Adapting feed for a rotary axis

#FGROUP ROT [ AX=<axis_name> REF=.. ]


Name of the axis on which the reference radius is to act.


Effective reference radius of the rotary axis in [mm, inch].

Syntax of Deselecting adapting feed for a rotary axis




No check is made whether the axis "AX.." is really a rotary axis or not. The function can only be used for feed blocks (G01) and combined with G94.



Typically, this function is used for milling.

Feedrate adaptations for turning work are programmed with G95 and G96.

Programing Example


Workpiece with reference radius R=10mm

N05 G00 C0

N10 G01 C180 F1000; Rotational speed of the workpiece 1000°/min

                   ;Feedrate at workpiece circumference 174.67 mm/min


N30 G01 C360 F1000 ;feedrate at workpiece circumference 1000 mm/min

                   ;Rotational speed of workpiece 5727.6°/min


Nxx #FGROUP ROT    (Deselect)


N10 G00 X0 Y0 Z0

N15 #FGROUP ROT[AX=C REF=10] ;Feedrate at milling cutter contact point 1000 mm/min

N60 G01 G91 X10 C57.325 F1000 ;Diagonal on lateral surface

N70 G90 X0 C0

Nxx #FGROUP ROT               ;Deselect


Independent of the default setting in the channel parameters, the command #FGROUP WAXIS defines that the axis with the longest running time ("weakest axis”) is moved automatically as the feed axis at the programmed feedrate (F word). All other axes are treated as tracking axes.

Syntax of Deselecting “weakest” axis as feed axis


Programing Example


N10 #FGROUP [X, Y]      ;X and Y are feed axes

N20 G00 X0 Y0

N30 #FGROUP WAXIS       ;Weakest axis is feed axis

N40 G01 F1000 X10 Y200  ;Y axis is axis with longest motion time


N999 M30