The difference in mill height is why I thought the automation would be helpful (I see other people use blocks to achieve the same thing, but I thought I’d rather spend time up-front on accuracy than have to do it on every cut). Hoping not to have a laptop connected once set up.
I see what you’re saying about the tool paths, but I was hoping to have the stops right at the start of the X & Y axes (they would be moveable, with a touchplate for z, but for the most part kept in the same place regardless of the position of the workpiece).
So to start a piece, I would clamp it down, then set the tool manually to my origin — say the top lower left corner of the workpiece. This will likely be somewhere in the middle of the work area, well out of the way of the end stops, so tool paths should not trigger them.
Why can’t the head then auto-home — finding the end stops and finding z on the touchplate. But instead of setting this as (0,0,0), it would simply remember where this was in respect of my origin — for example X:-100, Y:-80, Z:-10.
Then when it comes time to change the bit, it doesn’t matter if the new mill is a different height, or if I accidentally shift things — it can find home again, and from there, it would know that my origin is at +100x, +80y and +10z from its current homed position, since the workpiece hasn’t moved with respect to the home position.
Does that make sense?
If so, I’m not sure how to generate g-code to achieve that, since it appears to be stateless (no facility to “remember” saved positions).