I wanted to revive this post as I have some serious problems with Mach3 and my CNC router manufacturer is no longer in existence. I'm on my own to troubleshoot this machine. I've included a picture of the entire machine for reference.
1) First off, I'm having some axis woes. I discovered that when ShopCAM installed and setup the machine initially, they never bothered to calibrate steps per pulse for each axis, so everything was being cut half an inch too big. Using a dial indicator, I used the Axis Calibration tool on the Mach3 Settings screen to set the X, Y, and Z axis dead on, with a repeatability of +/- .0005". When I run a program, which I did one with a 1/2" diameter bit and then a different program with a 1/4" diameter bit, the Y axis adds exactly 1/16" of an inch to the part, the X axis cuts perfect. That's axis problem number one.
2) Axis problem number two is what I would call Z axis drifting. To cut my part I specify the exact Z thickness of the part, and add .050 for breakthru, which is overkill, but the part still ends up with an onion skin once I get about 18" along the X axis. See the attached picture of a pocket that was cut where the bit should have been at the same Z depth the entire time, but it drifted. The other picture is of various cuts that were all specified in the code to be the exact same depth, but notice the variance, the further ones even lifting completely above the spoiler board.
3) I've unchecked the boxes relating to overwriting my G54, but if I shut off the machine for the night, it will make the G54 X0Y0Z0 match where ever the machine was sitting when it was shut off. Right now I just bring it to X0Y0Z0 before shutting it down. Is there another way to save the position? Also related is machine coordinates. Does the table not have exact machine coordinates that are fixed, always the same? I ask for two reasons. One the machine coordinates change each time the machine is shut down. And two, the other day, between running two parts, the exact same part, the table suddenly came up with a new value for G28 and instead of moving up and preparing itself to run the program, it dropped down to well below the table's surface, fortunately off the X and Y axis, so it was spinning in the air, but without a quick E-stop right then, it would have moved into cutting the actual table.
I have another issue, but I'll add that one in a bit.