Surface machining with Surface Optimiser (method 3)

The HSC Surface Optimiser was developed to achieve consistent machining results regardless of the point distribution by the CAM system. In particular, the density of interpolation points on neighbouring machining paths can fluctuate with some CAM systems, which would lead to an uneven machining result. The figure below shows a machining result of this kind. The two points marked in red are missing on one of the neighbouring machining paths. This results in a different tool path (blue) in contrast to the neighbouring paths if the smoothing process is not optimised.

Problems in workpiece quality due to uneven distribution caused by the CAM system.
Problems in workpiece quality due to uneven distribution caused by the CAM system.

In addition to uniform machining paths, the HSC Surface Optimiser ensures a high feedrate that is as constant as possible. Due to the necessary calculations, the use of the Surface Optimiser requires high-performance control hardware.

Programming

Syntax:

#HSC [ON | OFF] [[ SURFACE [PATH_DEV=..] [PATH_DEV_G00=..] [TRACK_DEV=..] [TRACK_DEV_G00=..]

                               [MAX_ANGLE=..] [CHECK_JERK=..] [AUTO_OFF_G00=..] [CIR_MODE=..]

                               [CIR_MIN_ANGLE=..] [CIR_MIN_RADIUS=..] [MERGE=..] [LENGTH_LONG_CIR=..] ] ]

ON

Enable HSC programming.

OFF

Disable HSC programming.

SURFACE

Keyword for HSC machining with surface optimiser. Must always be programmed as first keyword.

PATH_DEV=..

Define maximum contour error.

> 0.0: Maximum path deviation in [mm, inch *]

Default value: 0.2 mm

Notice

notice

Empirically, the contour error should be set 2 or 3 times larger than the secant error which is defined when the NC program is generated in the CAM system.

The tool is not in contact with the workpiece in G0 motions. As a result, the tolerance can be set significantly larger than PATH_DEF without changing the precision of the workpiece.

PATH_DEV_G00=..

Define maximum contour error for G0-G0 transitions.

> 0.0: Maximum path deviation in [mm, inch *]

Default value: The value of PATH_DEV applies

TRACK_DEV=..

Define the maximum orientation error.

>= 0.0: Maximum path deviation in [°]

Default value: 2 °

TRACK_DEV_G00=..

Define the maximum orientation error for G0-G0 transitions.

>= 0.0: Maximum path deviation in [°]

Default value: The value of TRACK_DEV applies

Notice

notice

If a ball milling cutter is used, the value can be set significantly larger than PATH_DEV (e.g. 10 times).

The tool is not in contact with the workpiece in G0 motions. As a result, the tolerance can be set significantly larger than TRACK_DEV without influencing the precision of the workpiece.

MAX_ANGLE=..

Define the maximum contour knee angle in degrees for transitions between two linear blocks up to which this method can be applied. If the angle between the two linear blocks exceeds this limit, the mode is deselected internally.

>= 0.0: Maximum knee angle in [°]

Default value: 160 °

CHECK_JERK=..

Jerk monitoring caused by curvature of the polynomial (cf. P-CHAN-00110). This parameter overwrites the initial state defined in the channel parameter list by P-CHAN-00110 (check_jerk_on_poly_path).

0: No jerk monitoring

1: Jerk monitoring based on the geometric ramp time P-AXIS-00199. This may reduce path velocity.

2: Jerk monitoring based on ramp times P-AXIS-00195 up to P-AXIS-00198 of the non-linear velocity profile.

AUTO_OFF_G00=..

Automatic deselection of optimisation with G00 blocks

0: No implicit deselection due to rapid traverse block (default)

1: Implicit deselection due to a rapid traverse block

CIR_MODE=..

Define contouring of circular motions:

0 :  No contouring of circular motions G02/G03

1 : Circular block contouring. (default)

2 : Contour circular blocks and optimise long circular blocks
     Available as of V3.1.3075.01

CIR_MIN_ANGLE=..

Define minimum circle angle

Valid values: >= 0.0 : Minimum circle angle in degrees

The minimum circle angle at which circular motions can be traversed by the method using exact interpolation. Circular blocks with small swept angles are approximated by a spline curve for faster processing. (Default value = 30°)

CIR_MIN_RADIUS=..

Define minimum circle radius

Valid values: >= 0.0 : Maximum circle radius in [mm, inch *]

The minimum circle radius defines the circle radius from which circular motions can be traversed by the method using exact interpolation. Circular blocks with a small radius or with the magnitude of PATH_DEV are approximated by a spline curve.

Available as of V3.1.3075.01

MERGE=..

Merge blocks. The maximum deviation is determined depending on the values taken from PATH_DEV and TRACK_DEV.

0: No block merging (default)

1: Merge blocks

LENGTH_LONG_CIR=..

Minimum length of segments for long circular blocks when
CIR_MODE= 2 in [mm, inch *] is used
(default value= 2)

Available as of V3.1.3075.01

 

*with active P-CHAN-00439

Default values of free-form surface machining

PATH_DEV

0.2 mm (default value of PATH_DEV)

TRACK_DEV

2° (default value of TRACK_DEV)

PATH_DEV_G00

PATH_DEV

TRACK_DEV_G00

TRACK_DEV

CIR_MODE

1

MAX_ANGLE

160 °

CHECK_JERK

The valid channel parameter is P-CHAN-00110

(check_jerk_on_poly_path, default value = 1)

AUTO_OFF_G00

0

CIR_MIN_ANGLE

30 °

CIR_MIN_RADIUS

0.0

LENGTH_LONG_CIR

2 mm

Notice

notice

The parameters may also be specified in several steps. For example, this means it is possible to first define the maximum contour deviation ("PATH_DEV "). Then in a second command, jerk monitoring ("CHECK_JERK") and the selection of HSC surface interpolation ("ON") are defined.

Notice

notice

When #HSC[SURFACE] is used, you are advised to use #SLOPE[TYPE=HSC] at the same time for path velocity planning.

Attention

attention

Parameterisation cannot be changed while smoothing is active.

One condition to use this function is that it should be parameterised in the start-up list for each channel in which the function is to be used.

Programing Example

prg_example

Surface machining with Surface Optimiser

Example of a setting in the start-up list:

configuration.channel[].path_preparation.function FCT_DEFAULT|FCT_SURFACE

N20 G00 X0 Y0 Z0 F10000

;Parametrisation + selection

N30 #HSC ON [SURFACE PATH_DEV=0.02 CHECK_JERK=0]

N40   X3     Y25

N50   15     Y15

N60   23     Y12

N70   X25    Y25

N80   X30    Y35

N90   X50    Y37.5

N100  X55    Y32.5

N110  X58    Y12

N120  X70    Y12

N130  X77.5  Y10

N140  X90    Y35

N150  X100   Y37.5

N160 #HSC OFF

N170 M30

Alternative programming:

N20 G00  X0    Y0    Z0 F10000

N25 #HSC [SURFACE PATH_DEV=0.02 CHECK_JERK=0] ;Parameterisation

N30 #HSC ON ;Select

N40   X3     Y25

N50   15     Y15

N60   23     Y12

N70   X25    Y25

N80   X30    Y35

N90   X50    Y37.5

N100  X55    Y32.5

N110  X58    Y12

N120  X70    Y12

N130  X77.5  Y10

N140  X90    Y35

N150  X100   Y37.5

N160 #HSC OFF

N170 M30