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.
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
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
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 |
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 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
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
When #HSC[SURFACE] is used, you are advised to use #SLOPE[TYPE=HSC] at the same time for path velocity planning.
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
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