yes, yes, and yes

) There a hundreds of way's to this, tailor this, or implement whatever you want. True Daz, I would enable the button or execute the movement to position zero 'if axisIsHomed then...." execute gCode movement just to be safe else if the call was executed before all axes are referenced then the positioning might be off. Example, x axis is binding (with stepper motors) and DROs continue movement. When I stop movement and then Goto Zero before homing my axes, the positioning will be off. I know you know but just in case someone new might like an example. Senior and experienced operators know this and would not need such a conditional statement. But m4 is so easy and flexible, why not!
...it is a lot of screen changing for an MDI input? It is one click, enter block of instructions, press cycle start...oh it's sooo hard! haha, just kidding. You can create a button and label it say 'Offset 3' and you can execute movement to your offset position, or create offset registers and reference those registers in the button to goto that position, or create a DRO that accepts manual input and read that input as a string value variable (screen get property call) and execute gCode movement from there (I think that may be what you are asking...that's a good project, I'll work on it for a bit and let ya know...great idea
