Quote Originally Posted by Neale View Post
I'm a bit concerned that anyone thinks that "going past zero" is in any way relevant when you are using Mach3/UCCNC. Maybe in the days of archaic controllers that did not have any homing/work offset capability this might have mattered but not today.

The point here is that homing sets machine zero, either directly by putting home switches at the zero point, or somewhere else with an appropriate offset (at the right-hand end of travel, in the most extreme case). But that is absolutely nothing to do with where the zero point is on the work. First thing you do when you plonk the stock on the bed and clamp (assuming that you have already homed the machine) is to move the spindle to where you want (0,0) to be, and then set "work coordinate zero" to that point. Maybe x and y at the same time, maybe separately. Effectively you are doing the same thing when you set tool height - this is setting z coordinate zero, indirectly. Your gcode will, if generated by any modern CAM package, be working in terms of work coordinates. Nothing at all to do with machine coordinates. For example, recently, I have been machining work where the X zero work coordinate is at the right hand side and most of the machining is done with negative X coordinates. I told my CAM software where I wanted X=0, set the spindle to the RH edge of the stock and set work coord X to zero, and away it all went.

This machine/work coordinate confusion is a bit complicated to follow at first sight but it soon becomes second nature and you won't even think about it, but it is absolutely critical to using CAM and the machine in harmony. I sorry if I have misunderstood what was being said, but the idea that you need to set machine zero somewhere on to the bed just so that you can move to negative coordinates could be very misleading to anyone new coming to this.
As you say Neale it is not at all intuitive to begin with, and I dont believe I have seen a clear explanation in the manuals . ( and some of the videos are even less helpful)
I think I have got it now though.
So by homing and setting soft limits you are defining the extremities of the working area, within which you will place your job.
You then choose a point on your workpiece which you will define as 0,0,0 for you starting point, traverse your tool to that point and you will then set the work coordinates to zero on all axes.
The G code routine will then move the tool in whatever positive or negative directions are needed to complete the work.

I suppose it becomes particularly clear when doing say an engraving job where conventionally you will set z=0 when the tool is touching the surface, then any movement to Z negative involves a cutting depth and movement to Z positive gives a clearance for tool repositioning.