Библиотека макросов

English

O9013.NC

%
O9013
(FLOOR_FACING_FANUC)

#150=#24(-X- LEGHT X AXIS)
#151=#25(-Y- LEGHT Y AXYS)
#152=#26(-Z- END PLANE)
#153=#21(-U- PERCENT OVERLAY)
#154=#23(-W- DEPTH OF CUT)
#155=#6(-K- ALLOWANCE IN Z AXIS)
#156=#18(-R- LENGTH REBOUND)
#157=#3(-C- OFFSET ANGLE)
#158=#7(-D- DIAMETR TOOL)
#159=#20(-T- NUMBER CORREKTOR)
#160=#9(-F- FEED SPEED)
#167=#2(-B- START PLANE)

#161=#5001(X CURRENT POSITION) 
#162=#5002(Y CURRENT POSITION) 
#163=#5003(Z CURRENT POSITION) 
#164=400(MAX COUNT CORRECTORS) 
#165=5000(MAX FEED SPEED) 
#166=2.(MAX SIDE ALLOWANCE)
#169=90(PERCENT OVERLAY LAST RUN)
#192=0.(MIN SHIFT)


(---- DEFAULT ----)
#151=#151+#192
IF[#167EQ#0]THEN#167=#163(DEFAULT START PLANE)
IF[[#154EQ#0]OR[[#167-#154]LT#152]]THEN#154=#167-#152(DEFAULT DEPTH OF CUT -W-)
IF[#157EQ#0]THEN#157=0(DEFAULT OFFSET ANGLE -C-)
IF[#156EQ#0]THEN#156=2.(DEFAULT LENGTH REBOUND -R-)
IF[#155EQ#0]THEN#155=0(DEFAULT ALLOWANCE IN Z AXIS -K-)
IF[#169LE#153]THEN#169=#153+1(PERCENT OVERLAY LAST RUN)
IF[#169GT100]THEN#169=100(PERCENT OVERLAY LAST RUN)
(---- END ----)

 
(---- CHECK VARIABLE ----)
IF[#4000EQ9013]GOTO1201(MACRO NAMES MUST BE EQUIVALENT) 
IF[#156LT0]GOTO1215(R MUST BE POSITIVE)
IF[#167GT#163]GOTO1216(B HIGHER THEN Z)
IF[[#158LT0]OR[#158GT100.]]GOTO1202(WRONG DIA TOOL)
IF[[#159EQ#0]AND[#158EQ#0]]GOTO1203(MISSING ATTRIBUTES D, T)
IF[#158EQ#0AND[[#159LE0]OR[#159GT#164]OR[FIX[#159]NE[FUP[#159]]]]]GOTO1205(WRONG CORRECTOR NUMBER)
IF[#150LE0]GOTO1206(LEGHT X MUST BE POSITIVE)
IF[#151LE0]GOTO1207(LEGHT Y MUST BE POSITIVE)
IF[[#152GE#163]OR[[#152+#155]GE#163]]GOTO1208(WRONG END PLANE)
IF[[#153LE0]OR[#153GT100]]GOTO1209(WRONG PERCENT OVERLAY)
IF[#154LE0]GOTO1210(WRONG DEPTH OF CUT)
IF[[#155LT0]OR[#155GT#166]]GOTO1211(WRONG ALLOWANCE)
IF[[#157LE-360.]OR[#157GE360.]]GOTO1212(WRONG OFFSET ANGLE)
IF[#160EQ#0]GOTO1213(MISSING FEED SPEED)
IF[[#160LE0]OR[#160GT#165]]GOTO1214(F OUT OF RANGE)
(---- END ----)
 
 
IF[[#159NE#0]AND[#158EQ#0]]THEN#158=#[12000+#159]*2(DETERMINATION OF TOOL DIAMETER)


G94G90G80G69G40
G68R#157
G0Z#163


#170=#167-#154(Z COUNTER)
WHILE[#170GE#152]DO1
G0Z#163


#171=-1(X DIRECTION)
#191=#158/100*#153(DEPTH OF CUT ON MILL)
#172=#191*2(Y COUNTER)
#195=#151
IF[[#151/#191]NE[ROUND[#151/#191]]]THEN#195=[FUP[#151/#191]]*#191


IF[#172GT[#151]]GOTO15
GOTO16
N15
G0X[#150/2+#158/2+#156+#161]
G1Z[#170+#155]F#160
G1X[[#150/2+#158/2+#156]*#171+#161]
GOTO21
N16
G0X[#150/2+#158/2+#156+#161]Y[#151/2+#158/2-#191+#162]
G1Z[#170+#155]F#160

WHILE[#172LE[#195+#191]]DO2
IF[[#172]GT[#195]]GOTO12

#193=3(CIRCULAR INTERPOLATION)
IF[#171EQ1]THEN#193=2

G1X[[#150/2+#158/2-[#191]/2]*#171+#161]
G#193X[[#150/2+#158/2]*#171+#161]Y[#151/2+#158/2+[#191]/2-#172+#162]R[[#191]/2]
G#193X[[#150/2+#158/2-[#191]/2]*#171+#161]Y[#151/2+#158/2-#172+#162]R[[#191]/2]

GOTO14
N12
G1X[[#150/2+#158/2+#156]*#171+#161]
N14
#171=#171*[-1]
#172=#172+#191
END2

N21

#170=#170-#154
IF[[#170LE#152]AND[#170GT[#152-#154]]]THEN#170=#152(FOR THE FINAL PASS)
END1

G0Z#163
G0X#161Y#162(RETURN TO START POINT)
G69
GOTO99


(ERRORS)
N1201#3000=1(WRONG STARTUP TYPE)
N1202#3000=2(WRONG DIA TOOL)
N1203#3000=3(MISSING ATTRIBUTES D OR T)
(N1204#3000=4(BOTH ATTRIBUTES NEEDED))
N1205#3000=5(WRONG CORRECTOR NUMBER)
N1206#3000=6(LEGHT X MUST BE POSITIVE)
N1207#3000=7(LEGHT Y MUST BE POSITIVE)
N1208#3000=8(WRONG END PLANE)
N1209#3000=9(WRONG PERCENT OVERLAY)
N1210#3000=10(WRONG DEPTH OF CUT)
N1211#3000=11(WRONG ALLOWANCE)
N1212#3000=12(WRONG OFFSET ANGLE)
N1213#3000=13(MISSING FEED SPEED)
N1214#3000=14(F OUT OF RANGE)
N1215#3000=15(R MUST BE POSITIVE)
N1216#3000=16(B HIGHER THEN Z)

N99
M99(END MACRO)
%