Enlarging/reducing contours (#SCALE ON/OFF))
The #SCALE command can enlarge or reduce the scales of contours or positions by specifying axis-specific factors. When different factors are specified, it also permits the expansion or compression of contours.
Scaling acts on
- Path axes (linear axes, e.g. X, Y, Z, U, V, W)
- Positioning axes (independent axes, oscillating axes).
Offsets are generally not scaled, regardless of whether an offset is selected or programmed before or after #SCALE ON.
Scaled values always refer to the zero point of the currently active coordinate system. In particular when a contour is described in absolute coordinates, you are advised, before selecting the scaling, to place the zero point on the starting point of the contour by means of the appropriate G functions G53 to G57, G159, G92 or by the functions for defining the rotated coordinate systems #ROTATION and #CS.
Syntax: |
#SCALE [ON] <axis_name>.. { <axis_name>.. } |
#SCALE OFF |
ON | Activate scaling |
OFF | Deactivate scaling |
<axis_name>.. | Axis-specific scaling factors. The factor must be > 0. An error message is issued if factors are ≤ 0. |
Notice
The definition of scaling factors and their selection can be specified together or in separate steps. This means that it is possible, for example, to define the scaling factors first and then to activate scaling in a second command.
The programmed scaling factors remain stored up by M30 to program end and can be used again if #SCALE ON/OFF is used several times.
Attention
The scaling factors can be modified when scaling is deselected.
Modifying the scaling factors while scaling is active leads to the output of an error message.
The following must be noted when scaling and circle programming are combined:
- Scaling circles only makes sense if the scaling factors of the axes involved in circular interpolation are identical. This applies in particular to programming circles with radius specification via R or G163 because the factor for the radius is based here on the scaling factor programmed with "X".
- When circles are programmed with I, J, K, different scaling factors are also possible; - then, however, they normally cause errors in the circle centre point correction or create circle segments without any practical meaning.
Programing Example
Enlarge and reduce contours
;Scale an absolute programmed contour with identical factors
%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 ; Basic contour
N075 #SCALE X0.5 Y0.5 ;Definition of scaling factors
;Definition of zero point origin of the scaled contour
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
;Scale an absolute programmed contour with different ;factors
%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 ; Basic contour
N075 #SCALE X0.6 Y0.3 ;Definition of scaling factors
;Definition of zero point origin of the scaled contour
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
;Multiple different scaling of a relative programmed
;contour
%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
; Basic contour
N030 LL Cont1_rel
N040 #SCALE X0.3 Y0.3 ;Definition 1 of scaling factors
;Definition 1 of starting point of the scaled contour
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 of scaling factors
;Definition 1 of starting point of the scaled contour
N100 G90 G0 X40 Y10
N105 #SCALE ON
N110 LL Cont1_rel
N115 #SCALE OFF
N125 M30
;Scale a contour in a coordinate system which is shifted and
rotated with #CS
%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
; Basic contour
N030 LL Cont1_rel
N040 #SCALE X0.6 Y0.6 ;Definition of scaling factors
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
;Scale a semicircle, programmed with I, J
%L Circle1
G02 G91 X80 Y80 I40 J40
M17
%scale
N015 G53
N020 G00 X0 Y0 Z0
N025 G01 X10 Y10 F1000
; Basic semicircle
N030 LL Circle1
N040 #SCALE X0.7 Y0.7 ;Definition of scaling factors
N055 G90 G0 X10 Y10
N060 #SCALE ON
N065 LL Circle1
N070 #SCALE OFF
N075 G90 G0 X0 Y0
M30
;Scale a semicircle, programmed with R
%L Circle2
G03 R33 X-66 Y0
M17
%scale
N015 G53
N020 G00 X0 Y0 Z0 F1000
; Basic semicircle
N030 LL Circle2
N040 #SCALE X1.5 Y1.5 ;Definition of scaling factors
N055 G90 G0 X10 Y10
N060 #SCALE ON
N065 LL Circle2
N070 #SCALE OFF
N075 G90 G0 X0 Y0
M30
;Asymmetrical scaling of a semicircle programmed with I, J
%L Circle1
G02 G91 X80 Y80 I40 J40
M17
%scale
N015 G53
N020 G00 X0 Y0 Z0
N025 G01 X10 Y10 F1000
; Basic semicircle
N030 LL Circle1
N040 #SCALE X0.3 Y0.8 ;Definition of scaling factors
N055 G90 G0 X10 Y10
N060 #SCALE ON
N065 LL Circle1
N070 #SCALE OFF
N075 G90 G0 X10 Y10
M30