Had this problem for some time, enough to stop doing tool changes. But i need to fix whatever is wrong and get back to programmed tool changes. I'm running Mach4 V4.2.0.3233 and an ESS. I've moved to BT30 tool holders in my spindle on a vertical mill, but do manual tool changes. I'm using the unmodified M06 macro and that seems to work as it should, I program x, y and z moves to move the spindle up and over for tool changes, not relying on movement via the M06 macro. I have T set as tool in use in Mach options and tool changes go as expected. I also have a fully populated tool catalog with all the proper lengths for all my tools as measured by my off line tool pre-setter. Once the G43 has moved the spindle to the height as specified by the tool heights in the tool catalog, they are all positioned correctly.
However, after the tool change via M06 and hitting cycle start to signify the tool has been changed, the G43 causes a rapid downward movement to near my current Z0, then quickly back up to accomplish the tool height change. This occurs whether the new tool is longer or shorter than the last. This does not happen when all this same code is keyed in the mdi and ran from there, the only movement from that is to shift the spindle up or down according to the change in tool height from the previous tool.
Today, I'm so spooked by programmed tool changes, I'm probably taking them out again so I can cut parts. But this ought to be solvable I'd think. I have come to the conclusion it's not related to the M06 macro or any lines of code prior the G43. My G43's are always the same format...G43 Zx.x Hx, they are always added by my programming software, most always follow an x-y move, but lately I've been moving the G43 prior to those moves to avoid the cutter rapiding into my part. And yes it will do that for every tool change unless I take some action, mostly adding in a x or y move to get the part and vise shifted out of harms way. Moving the z up higher doesn't help. Just seems to give it more time to accelerate into the part.
Hopefully this descriptions clear enough for a good understanding of my problem and hopefully too, someone has seen and conquered this problem. I can share whatever might be helpful if requested.
Regards
Bob