I have a USB 6040 Chinese machine running Mach3. I have never been able to get the Auto Zero Tool to work. I have tried several different scripts, but most seem to put Zero at the top of the machine. The script that came with the machine comes closest to working.
Here is the code:
'chengdu xhc tec. probe z surface macro
FeedCurrent = GetOemDRO(818) 'Get the current settings, OEM DROs (818)=Feedrate DRO
ZCurrent = GetOemDro(802) 'OEM DROs (802)=Z DRO
GageH = GetOEMDRO(1001) 'OEMDRO(1001)=Gage Block Height
ZNew = ZCurrent - 300 'probe down 20 mm
Code "G90F200" 'slow feed rate to 100 MM/MIN
SetOemDRO(818,200)
Rem Code "G4 P1" 'Pause 1 second to give time to position probe plate
Code "G31 Z" &ZNew
While IsMoving()
Sleep(10)
Wend
Call SetDro (2,GageH) 'DRO(2)=Z DRO
The problem is that, it hits the tool and figures 0 about 1/4 of an inch too high. I have my units in inches, and it looks like this code is in MM. I wonder if that could be the problem. It also seems to move a little fast. I tried to adjust the offsets, but that would not work either. I have read a few of these questions and I wonder if I could reset the height of my block in this code and make it accurate? If, so, I wonder how to do that?
Make sure your gauge height is correct on your offset page, use a caliper to measure, that is where 1001 is stored. You should convert all the numbers to inches if you are using inches...ie...in the FinalMove you should be moving 10" instead of 10 mm off the work piece? you should change that 10 to .39. You need to make the changes in ZNew to 2, G90F3.9 set 818 3.9, add a sleep(300) after this command before the REM