M5
M9
G28.3 A0
(Tool length measure macro)
(#20 is fast speed motion length)
(#5421...#5428 - Work area Min)
(#5431...#5438 - Work area Max)
(#5471...#5479 - Tool Length Sensor position)
#100= 800.0 (Speed XY - same in M6)
#101= 800.0 (Speed Z)
#102=  10.0 (Speed A)
#20=0
( Machine coordinates of the sensor: )
#5471= -17.5
#5472= -58.58
#5473= -60.0    (This is for Max Bit Length = 35 mm)
#5477=  22.5    (Max distance to move up and down from Z of Tool Length Sensor)
#5478=   3.5    (Bit radius plus inaccuracy)
( Optic: v )
#10= 5 ( sensor Nr )
#11= 1 ( sensor Normally open )
#12= 0 ( sensor Normally open )
#21=150 ( Slow Speed XYZ)
( Optic: ^ )
;G28.2 X0 Y0 Z0 A0 (save current position into Register1.Z)
(Move up to safe position, then to the sensor:)
G53 G90 G0 Z[#5433-1.0] F#101
;M133    ; home Z - for test
G53 G90 G0 X[#5471] Y[#5472] F#100
M3 S25000
M88 P#10 L#11 ( smooth stop if sensor pressed )
G53 G90 G0 Z[#5473-#5477] F#101
G91     G0 Z-2            F#21    ( 2 mm lower )
G91     G0 Y[0-#5478]     F#100   ( 3.5 mm left from the sensor )

( Optic: v )
( Y axis )
M88 P#10 L#11 ( smooth stop if sensor pressed )
G91 G0 Y[#5478+#5478] F#21
G04 P0.1
G10 L81 P100 Q5022 ( store Y1 position in reg Nr101 )
G53 G90 G0 Y[#5472+#5478] F#101 (fast move 3.5 mm right from the sensor)
M88 P#10 L#11 ( smooth stop if sensor pressed )
G91 G0 Y[0-#5478-#5478] F#21
G04 P0.1
G10 L81 P101 Q5022 ( store Y2 position in reg Nr101 )
G10 L81 P102 Q100 ( #102 = Y1 )
G10 L190 P102 Q101 ( #102 += Y2 )
G10 L183 P102 Q2 ( #102 /= 2 )
;G10 L190 P102 Q31 ( #102 += offsetY )
G91 G28.9 Y102 F#21 ( move to the middle Y )
G04 P0.1

N100
;G53 G0 Z[#5473+10] Y#5472 F#101 (move to Tool Sensor Position)
;M134    (Home A)
;G91 G0 Z[0-#20] F#100
N200
M88 P#10 L#12 ( smooth stop if sensor pressed )
G53 G90 G0 Z[#5473+#5477] F#21
G0  G91    Z2             F#21
G53 G90 G38.9 Z[#5473-#5477] F#21
G04 P0.1
N300
G53 G90 G0 Z[#5433-1.0] F#101
(Move up to safe position)
M05
;G53 G90 G28.5 F#101 X0 Y0(move back to saved XY/Register1.XY)
;G53 G90 G28.5 F#102 A0   (move back to saved A)
;G53 G90 G0 G28.5 Z0 F#100
(move down to saved Z/Register1.Z)
(G28.6 A0 - ne rabotaet)
;M02

