# Thread: Checking taper and gage-point using Fanuc Macro B

1. ## Checking taper and gage-point using Fanuc Macro B

Good afternoon all. I'm a complete "newby" when it comes to probing and macro programming but have been given the task as a CNC programmer to adjust the taper and gage-point for a single part using off the shelf probe cycles from Renishaw and macro statements. More parts are to follow once I get the logic and format down.

I did receive some help from the Renishaw installation engineer which I greatly appreciate, but I am still have issues with the probe making the necessary adjustments. The gage point tolerance for the part is +/- .001" and the taper tolerance is +/- .040 (2 minutes 24 seconds).

The code shown below is after the CNC has made a preliminary cut and is now probing the taper to make the necessary adjustments.

I would appreciate it if someone with more experience than I review the attached code and critique the logic and math used and point me in the right direction.

Thanks.

%
O8004(3811 MID-CYCLE CHECK)

T01000
M06T01001
T11000
G0G28U0V0
G28W0
M35(C AXIS ON)
G28H0(REF C AXIS)
G28B0
G400B0J0.
G54X5.Y0Z5.
M74(PROBE ON)
G4X1.
(BEGIN RENISHAW MACROS)
(G65 P9314=PROTECTIVE MOVE CYCLE)
G65P9314X3.Y0Z1.F250.
G65P9314Z-.13188
G65P9311X1.6904Q.5
#800=#140
#810=#144
#810=[#810/2]
G65P9314Z-.3858
G65P9311X1.64165Q.5
#801=#140
G65P9314X5.Z5.
(TAPER CALC)
#802=.25392(SIDE B)
#803=[#800-#801](SIDE A)
#803=#803/2
#804=#803/#802
#804=[#804*1.004]
#805=ATAN[#804]
#805=#805*2(TAPER)
IF[#805GT18.104]GOTO100
(CALC TO INCREASE TAPER)
#806=[18.104-#805]
#806=[#806*.005]
#806=[#806*[-1]]
GOTO200
(CALC TO DECREASE TAPER)
N100
#806=[#805-18.104]
#806=[#806*.006]
N200
G0G28V0
G28U0
G28W0
M73(PROBE OFF)
/M00
#15011=[#15011+#810]

M99
%

2. Is it Mori or Nakamura? It's a Mill/Turn right!

9311 is a measurement in the X direction (not normal to the angle you are measuring).

I'll run through the maths when I get chance - #805 is the calculated taper angle (nominally 18.104), what are you planning to do with the result of #806 (why are you multiplying the deviation by .005 or .006 depending on output)? I assume this gets fed back into the tool path some how?
I can see you are adjusting the tool offset (I think - not exactly sure what #15011 is) by the measured size error of the gauge point. How do you know what is X & what is Z deviation - does it matter?
On Mill/Turns you need to be sure the 2 points you probe are aligned in the Y axis or your angle will seem wrong.

3. ## Re

Thanks for the feedback Guypb. SInce the original post, I've made some headway with the program.

To answer your questions the machine is a Doosan Puma MX 2600 Mill/Turn with a 30i control.

The routines were written by the probe Applications Engineer as I went over the print with him and described what I was hoping to do to minimize operator intervention.

I created a spreadsheet in Excel and went through the math to check the output against my handheld calculator. The numbers are good with the exception of rounding error depending on how far you carry out the calculations. I had the chance to run the updated macro today on several parts with known dimensions as a test, and the macro appears to be capturing the taper data correctly.

You were correct about parameter #15011. It is the parameter for tool geometry offset 11 in X.

The probe is setting the workshift (G54 called out in another macro), and all calculations are based on where the probe think the part is ("X" print dimension at predetermined "Z" locations).

The points taken are from the centerline of the part with the "Y" axis stationary (Y0).

My understanding is that the .005 or .006 is a factor that the engineer applied to the results to make the machine correlate with the CMM output.

At this point I'm trying to get the macro to adjust the taper (if needed) to remain within a given range. I'm also trying to do the same with the gage-point. I will run a few setup parts tomorrow to test the macro. Hopefully it will function properly. I will let you know the results either way.

4. For deciphering the logic, it is first necessary to figure out which variable is doing what. Make a list, and then read the macro again.