.This is what I do when in Format 2

Find the shortest tool holder and dedicate that to tool and height setting.

Find a conveniant flat spot on the table, could be the table, farside of a vise etc.

Using a 1.0" gage block, jog the tool holder down and use the gage block to get the tool to be exactly (+/-.0001) above the flat surface.

Type G92Z0 to set the the value of Z=0

Then to set the offset of the tool, bring the tool down and set the height of the tool above the same flat surface using the 1.0 gage block. If the new height value is 2.854", then hit the manual key, hit 6 for offsets, then 1 to change value. If the tool is in the correct position on the carousel then just hit enter to change the value, or type in the tool number if you want to set the tool, but not put it into the carousel.

for height offset enter 2.854. That is now the tool offset.

This is how I do it because it's easier for me to visualize a tool offset as a positive value. Using this method you can set the whole carousel in 10-15 minutes.

For setting the height of the part I put my short reference holder back in and jog down to the part, most of what I run has the top face as Z=0. So when i jog down and set the height using the 1.0 gage block I enter G92Z1.0, (in MDI mode) so the value of Z becomes Z=1.0

If you want to add a tool before you start the program, put the tool in the spindle jog down to the 1.0 gage block that's on the material, and set the height of the tool. If the Z heigh is 3.554", then the value you enter now would be 3.554"-1.000" = 2.554" (G92Z2.554) This is because your setting the tool 1.0" above Z0.

If your posting in Fanuc mode there will be a G54 at the begining of the program. Go to the fixture offsets page (manual key, then no6 key then hit the space bar) and check the X,Y,Z offsets. They should be all 0, but you can change them if you want to shift the program in respect to the material. Sometimes I might enter a positive Z value if I want to see what the 1st couple of passes do cutting air.

If you have 3 vises (for instance), and you have the same part in each, you can check the height of the material in each one using the reference toolholder. So say the heights are 1.000", 1.005", .995" left to right (that's how I do it) then your offset values would be G54 Z =0, G55 Z=.005, G56 Z -.005

Again that's how I do it, so if you program the 3 parts in one program you insert a G54/G55/G56 at the appropriate point, so that when the machine gets to the appropriate part in the program it knows which offset to apply.

The only issues I have have been starting a program and forgetting there are G54 values that were used for a previous program that I didn't cancel and weren't 0