Vergrößern/Verkleinern von Konturen (#SCALE ON/OFF)
Mit dem Befehl #SCALE können Konturen bzw. Positionen durch die Angabe achsspezifischer Faktoren maßstäblich vergrößert bzw. verkleinert werden. Die Angabe unterschiedlicher Faktoren erlaubt hierbei auch Dehnungen bzw. Stauchungen von Konturen.
Die Skalierung wirkt auf
- Bahnachsen (Linearachsen, z.B. X, Y, Z, U, V, W)
- Positionierachsen (unabhängige Achsen, Pendelachsen).
Verschiebungen werden generell nicht skaliert, unabhängig davon, ob die Anwahl oder Programmierung der Verschiebung vor oder nach #SCALE ON erfolgt.
Die skalierten Werte werden immer auf den Nullpunkt des aktuell aktiven Koordinatensystems bezogen. Insbesondere bei der Beschreibung der Kontur in Absolutkoordinaten wird empfohlen, vor Anwahl der Skalierung den Nullpunkt durch die entsprechenden G-Funktionen G53...G57, G159, G92 oder durch die Funktionen zur Definition von gedrehten Koordinatensystemen #ROTATION und #CS auf den Startpunkt der Kontur zu legen.
Syntax |
#SCALE [ON] <Achsname>.. { <Achsname>.. } |
#SCALE OFF |
ON | Skalierung aktivieren |
OFF | Skalierung deaktivieren |
<Achsname>.. | Achsspezifische Skalierungsfaktoren. Der Faktor muss > 0 sein. Bei Faktoren ≤ 0 erfolgt die Ausgabe einer Fehlermeldung. |
Hinweis
Die Festlegung der Skalierungsfaktoren und die Anwahl können gemeinsam oder in separaten Schritten angegeben werden. Das heißt, es ist z.B. möglich, zunächst die Skalierungsfaktoren zu definieren und in einem zweiten Befehl dann die Skalierung zu aktivieren.
Die programmierten Skalierungsfaktoren bleiben bis zum Programmende mit M30 gespeichert und können bei mehrfachem #SCALE ON / OFF erneut verwendet werden.
Achtung
Die Skalierungsfaktoren können bei abgewählter Skalierung geändert werden.
Eine Änderung der Skalierungsfaktoren bei aktiver Skalierung führt zur Ausgabe einer Fehlermeldung.
Bei der Kombination von Skalierung und Kreisprogrammierung ist folgendes zu beachten:
- Die Skalierung von Kreisen ist nur sinnvoll, wenn die Skalierungsfaktoren der an der Kreisinterpolation beteiligten Achsen gleich sind. Dies gilt insbesondere für die Programmierung von Kreisen mir Radiusangabe über R oder G163, da hier der Faktor für den Radius auf dem mit "X" programmierten Skalierungsfaktor basiert.
- Bei der Kreisprogrammierung mit I, J, K sind auch unterschiedliche Skalierungsfaktoren möglich; - diese führen im Normalfall jedoch zu Fehlern in der Kreismittelpunktskorrektur bzw. zu Kreissegmenten ohne praktische Bedeutung.
Programmierbeispiel
Vergrößern und Verkleinern von Konturen
;Skalieren einer absolut programmierten Kontur mit gleichen Faktoren
%L Cont1_abs
N01 G01 G90 F2000
N02 X90 Y0
N03 G301 I20
N04 X90 Y120
N05 G302 I20
N06 X50 Y120
N07 X50 Y100
N08 X40 Y100
N09 G03 X0 Y100 I-20 J0
N10 G01 X0 Y20
N11 G03 X20 Y0 R20
N13 M17
%scale
N015 G53
N020 G00 X0 Y0 Z0
N065 LL Cont1_abs ; Basiskontur
N075 #SCALE X0.5 Y0.5 ;Definition der Skalierungsfaktoren
;Definition des Nullpunktes der skalierten Kontur
N085 V.G.NP[1].V.X = 30
N090 V.G.NP[1].V.Y = 20
N095 G54
N100 G90 G0 X0 Y0 Z0
N105 #SCALE ON
N110 LL Cont1_abs
N115 #SCALE OFF
N140 M30
;Skalieren einer absolut programmierten Kontur mit unterschiedlichen ;Faktoren
%L Cont1_abs
N01 G01 G90 F2000
N02 X90 Y0
N03 G301 I20
N04 X90 Y120
N05 G302 I20
N06 X50 Y120
N07 X50 Y100
N08 X40 Y100
N09 G03 X0 Y100 I-20 J0
N10 G01 X0 Y20
N11 G03 X20 Y0 R20
N13 M17
%scale
N015 G53
N020 G00 X0 Y0 Z0
N065 LL Cont1_abs ; Basiskontur
N075 #SCALE X0.6 Y0.3 ;Definition der Skalierungsfaktoren
;Definition des Nullpunktes der skalierten Kontur
N085 V.G.NP[1].V.X = 30
N090 V.G.NP[1].V.Y = 20
N095 G54
N100 G90 G0 X0 Y0 Z0
N105 #SCALE ON
N110 LL Cont1_abs
N115 #SCALE OFF
N140 M30
;Mehrfaches unterschiedliches Skalieren einer relativ programmierten
;Kontur
%L Cont1_rel
N01 G01 G91 F2000
N02 X90 Y0
N03 G301 I20
N04 X0 Y90
N05 G302 I20
N06 X-40 Y0
N07 X0 Y-20
N08 X-10 Y0
N09 G03 X-40 Y0 I-20 J0
N10 G01 X0 Y-50
N11 G03 X20 Y-20 R20
N13 M17
%scale
N015 G53
N020 G00 X0 Y0 Z0
; Basiskontur
N030 LL Cont1_rel
N040 #SCALE X0.3 Y0.3 ;Definition 1 der Skalierungsfaktoren
;Definition 1 des Startpunktes der skalierten Kontur
N055 G90 G0 X10 Y50
N060 #SCALE ON
N065 LL Cont1_rel
N070 #SCALE OFF
N075 G90 G00 X20 Y0
N085 #SCALE X0.5 Y0.5 ;Definition 2 der Skalierungsfaktoren
;Definition 1 des Startpunktes der skalierten Kontur
N100 G90 G0 X40 Y10
N105 #SCALE ON
N110 LL Cont1_rel
N115 #SCALE OFF
N125 M30
;Skalieren einer Kontur in einem mit #CS verschobenem und gedrehten
;Koordinatensystem
%L Cont1_rel
N01 G01 G91 F2000
N02 X90 Y0
N03 G301 I20
N04 X0 Y90
N05 G302 I20
N06 X-40 Y0
N07 X0 Y-20
N08 X-10 Y0
N09 G03 X-40 Y0 I-20 J0
N10 G01 X0 Y-50
N11 G03 X20 Y-20 R20
N13 M17
%scale
N015 G53
N020 G00 X0 Y0 Z0
; Basiskontur
N030 LL Cont1_rel
N040 #SCALE X0.6 Y0.6 ;Definition der Skalierungsfaktoren
N045 #CS ON [40,5,0,0,0,20]
N055 G90 G0 X0 Y0
N060 #SCALE ON
N065 LL Cont1_rel
N070 #SCALE OFF
N0525 #CS OFF
N125 M30
;Skalieren eines Halbkreises, programmiert mit I, J
%L Circle1
G02 G91 X80 Y80 I40 J40
M17
%scale
N015 G53
N020 G00 X0 Y0 Z0
N025 G01 X10 Y10 F1000
; Basishalbkreis
N030 LL Circle1
N040 #SCALE X0.7 Y0.7 ;Definition der Skalierungsfaktoren
N055 G90 G0 X10 Y10
N060 #SCALE ON
N065 LL Circle1
N070 #SCALE OFF
N075 G90 G0 X0 Y0
M30
;Skalieren eines Halbkreises, programmiert mit R
%L Circle2
G03 R33 X-66 Y0
M17
%scale
N015 G53
N020 G00 X0 Y0 Z0 F1000
; Basishalbkreis
N030 LL Circle2
N040 #SCALE X1.5 Y1.5 ;Definition der Skalierungsfaktoren
N055 G90 G0 X10 Y10
N060 #SCALE ON
N065 LL Circle2
N070 #SCALE OFF
N075 G90 G0 X0 Y0
M30
;Unsymmetrisches Skalieren eines Halbkreises, programmiert mit I, J
%L Circle1
G02 G91 X80 Y80 I40 J40
M17
%scale
N015 G53
N020 G00 X0 Y0 Z0
N025 G01 X10 Y10 F1000
; Basishalbkreis
N030 LL Circle1
N040 #SCALE X0.3 Y0.8 ;Definition der Skalierungsfaktoren
N055 G90 G0 X10 Y10
N060 #SCALE ON
N065 LL Circle1
N070 #SCALE OFF
N075 G90 G0 X10 Y10
M30