Inserting chamfers and roundings (G301/G302) (#FRC/#CHR/#CHF/#RND)
Syntax: | ||
G301 | Inserting chamfers | Both functions are effective between two motion blocks |
G302 | Inserting roundings |
G301 inserts a straight line at the identical angle of inclination to the adjacent contour elements (chamfers).
G302 inserts an arc with a tangential transition to the two adjacent contour elements (roundings).
These functions are non-modal and generate precisely one insertion segment (arc or straight line). G301/G302 blocks may be only written between blocks with active G functions of the group "G00, G01, G02/G03 except for G05”.
The I word programmed in the same NC block defines the rounding size or the chamfer width of the insertion segments in [mm, inch]. The I word remains stored and active. This means that I word need no longer be programmed in the following G301/G302 at the same radius or same chamfer width.
In the initial programming of G301/G302, an I word unequal to zero must be programmed in the NC block, otherwise an error message is output (error which leads to abortion of decoding).
Effectiveness of path feedrate in an inserted chamfer or rounding segment:
- If the previous feedrate is G00 (rapid traverse), the segment is also travelled at maximum possible velocity.
- If the previous feedrate is G01/G02/G03, the programmed feedrate is also valid in the segment.
- A feedrate may also be specified in a block containing G301/G302. This feedrate is also valid in all following G01/G02/G03 blocks.
- The feedrate is also adapted when G11 and G41/G42 are active.
Specific chamfer or rounding feedrate:
Release Note
As of Build V3.1.3057.04, an active feedrate can only be programmed in the inserted chamfer or rounding segment together with a specified chamfer or rounding.
Syntax: | |||
#FRC=.. | Feedrate in inserted chamfer or rounding segment using the F word unit (e.g. mm/min) | non-modal |
Programing Example
Inserting chamfers and roundings (G301/G302)
Chamfer: 90° corner with 2 straight lines (I=20 is specified for a chamfer 20x45°)
N100 G00 G91 X100 Y0
N110 G01 Y100 F200
N120 G301 I20
N130 X-60
N140 G00 G90 X0 Y0
Rounding: rectangular pocket with corner radius 20 mm, length 200 mm, width 100 mm, segment-specific feedrates
Default: | Alternatively: |
N100 G00 X0 Y0 | N100 G00 X0 Y0 |
N110 G01 X200 F200 | N110 G01 X200 F200 |
N120 G302 I20 F150 | N120 G302 I20 #FRC=150 |
N130 Y100 F200 | N130 Y100 |
N140 G302 F150 | N140 G302 #FRC=150 |
N150 X0 F200 | N150 X0 |
N160 G302 F150 | N160 G302 #FRC=150 |
N170 Y0 F200 | N170 Y0 |
N180 G302 F150 | N180 G302 #FRC=150 |
N190 X40 F200 | N190 X40 |
The chamfer or rounding is always added in the plane in which the second motion block is programmed.
Example A: | Example B: |
N100 G18 X20 | N100 G18 X20 |
N110 G19 | N110 G301 I5 |
N120 G301 I5 | N120 G19 |
N130 Y20 Z20 | N130 Y20 Z20 |
Example A and B both yield the same result, contouring in the Y-Z plane.
Release Note
As of Build V3.1.3057.04 there are additional options to program chamfers and roundings:
Extended G functions G301 and G302:
Chamfers and roundings are programmed as additional values with G301 and G302. Chamfers and rounding values must always be specified in [mm, inch]; they are non-modal.
G301 and G302 can be programmed directly in the first motion block. A separate NC block is not required.
Syntax: | ||
G301=.. | Insert chamfers specifying the chamfer in [mm, inch] | non-modal |
G302=.. | Insert radii specifying the radius in [mm, inch] | non-modal |
Programing Example
Inserting chamfers and roundings (G301/G302)
Rectangular pocket with 2 chamfers (G201) and 2 roundings (G302) with specific feedrates
N05 G17 G00 G90 X0 Y0
N10 G01 F2000 X100 G301=20 #FRC=500
N20 Y100 G302=20 #FRC=1000
N30 X0 G301=20 #FRC=500
N40 Y0 G302=20 #FRC=1000
N50 X40
N50 M30
Programming chamfers and roundings with # commands:
Chamfers and roundings are programmed as additional values with# commands. Chamfers and rounding values must always be specified in [mm, inch]; they are non-modal.
# commands can be programmed directly in the first motion block. A separate NC block is not required.
A chamfer can be programmed in two ways: either by specifying
- chamfer width (analogous to G301) or
- chamfer length
Syntax: | ||
#CHR=.. | Specify chamfer width in [mm, inch] | non-modal |
#CHF=.. | Specify chamfer length in [mm, inch] | non-modal |
Rounding is programmed by:
Syntax: | ||
#RND=.. | Specify radius in [mm, inch] | non-modal |
Programing Example
Rectangular pocket with 2 chamfers (#CHR, #CHF) and 2 roundings (# RND) with specific feedrates
N05 G17 G00 G90 X0 Y0
N10 G01 F2000 X200 #CHR=20 #FRC=500
N20 Y100 #RND=20 #FRC=1000
N30 X0 #CHF=35 #FRC=500
N40 Y0 #RND=20 #FRC=1000
N50 X40
N60 M30