Yes, the “overlay” is one way to see it, they are just two different coordinate systems, one X/Y/Z translation away from each other.
“Machine” position is just how far away it is from the homing point in the far right corner. Due to the definition of the axes, machine position will always be a set of negative values.
“Work” position is relative to the Zero reference currently set
Carbide Motion by itself does not interpret what the machine does relative to position of the zeroes, it does what the G-code tells it to do, but indeed 99.9% of the time this happens to be “move to that position relative to the zero”, since that’s what the CAM generates. But there are a few commands that will use absolute (machine) coordinates, for example that line that Carbide Create puts in at the beginning of each file
(Move to safe Z to avoid workholding)
G53G0Z-5.000
The G53 before the G0 tells CM/the machine to consider that the “-5.000” is an absolute position (top of the Z minus 5mm), but it applies for that one line only.
Coming back to the original topic:
- there is a common trick to minimize the repositioning errors after homing, which is to push and hold the machine’s axes against the plates and power on the machine. This should ensure that the homing starts from the exact same physical position.
- when one knows that the job will have to be done in multiple sessions, powering off the machine between sessions, then one can plan to add something in the design / in the piece itself to be able to re-zero off the piece each time (which is often not possible by default, since one often mills away the initial zeroing point). For example, use stock larger than required, and plan to keep a part of it (corner, hole, anything that can be used to re-zero later) untouched by the multiple jobs.
- if one has a spindle/VFD on their machine, then it opens up the possibility to use edge finders (that are not compatible with routers since they have a max RPM of ~1000), and more than a few times I was able to salvage a job after a mishap, by re-zeroing off edges, as in this thread.