8027-Square Taper Milling Macro
N1(D10 ENDMILL) G0G91G28Z0. T8M6 M1 G90G0G54X0.Y0.S2500M3 G43H8Z50.M8T9 G66.1P8027X0.Y0.Z-39.D8F650I26.5J1.7K0.Q1.65R.0 G67 M9 M5 G91G28Z0M19 M1 G91G28Y0. M30 % (SQ TAPER KEY MILLING) (G66.1P8027X0.Y0.Z-50.0D5F500I15J1.0K0.Q1.5R.0) (G67) N101IF[#24EQ#0]GOTO701(CHECK X MISSING) N102IF[#25EQ#0]GOTO701(CHECK Y MISSING) N103IF[#26EQ#0]GOTO701(CHECK Z MISSING) N104IF[#7EQ#0]GOTO701(CHECK D MISSING) N105IF[#9EQ#0]GOTO701(CHECK F MISSING) N106IF[#4EQ#0]GOTO701(CHECK I MISSING) N107IF[#5EQ#0]GOTO701(CHECK J MISSING) N107IF[#6EQ#0]GOTO701(CHECK K MISSING) N108IF[#17EQ#0]GOTO701(CHECK Q MISSING) N109IF[#18EQ#0]GOTO701(CHECK R MISSING) N200(CALCULATE REQUIREMENTS) N201 #101=#[2400+#7]+#[2600+#7](CHECK TOOL DIA) IF[[#101*2]GE#4]GOTO702 N202 IF[#101LE0]GOTO703(TOOL DIA NOT ZERO) N203 IF[#4LE0]GOTO704(BORE VALUE CHECK) N204 IF[#26GE#18]GOTO705(R VALUE MUST POSITIVE THEN Z) N205 IF[#5LE0]GOTO704(TAPER VALUE CHECK) N206 IF[#17LE0]GOTO707(PECKING VALUE) N207 IF[#9LE0]GOTO708(FEEDRATE MUST POSITIVE) N300(STORE IMPORTANTS) N301 #112=#5003 N400(CALC FOR EXECUTE) N500(EXCECUTION SHIFTS) #103=[[#26-#18]MOD#17] N501 IF[#103EQ0]GOTO601 IF[#103NE0]GOTO602 N600(RUNNING SEQUENCES) N601G0G90Z#112 G0G90X#24Y#25 G0G90Z#18F#8 #110=[#18-#17] #111=#26 #104=#6 WHILE[#110GE#111]DO1 G01Z#110F#9 #102=[#4/2]-[[#6-#110]*[TAN[#5]]]-#101 G01X[#24+#102]Y[#25+#102] G01X[#24-#102] G01Y[#25-#102] G01X[#24+#102] G01Y[#25+#102] G0X[#24]Y[#25] #110=[#110-#17] END1 G0G90Z#112 GOTO999 N602G0G90Z#112 G0G90X#24Y#25 G0G90Z#18F#8 #110=[#18-#17] #111=#26 #104=#6 WHILE[#110GE#111]DO1 G01Z#110F#9 #102=[#4/2]-[[#6-#110]*[TAN[#5]]]-#101 G01X[#24+#102]Y[#25+#102] G01X[#24-#102] G01Y[#25-#102] G01X[#24+#102] G01Y[#25+#102] G0X[#24]Y[#25] #110=[#110-#17] END1 G01Z#26F#9 #102=[#4/2]-[[#6-#110]*[TAN[#5]]]-#101 G01X[#24+#102]Y[#25+#102] G01X[#24-#102] G01Y[#25-#102] G01X[#24+#102] G01Y[#25+#102] G0X[#24]Y[#25] G0G90Z#112 GOTO999 N700(ERROR PROVIDER) N701 #120=801 GOTO800 N702 #120=802 GOTO800 N703 #120=803 GOTO800 N704 #120=804 GOTO800 N705 #120=805 GOTO800 N706 #120=806 GOTO800 N707 #120=807 GOTO800 N708 #120=808 GOTO800 N800(ERROR ALARMS) GOTO#120 N801#3000=90(INPUT*MISSING) N802#3000=91(TOOL*RADIUS*LARGE) N803#3000=91(TOOL*RADIUS*NOT*0) N404#3000=91(BORE*RADIUS*NOT*0) N805#3000=91(DEPTH*MUST*GREAT*THAN*R) N806#3000=91(A*VALUE*LIMIT*CHECK) N807#3000=91(DEPTH*OF*CUT*NOT*ZERO) N808#3000=91(FEED*NOT*ZERO) N900(RETRIEVE DATA) N901#101=#101 N902F#9 N999(SUB PROGRAM END)N999 M99 %