As you know, Fanuc-controlled machining centers come with at least six fixture offsets, invoked in a program by G54 through G59 respectively. When the machine executes a G54, for example, it knows to look at the registers in fixture offset number one to find the program zero assignment values for the current coordinate system. (G59, of course, tells the machine to look in fixture offset number six.)
During setup – by one means or another – program zero assignment values are placed into each needed fixture offset. They could be entered by the setup person – or they could be more automatically entered by G10 commands in the program. But again, before the program can be run, the machine must be told the location of each program zero point (origin) used by the program.
You may not know that the point of reference for program zero assignment values that are placed into fixture offsets is related to the common fixture offset (fixture offset number zero on the first fixture offset display screen page). When the registers for the common fixture offset are set to zero, as they commonly are, the point of reference for program zero assignment values is the machine’s zero return position.
That is, the X axis program zero assignment value is the distance from the X axis zero return position to the X axis program zero surface in the setup. The Y axis program zero assignment value is the distance from the Y axis zero return position to the Y axis program zero surface in the setup. And the Z axis program zero assignment value is the distance from the spindle nose (while the Z axis is resting at its zero return position) to the Z axis program zero surface in the setup (though the Z axis program zero assignment value will vary based upon how tool length compensation offsets are determined).
In essence, when common fixture offset registers are set to zero, the machine is being told that the point of reference for program zero assignment values is nothing from the machine’s zero return position. Again, this is a very common method of applying fixture offsets. The vast majority of CNC users do so in this manner.
When might you want to change the point of reference for program zero assignment values? Let’s look at some times when the common fixture offset can be helpful.
During program verification
Though this may not be the best application, it should help you understand how the common fixture offset works. Say you have a vertical machining center and have just made a new setup. You’ve entered all fixture offset in the normal manner. With the method just discussed, the common fixture offset registers are all set to zero and there will be very large negative values in each fixture offset register.
Before running the actual workpiece, you may want to do some testing. Maybe you want to see how the program will run, but not allow each tool to come all the way down to its final Z axis position. Instead, you’d like to run all tools, say, five inches above the work surface.
This is easy to do with the common offset. Simply increase the value of the Z register by five inches. If it is currently zero – as it probably is – set the Z register to a positive five inches. This will tell the machine that the point of reference for all fixture offset entries is five inches above the Z axis zero return position. When each tool runs, it will stay five inches higher than it will when a workpiece is actually run. Once you confirm that the motions, of course, you will need to set the Z axis register of the common fixture offset back to its initial value (probably zero).
When using sub-plates
If you have a sub-plate on the table of your vertical machining center, it may be possible to simplify – or eliminate – the task of program zero assignment. That is, you may be able to keep the setup person from having to do anything during setup that has to do with program zero assignment.
As long as the sub-plate is accurately made – and as long as the component workholding tooling is also predictable, setups will be qualified and predictable. In this case, you can have the program zero assignment values be the distance from one of the location surfaces or holes on the sub-plate. In essence, this will make them easier to predict.
The common fixture offset can be used to shift the point of reference for program zero assignment values from the zero return position to the location surface/s on the sub-plate. Say we shift in XY to the lower left hole on a sub-plate that uses a series of clamping and location holes. If the zero return position is at the machine’s plus over-travel limit in each axis, the values placed in the common offset will be negative.
From this point, all program zero assignment values in XY can be specified from the lower left hole to the program zero surface on the workpiece. And again, since the location holes on the sub-plate are in known positions, the program zero assignment values will be easily predictable. The programmer can include G10 commands to specify them so the setup person need not do anything relative to program zero assignment.
After a mishap
If you’ve been using G10 commands to assign program zero in your program, you know that the zero return position better not change in any axis. If it does, the G10 commands will not be correct. So after a mishap (crash), the person fixing the machine must get the zero return position perfectly reset.
You can use the common fixture offset to allow for any deviations in this regard. With the sub-plate example just described, you can simply re-measure the location of the lower left hole after the crash and place the new values in the common fixture offset’s X and Y registers.
But even if you’re not using a sub-plate, you can use the common fixture offset for this purpose. Simply determine how far the new zero return position is from its old position and enter these values into the common fixture offset.
Consistent tool length compensation offset values
One last application for the common fixture offset that I’ll mention has to do with companies that use the same cutting tools from one machine to another. Possibly multiple identical cutting tools – say for a very common roughing tool – are setup to be used by the first machine that needs one. Even with identical machines, there may be a slight difference in the spindle taper. A cutting tool placed in one machine may “rise up” higher into the spindle than it does in another. This requires a different tool length compensation offset value for each machine. Allowing for spindle differences can be a headache if cutting tools are shared from machine to machine.
If the Z axis common fixture offset is set to the deviation from one machine to another, the same tool length compensation value can be used for both machines. Again, this will simplify the task of coming up with tool length compensation values for tools used in multiple machines.