Rut Roh...
I've been digging into the details of the MSM M6 handling (1st written about 5 or 6 years ago now) and I found some comments that
explain what is happening...
From the MSM internal M6 handling code:
" ' MachV3 note: this macro does not preserve the G00/G01 state.
' There is no way to get G00/G01 in VB in Mach3V3.
' V4 will provide the missing calls and the V4 version of this routine will be updated to preserve the G00/G01 state. "
Of course, 5 years ago Mach 4 was "any day now"...
So then I looked at the last motion mode set by MSM's m6 handling and found that it is G00.
So MSM's M6 handling is NOT preserving the G00/G01/02/03 state as it should. That is a bug from my viewpoint.
But I don't think I can fix it... Since I can't get the G00/G01/2/3 state from mach, I can't save it and restore it on exit.
I'm left with a choice of what motion state to leave things in at the end of M6 handling - no matter what I pick it will be wrong for some cases.
The proper technical fix would be to add a call to mach to get the motion state - but I know that ain't gunna happen for mach 3.
The reason things work on 1024 is that the stock M6Start and M6End scripts don't do any thing that changes the motion mode.
You Cam post processor is making a good assumption and emitting optimized code - alas, the MSM tool change is breaking the assumption.
Dave