# Oberflächenbearbeitung mit Surface Optimizer (Verfahren 3)

Der HSC Surface Optimizer wurde entwickelt um gleichmäßige Bearbeitungsergebnisse unabhängig von der Punkteverteilung durch das CAM-System zu erreichen. Insbesondere die Dichte von Stützpunkten auf benachbarten Bearbeitungsbahnen kann bei einigen CAM-Systemen schwanken, was zu einem unregelmäßigen Bearbeitungsergebnis führen würde. In der nachfolgenden Abbildung ist ein solches Bearbeitungsergebnis dargestellt. Die beiden rot markierten Punkte fehlen auf einer der benachbarten Bearbeitungsbahnen. Dadurch entsteht bei einem nicht optimierten Glättungsverfahren eine andere Werkzeugbahn (blau) im Gegensatz zu den benachbarten Bahnen.

Abb.: Probleme in der Werkstückqualität aufgrund unregelmäßiger Punkteverteilung durch CAM-System.

Der HSC Surface Optimizer sorgt zusätzlich zu gleichmäßigen Bearbeitungsbahnen für eine hohen und möglichst konstanten Vorschub. Aufgrund der notwendigen Berechnungen erfordert die Verwendung des Surface Optimizers eine möglichst performante Steuerungshardware.

## Programmierung

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 | HSC-Bearbeitung aktivieren.
OFF | HSC-Bearbeitung deaktivieren.
SURFACE | Kennwort für die HSC-Bearbeitung mit Surface Optimizer. Muss immer als erstes Schlüsselwort programmiert sein!
PATH_DEV=.. | Festlegung des maximalen Konturfehlers. > 0.0: Maximale Bahnabweichung in [mm, inch *] Standardwert: 0.2 mm

## Hinweis

Erfahrungsgemäß sollte der Fehler auf das 2 bis 3-fache des bei der Erzeugung des NC-Programms im CAM-System festgelegten Sehnenfehlers eingestellt werden.

Während G0-Bewegungen befindet sich das Werkzeug nicht im Eingriff. Deshalb kann die Toleranz deutlich größer als PATH_DEV gewählt werden, ohne die Werkstückgenauigkeit zu verändern.

PATH_DEV_G00=.. | Festlegung des maximalen Konturfehlers bei G0-G0-Übergängen. > 0.0: Maximale Bahnabweichung in [mm, inch *] Standardwert: Es gilt der Wert von PATH_DEV
TRACK_DEV=.. | Festlegung des maximalen Orientierungsfehlers. >= 0.0: Maximale Bahnabweichung in [°] Standardwert: 2°
TRACK_DEV_G00=.. | Festlegung des maximalen Orientierungsfehlers bei G0-G0-Übergängen. >= 0.0: Maximale Bahnabweichung in [°] Standardwert: Es gilt der Wert von TRACK_DEV

## Hinweis

Wird ein Kugelfräser verwendet, kann der eingestellte Wert deutlich größer als PATH_DEV eingestellt werden (z.B. 10-fach).

Während G0-Bewegungen befindet sich das Werkzeug nicht im Eingriff. Deshalb kann die Toleranz deutlich größer als TRACK_DEV gewählt werden, ohne die Werkstückgenauigkeit zu verändern.

MAX_ANGLE=.. | Festlegung des maximalen Konturknickwinkels in Grad für Übergänge zwischen zwei Linearsätzen bis zu dem das Verfahren angewendet wird. Ist der Winkel zwischen den beiden Linearsätzen größer, so erfolgt eine interne Abwahl des Verfahrens. >= 0.0: Maximaler Knickwinkel in [°]

Standardwert: 160°

CHECK_JERK=.. | Überwachung des Rucks, hervorgerufen durch die Krümmung des Polynoms (vgl. P-CHAN-00110). Dieser Parameter überschreibt die in der Kanalparameterliste durch P-CHAN-00110 (check_jerk_on_poly_path) vorgenommene Grundeinstellung. 0: Ohne Rucküberwachung

1: Rucküberwachung basierend auf der geom. Rampenzeit P-AXIS-00199. Evtl. wird hierdurch die Bahngeschwindigkeit reduziert.

2: Rucküberwachung basierend auf den Rampenzeiten P-AXIS-00195, P-AXIS-00198 des nichtlinearen Geschwindigkeitsprofils.

AUTO_OFF_G00=.. | Automatische Abwahl der Optimierung bei G00-Sätzen 0: Keine implizite Abwahl aufgrund eines Eilgangsatzes (Standard) 1: Implizite Abwahl aufgrund eines Eilgangsatzes
CIR_MODE=.. | Festlegung Überschleifen von Kreisbewegungen: 0 : Kein Überschleifen von Kreissätzen G02/G03. 1 : Überschleifen von Kreissätzen. (Standard) 2 : Überschleifen von Kreissätzen und Optimierung von langen Kreissätzen Verfügbar ab V3.1.3075.01
CIR_MIN_ANGLE=.. | Festlegung des minimalen Kreiswinkels Gültige Werte: >= 0.0 : Minimaler Kreiswinkel in Grad Der minimale Kreiswinkel bestimmt, ab welchem Kreiswinkel Zirkularbewegungen durch das Verfahren mittels exakter Interpolation abgefahren werden. Kreissätze mit kleinerem überstrichenem Winkel werden durch eine Splinekurve für die schnellere Bearbeitung approximiert. (Standardwert = 30°)
CIR_MIN_RADIUS=.. | Festlegung des minimalen Kreisradius Gültige Werte: >= 0.0 : Minimaler Kreisradius in [mm, inch *] Der minimale Kreisradius bestimmt, ab welchem Kreisradius Zirkularbewegungen durch das Verfahren mittels exakter Interpolation abgefahren werden. Kreissätze mit kleinerem Radius oder in der Größenordnung von PATH_DEV werden durch eine Splinekurve approximiert.

Verfügbar ab V3.1.3075.01

MERGE=.. | Zusammenfassen der Sätze. Die max. Abweichung wird entsprechend der Werte aus PATH_DEV und TRACK_DEV bestimmt. 0: Kein Zusammenfassen von Sätzen (Standard) 1: Zusammenfassen von Sätzen
LENGTH_LONG_CIR=.. | Mindestlänge der Kreissegmente für lange Kreissätze bei Verwendung von CIR_MODE= 2 in [mm, inch *] (Standardwert = 2) Verfügbar ab V3.1.3075.01
| *bei aktivem P-CHAN-00439

## Standardwerte der Freiformflächenbearbeitung

PATH_DEV | 0.2mm (Standardwert von PATH_DEV)
TRACK_DEV | 2° (Standardwert von TRACK_DEV)
PATH_DEV_G00 | PATH_DEV
TRACK_DEV_G00 | TRACK_DEV
CIR_MODE | 1
MAX_ANGLE | 160°
CHECK_JERK | Es gilt der Kanalparameter P-CHAN-00110 (check_jerk_on_poly_path, Standardwert = 1)
AUTO_OFF_G00 | 0
CIR_MIN_ANGLE | 30°
CIR_MIN_RADIUS | 0.0
LENGTH_LONG_CIR | 2mm

## Hinweis

Die Parameter können auch in mehreren Schritten angegeben werden. Z.B. ist es möglich, zunächst die maximale Abweichung von der Kontur ("PATH_DEV ") anzugeben und in einem 2ten Befehl dann die Rucküberwachung ("CHECK_JERK") und die Anwahl der HSC-Surfaceinterpolation ("ON") festzulegen.

## Hinweis

Bei Verwendung von #HSC[SURFACE] wird empfohlen gleichzeitig für die Bahngeschwindigkeitsplanung den #SLOPE[TYPE=HSC] zu nutzen.

## Achtung

Die Parametrierung kann während aktiver Glättung nicht geändert werden.

Voraussetzung für die Nutzung dieser Funktionalität ist die Parametrierung in der Hochlaufliste für jeden Kanal, in dem die Funktion verwendet werden soll.

## Programmierbeispiel

Oberflächenbearbeitung mit Surface Optimizer

Beispiel für die Einstellung in der Hochlaufliste:

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

N20 G00 X0 Y0 Z0 F10000

;Parametrierung + Anwahl

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 Programmierung:

N20 G00 X0 Y0 Z0 F10000

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

N30 #HSC ON ;Anwahl

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