% O0008 (SPLINE BROACH MACRO PROGRAM) (FOR MORI SEIKI NL1500 - MAIN PROGRAM) (BROACHING A 12 TOOTH SPLINE WITH THE T6MML HOLDER) (CONTAINS SUB PROGRAM #0070) (ENTER YOUR KEYWAY DATA ON THE NEXT 5 LINES) #501=1.00(ENTER KEYWAY LENGTH HERE) #502=.925(ENTER STARTING DIAMETER HERE) #503=1.115(ENTER ENDING DIAMETER HERE) #504=.001(ENTER RADIAL DOC PER PASS HERE) #505=300.0(ENTER IPM FEED RATE HERE) #506=12.0(ENTER NUMBER OF TEETH) (DO NOT EDIT THESE 5 LINES) #507=[[#503-#502]/2](AUTO CALCULATES FULL DEPTH) #508=[#507/#504](AUTO CALCULATES NUMBER OF PASSES) #509=1(RESETS PASS COUNTER) #510=[360/#506] #511=1(RESETS INDEX COUNTER) G20(INCH INPUT) G98(FEED PER MINUTE) G50S500(SET MAX RPM) G00G30U0W0(RAPID TO HOME POSITION) T0100(CALL TOOL) M45(C-AXIS MODE ON) G0C0(ROTATE C AXIS) G0X[#502]Z.625T0101(CALL OFFSET AND RAPID .625 INCH IN FRONT OF PART) M8(COOLANT ON) #509=1(RESETS PASS COUNTER) #511=1(RESETS INDEX COUNTER) M98P0060L[#506](CALL O0060 TO SET ROTATION #506 TIMES) M46(C-AXIS MODE OFF) G0G99Z1.M9(COOLANT OFF) #509=1(RESETS PASS COUNTER) #511=1(RESETS INDEX COUNTER) G30U0W0T0100(GO HOME AND CANCEL OFFSET) M30(RESET PROGRAM) O0060 (ROTATION SUB PROGRAM) M68(SPINDLE BRAKE) M98P0070L[#507](CALL O0070 AND REPEAT #507 TIMES) #509=1(RESET PASS COUNTER) M69(RELEASE SPINDLE BRAKE) G00C[#510*511](INDEX SPINDLE) #511=#511+1(SPINDLE INDEX COUNTER) M99 O0070 (BROACH SUB PROGRAM) G98G1Z[[[#501]*[-1]]-.200]F[#505](FEEDS .200 BEYOND #501) X[#502](RETRACT ON X) G0Z.625(RETRACT ON Z) #509=#509+1(PASS COUNTER) G0X[#502+[#509*[#504*2]]](RAPID TO NEXT X POSITION) M99(RETURN TO MAIN PROGRAM) %