I have an idea! Please tell me if this has already been done.

If I set a home switch at the XY home location and then allow the Z axis to lower the tool bit down onto the switch (which would be Z home) then load the DRO with the offset of the switch, then no matter what tool I load or how I load it my Z0 would automatically be correct.

I am using Mach3 so I would need to be able to specify that the Z homes last, even better I would be able to specify an XY location for the Z referencing process so that the switch could be on the least used area of my table.

Could this work? Has it already been done and I'm just rubbish with the search feature??