# Minimizing Operator Calculations Prior To Offset (Revisited)

In a previous CNC Tech Talk, we described a method of offset entry that allows the operator to simply enter a measured dimension when an offset adjustment is required (as opposed to calculating the actual amount of needed offset adjustment). The column met with rave reviews and is still available on the Web at

In a previous CNC Tech Talk, we described a method of offset entry that allows the operator to simply enter a measured dimension when an offset adjustment is required (as opposed to calculating the actual amount of needed offset adjustment). The column met with rave reviews and is still available on the Web at www.mmsonline.com/articles/0498cnc.html. As helpful as that column is, it only scratches the surface of what can be done. We were simply eliminating the basic arithmetic an operator must do prior to offset adjustment.

The illustration below shows a time when the calculations required of an operator will be much more complicated. In this application, the operator must measure a dimension over a ball. Based upon this measurement, an X offset adjustment must be made. To determine how much X adjustment is required, the operator must first determine the deviation between the measured dimension and the target dimension on the print. Then he or she must use trigonometry (tangent of the angle times the deviation, doubled) to determine the amount of X offset adjustment.

With our new method, the operator simply measures the dimension over the ball, and if an offset adjustment is required, he or she will enter this measured dimension into a secondary offset (20 plus the tool station number). Using custom macro techniques, the control will calculate the amount of offset adjustment and actually modify the appropriate X offset. Truly, any time you see your operators using a calculator prior to offset adjustment, you can apply this technique.

Here is a portion of an example main program that uses this technique.

O0001 (Main program)

N150 G65 P1001 T5. D2.25 S2.245 B2.255 A40.0 (Make adjustment if necessary)

N155 T0505 (Finish boring bar that machines the bore)

Again, read the April 1998 Tech Talk column to learn more about how this technique works. We’re still specifying the tool station number (with T), the target dimension (with D), a small and big limit for entry (with S and B). We’ve added an argument to specify the angle of the bore (with A). Here is the custom macro that handles this application:

O1001 (Custom macro)

IF [ #[2120 + #20] EQ 0 ] GOTO 99 (If operator has not entered a value, exit)

IF [ #[2120 + #20] GT #19] GOTO 5 (If offset value is greater than small limit, go to N5)

#3000 = 100 (DIMENSION OFFSET TOO SMALL)

N5 IF [ #[2120 + #20] LT #2] GOTO 10 (If offset value is less than big limit, go to N10)

#3000 = 101 (DIMENSION OFFSET TOO BIG)

N10 #[2000 + #20] = #[2000 + #20] + [2 * [TAN[#1] * [#7 - #[2100 + #20]]]] (Adjust primary offset)

#[2120 + #20] = 0 (Set secondary offset back to zero)

N99 M99

If the operator needs to make an adjustment, he or she will enter the dimension measured over the ball in the Z register of offset 25. The custom macro begins by checking to see if a value has been entered. If so, it checks the measured dimension against a high and low limit, generating an alarm if an inappropriate value is entered. If the entered dimension is OK, the custom macro makes the adjustment to the X register of the primary offset (offset five in our case)

Finally, the secondary offset is set back to zero. An adjustment will not be made again until the operator enters a value into the Z register of the secondary offset (offset 25 in our case).