rendered paste bodyG-code (line numbers of O-words should match settings-seq)
1
2 o<toolchange> sub
3
4 M19 R0 ;align the spindle
5
6 ; only unload the tool if there is a tool in the spindle
7 ; This assumes that the carousel is already aligned correctly.
8 ; It is important to unload the tool before shutting down the machine.
9
10 O100 IF [#<tool_in_spindle> GT 0]
11 G53 G0 Z -100
12
13 M64 P2 ; move arm in
14 M66 P2 L3 Q5 ; wait for arm-in = true
15 O104 if [#5399 LT 0]
16 (abort, failed to move arm in)
17 O104 endif
18
19 M64 P3 ; release tool
20 M66 P3 L3 Q2 ; wait for tool-released = true
21 O105 if [#5399 LT 0]
22 (abort, failed to release tool)
23 O105 endif
24
25 O100 ENDIF
26
27 G53 G0 Z0
28
29 O200 IF [#<selected_tool> GT 0]
30
31 M65 P1 ; unlock carousel
32 M66 P1 L4 Q1 ; wait for locked=false
33 O106 if [#5399 LT 0]
34 (abort, failed to unlock carousel)
35 O106 endif
36
37 M68 E0 Q#<selected_pocket> ;set the carousel to move to the right pocket
38
39 M64 P0 ; start carousel
40 G4 P2
41 M66 P0 L3 Q60 ; wait for carousel finished
42 O107 if [#5399 LT 0]
43 (abort, failed to align carousel)
44 O107 endif
45 M65 P0; stop carousel
46 M64 P1 ; lock carousel
47 M66 P1 L3 Q1 ; wait for locked=true
48 O108 if [#5399 LT 0]
49 (abort, failed to lock carousel)
50 O108 endif
51
52 M64 P2 ; move arm in (might already be in)
53 M66 P2 L3 Q5 ; wait for arm-in = true
54 O109 if [#5399 LT 0]
55 (abort, failed to move arm in)
56 O109 endif
57
58 G53 G0 Z-100 ; pick up the tool
59
60 O200 ENDIF
61
62 M65 P3 ; clamp tool
63 M66 P3 L4 Q2 ; wait for tool-released = false
64 O110 if [#5399 LT 0]
65 (abort, failed to clamp tool)
66 O110 endif
67
68 M65 P2 ; move arm back out
69 M66 P4 L3 Q5 ; wait for arm-out = true
70 O111 if [#5399 LT 0]
71 (abort, failed to move arm in)
72 O111 endif
73
74
75 o<toolchange> endsub [1]
76
77
78 M2
Log with the fix
switch- toolchange O_call
switch- toolchange O_sub
settings->seq 2 looking for toolchange
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange O_none
switch- toolchange#100 O_if
settings->seq 10 looking for toolchange#100
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 10 looking for toolchange#100
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#100 O_endif
settings->seq 25 looking for toolchange#100
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 242 sequence - 9 repeat--1
switch- toolchange#100 O_none
switch- toolchange#200 O_if
settings->seq 29 looking for toolchange#200
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 29 looking for toolchange#200
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- (null) O_none
switch- toolchange#106 O_if
settings->seq 32 looking for toolchange#106
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 32 looking for toolchange#106
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#106 O_endif
settings->seq 34 looking for toolchange#106
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 731 sequence - 31 repeat--1
switch- toolchange#106 O_none
switch- (null) O_none
switch- toolchange#107 O_if
settings->seq 41 looking for toolchange#107
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 41 looking for toolchange#107
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#107 O_endif
settings->seq 43 looking for toolchange#107
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 978 sequence - 40 repeat--1
switch- (null) O_none
switch- toolchange#108 O_if
settings->seq 47 looking for toolchange#108
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 47 looking for toolchange#108
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#108 O_endif
settings->seq 49 looking for toolchange#108
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1153 sequence - 46 repeat--1
switch- toolchange#108 O_none
switch- (null) O_none
switch- toolchange#109 O_if
settings->seq 53 looking for toolchange#109
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 53 looking for toolchange#109
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#109 O_endif
settings->seq 55 looking for toolchange#109
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1324 sequence - 52 repeat--1
switch- toolchange#109 O_none
switch- toolchange#200 O_endif
settings->seq 59 looking for toolchange#200
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 629 sequence - 28 repeat--1
switch- toolchange#200 O_none
switch- (null) O_none
switch- toolchange#110 O_if
settings->seq 63 looking for toolchange#110
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 63 looking for toolchange#110
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#110 O_endif
settings->seq 65 looking for toolchange#110
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1520 sequence - 62 repeat--1
switch- toolchange#110 O_none
switch- (null) O_none
switch- toolchange#111 O_if
settings->seq 69 looking for toolchange#111
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 69 looking for toolchange#111
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#111 O_endif
settings->seq 71 looking for toolchange#111
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1653 sequence - 68 repeat--1
switch- toolchange#111 O_none
switch- toolchange#111 O_none
switch- toolchange O_endsub
switch- toolchange O_call
switch- toolchange O_sub
switch- toolchange O_none
switch- toolchange#100 O_if
settings->seq 10 looking for toolchange#100
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 242 sequence - 9 repeat--1
switch- (null) O_none
switch- toolchange#104 O_if
settings->seq 15 looking for toolchange#104
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 15 looking for toolchange#104
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#104 O_endif
settings->seq 17 looking for toolchange#104
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 366 sequence - 14 repeat--1
switch- toolchange#104 O_none
switch- (null) O_none
switch- toolchange#105 O_if
settings->seq 21 looking for toolchange#105
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
settings->seq 21 looking for toolchange#105
type - (null) file - (null) offset - 1073741824 sequence - 0 repeat-0
switch- toolchange#105 O_endif
settings->seq 23 looking for toolchange#105
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 521 sequence - 20 repeat--1
switch- toolchange#105 O_none
switch- toolchange#100 O_endif
settings->seq 25 looking for toolchange#100
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 242 sequence - 9 repeat--1
switch- toolchange#100 O_none
switch- toolchange#200 O_if
settings->seq 29 looking for toolchange#200
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 629 sequence - 28 repeat--1
switch- (null) O_none
switch- toolchange#106 O_if
settings->seq 32 looking for toolchange#106
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 731 sequence - 31 repeat--1
switch- toolchange#106 O_endif
settings->seq 34 looking for toolchange#106
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 731 sequence - 31 repeat--1
switch- toolchange#106 O_none
switch- (null) O_none
switch- toolchange#107 O_if
settings->seq 41 looking for toolchange#107
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 978 sequence - 40 repeat--1
switch- toolchange#107 O_endif
settings->seq 43 looking for toolchange#107
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 978 sequence - 40 repeat--1
switch- (null) O_none
switch- toolchange#108 O_if
settings->seq 47 looking for toolchange#108
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1153 sequence - 46 repeat--1
switch- toolchange#108 O_endif
settings->seq 49 looking for toolchange#108
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1153 sequence - 46 repeat--1
switch- toolchange#108 O_none
switch- (null) O_none
switch- toolchange#109 O_if
settings->seq 53 looking for toolchange#109
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1324 sequence - 52 repeat--1
switch- toolchange#109 O_endif
settings->seq 55 looking for toolchange#109
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1324 sequence - 52 repeat--1
switch- toolchange#109 O_none
switch- toolchange#200 O_endif
settings->seq 59 looking for toolchange#200
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 629 sequence - 28 repeat--1
switch- toolchange#200 O_none
switch- (null) O_none
switch- toolchange#110 O_if
settings->seq 63 looking for toolchange#110
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1520 sequence - 62 repeat--1
switch- toolchange#110 O_endif
settings->seq 65 looking for toolchange#110
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1520 sequence - 62 repeat--1
switch- toolchange#110 O_none
switch- (null) O_none
switch- toolchange#111 O_if
settings->seq 69 looking for toolchange#111
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1653 sequence - 68 repeat--1
switch- toolchange#111 O_endif
settings->seq 71 looking for toolchange#111
type - O_if file - /home/andypugh/linuxcnc-dev/configs/sim/axis/vismach/VMC_toolchange/toolchange.ngc offset - 1653 sequence - 68 repeat--1
switch- toolchange#111 O_none
switch- toolchange#111 O_none
switch- toolchange O_endsub
Shutting down and cleaning up LinuxCNC...