Using Mach3 in combination with 2010Screenset my tool changes are semi-automatic. An initial Z-zero probe also probes a fixed block. The offset between the initial z-zero and the height of the fixed block is stored internally. Subsequent tool changes are with two macros. The first brings the spindle to a tool change position and stops the spindle. The second probes the fixed block and sets the offset based on the previous probes, starts the spindle, and continues the job. This type of routine would be helpful in automatic tool changes as well as it would obviate the necessity to set tool height in the tool list.