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

%