Ever since I got my Partner 1D with a Centurion 5 controller I've hated the way you have to set tools and part Z zero, it never made sense and if the top of your part gets removed you're screwed if you have to re-set a tool. I come from Fanuc machines with M codes to set tool length and part height. I spent the past few days finding all the Parameter locations, etc... and created my own! I figured I'd share since I've seen a bunch of posts from others who have the same issues with it as me. The attached files will allow you to set the tool setter zero height (M52), set the tool length from the gauge line of the spindle (M50) and set G54 Z from any tool (M51).
All you have to do is activate level 3, parameters, setup, PROTO3, Level 3. Then go to MISC parameters, page down to the Custom M Codes and set O9025 to M52, O9026 to M50 and O9027 to M51. If you are already using those programs or M codes just change the program name and/or set that program to whatever M code you need. When done go back to Level 1.
Once you've set the M Codes do the following:
To set the tool setter you have to bring the spindle with no tool in it down on the tool setter until it reads Zero. I'm talking about the flange on the bottom of the spindle. Once it is at zero type M52 in MDI and press start. It will update an unused parameter to the machine Z position of the tool setter zero.
I'm not sure how to incorporate a number after the M code into a program to allow for using a gauge block between the spindle and tool setter so I made a little program to do it. Open program O1000 and change where it says (PUT GAUGE BLOCK HEIGHT HERE) to the gauge block height. Then run that program after you have set your Z zero on the setter. If you don't use a gauge block ignore this part.
Once you have done that you can set tools on your tool setter by bring the tool down on it to zero and type M50 in MDI. This sets the actual tool length from the spindle gauge line.
Once the tools are set you can set G54 Z by bringing a tool down to the part like normal. Then, in MDI, enter M51 and Start to set your offset. This is the distance from machine zero.
FYI, if you have to modify one of the M code programs for whatever reason you have to reboot the machine after you save it or the M code will not use the new program. It seems that on boot the controller puts those programs into RAM and will not refresh them until you reboot. Also, if you didn't already know, User Parameters P0-P99 are reset to 0 on boot. Some of the others as well, that's why I had to use an unused protected Parameter for the tool setter zero.
I hope this helps everyone out. If you find any bugs or issues please let me know. They all worked correctly on my machine, but I don't have a 6 or 7 controller to test them on.
Mike Roth.