Hi blazk
Blind leading the blind....
z0 is still a bit of a mystery to me in that the way my files are cutting when I'm cutting a simple 2D through-cut, z0 is the bottom of my workpiece (or top surface of my spoil board). I'm sure there will be an option somewhere for z0 to be the top of the workpiece as this seems more logical when setting up. In the few 2.5D files I've run, z0 is indeed the top surface.
It's possible that your surfacing toolpath runs beyond the soft limits of your machine. If so, this would certainly be giving you errors. The soft limits can be changed in ToolPath. I was having similar sounding issues at the start.
First, I was getting an error (can't remember which one) if I tried to run a physically small job outside the lift top and bottom. Initially I was just trying to run small shapes as aircuts at some random height above the board. I solved this by setting the lift bottom a few mm above the table and the lift top about as high as the z axis went. That meant I could pick a random z height between these to set as the material surface and the file would run nice and safe way up in the air and happily between the lift top and bottom.
Next, when trying to run physically larger files, I was also getting similar errors which I could be certain were not to do with the Z axis. This had me guessing till I went hunting for the soft limits in ToolPath. This is called Machine Size and is in the SETUP menu on the Calibration tab in ToolPath. I found that these had been set smaller than what the physical X and Y travels were and also smaller than the larger files I was trying to run. I fiddled around and changed these so my soft limits (Machine Size) are set just short of the physical stops on the X and Y axis. Now, so long as my files are within these limits, the nasty errors are no longer an issue. Note that Machine Size is relative to the home position, which if I understand correctly is where the homing switches trigger when you do a Function 12. This 0,0 is the 'permanent' origin of the machine and is different to the 0,0 you set in Function 3. Positions such as the ATC tool change position etc reference this home 0,0 and not the Function 3 0,0. Further, the soft limits also reference the home 0,0 so working out the maximum X and Y travel before you hit the physical end stops takes a bit of fiddling. Once you have values for these you can enter these in as your Machine Size. I believe it's common practice to set your soft limits with a bit of room to move before hitting the physical stops for obvious reason.
And one last trap I've fallen for a few times is setting my material size in ToolPath at 90 degrees to the table! In fact only just today I did this... I got my X and Y confused setting up the stock in TooPath, sent the job to the machines, went through the motions setting 0,0, lift top and bottom, hit go, chose to override the error, and promptly crashed into the far stop on the Y axis. Well, I guess now I know what happens when you do something so dumb.
Hope this helps. Let me know. Patience!!!! The learning curve is steep when you're trying to self teach and there seems to be no end to the WTFs.