The macros I'm running were written by Gerry (Ger21) and contain the required While IsMoving() ... Wend code. I did, however, add a sleep 100 in each loop to give windows a chance to grab some clock cycles, although this is probably not necessary in Windows XP, which does multi-tasking properly (unlike earlier versions of Windows prior to NT).
I thought I'd got this fixed, but just done some more testing and I'm losing steps as the G31 is executing. If I move the tool to Z100 (work units) and execute G90 G31 Z20 F300 the tool moves downwards, but with lots of missed steps until it hits the plate, when it stops. If I move back to Z100 and execute G90 G01 Z20 F300 the tool moves downwards smoothly with no missed steps. This problem now seems to have nothing to do with macros. For some reason the G31 can't reliably move in Z without losing steps.
I've tried Mach3 version 3.043.062, but that didn't fix the problem and I'm currently on .057, so I'll go back to .058 and see if that is any better.
Jeff, is there anything in the config of Mach3 or the SmoothStepper that I should look at?
TIA