I have a MB6HC running 3.5beta3 in CNC mode and use a custom M6.g file to handle tool changes. My issue is with M291 commands not blocking as expected when M6 is called during a job. My macro has 3 M291 calls to pause the script at various points and allow me to manually change the tool and use a stationary bitsetter to adjust my WCS Z.
; M6 Call for tool change
G53 G1 Z{move.axes[2].max-1} F1200 ; Move to Z Max-1
M11 ;Turn off Vac
M291 P"Tool Change" R"Move to BtStr" S3 ;Start Confirmation
; ---Move to BitSetter---
G53 G1 X{global.BtStrXLoc} Y{global.BtStrYLoc} F4000 ; Move to BitSetter location
; ---Probing---
M291 P"Tool Change" R"Probe new tool" S3 Z1 ;Start Bitsetter Probe Confirmation
M208 S1 Z0 ; reset Z-axis limits before probe
G38.2 K0 Z-120 F100 ;(BitSetter Probe 0)
G10 L20 P9 Z{global.BtStrZTrig} ;Set SB-Z=0 in WCS 9
; ---Set tool offsets---
G91
G1 Z15 F500 ;Clear the top
G90 ; Absolute positioning
G10 K1 L20 Z{global.BtStrZTrig+15} ;Set WCS Z0
G53 G1 X{global.BtStrXLoc+25} Y{global.BtStrYLoc+40} F4000 ;Clear the Button XY
G53 G1 Z{move.axes[2].max-1.5} F1200 ; Move to Z Max - 1.5
M208 S1 Z{move.axes[2].workplaceOffsets[0]} ; Set Zmin to Probe SB=0 From new WCS Z
M291 P"Tool Change" R"Resume" S3 ;CONFIRM SET WCS XY
M10 ;Turn on Vac
If the macro is run while the machine is idle It behaves as expected, but if it is called durning a job, the macro behaves as if only the last M291 is blocking, and the first two are run as if they where a non blocking type. I have tried various M400 calls without luck. I even split the macro into tfree,tpre, and tpost (instead of M6) each with it's own M291 and it behaves exactly the same. Is there some kind of formatting error I am missing? Why is this working while idle?