@Sliptonic, we likely need a simple toggle in the post-processor area to remove(ignore) Z travel commands from post-processing for waterjet, laser, and other fixed-Z-height applications.
Currently this would be a new post processor. Just a switch for lasers could be sensible, but then I would rather promote a more global view on the post processors. They all share very similar structure and functions and I would like to unify them further. This is not an easy task to find the right way between code doubling and make it all configurable - in theory it is easy, but configuring can be so complicated that it is worse and more obscuring than the doubling.
It should be entirely in post-processing, otherwise we need other options coded in.
When would we need to fix Z height:
1. For 2D cutting applications, to remove retracts.
2. For 3D application. Except in that case, why is the user using 3D at all? He wants some parameter of the machine to follow the depth of a surface. With energy beams (Laser/AWJ/...) That would be feedrate or power for example. But if you remove Z arguments, your code is now flat, the machine loses all information related to depth.
That's why i believe it should be post-processed. The beam post-processor needs an option to remove retracts, they are all in G0 so easily modified with regex routined. And an option to convert Z into another parameter F or A or S... Note that in that case some level of non-lineR transfer function must be applied to the numerical values of the Z argument anyway based on what the energy beam process does to the material. So...post-pro. What do you think?
EDIT: re-reading this thread after a few days and less quarantine induced cabin fever, everything I said was already summed up by OP (Russ) in one sentence.