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

English

O9013_HAAS.NC

%
O9013
(FLOOR_FACING_HAAS)

#10150=#24(-X- LEGHT X AXIS)
#10151=#25(-Y- LEGHT Y AXYS)
#10152=#26(-Z- END PLANE)
#10153=#21(-U- PERCENT OVERLAY)
#10154=#23(-W- DEPTH OF CUT)
#10155=#6(-K- ALLOWANCE IN Z AXIS)
#10156=#18(-R- LENGTH REBOUND)
#10157=#3(-C- OFFSET ANGLE)
#10158=#7(-D- DIAMETR TOOL)
#10159=#20(-T- NUMBER CORREKTOR)
#10160=#9(-F- FEED SPEED)
#10167=#2(-B- START PLANE)

#10161=#5041(X CURRENT POSITION) 
#10162=#5042(Y CURRENT POSITION) 
#10163=#5043(Z CURRENT POSITION) 
#10164=400(MAX COUNT CORRECTORS) 
#10165=5000(MAX FEED SPEED) 
#10166=2.(MAX SIDE ALLOWANCE)
#10169=90(PERCENT OVERLAY LAST RUN)
#10192=0.(MIN SHIFT)


(---- DEFAULT ----)
#10151=#10151+#10192
IF[#10167EQ#0]THEN#10167=#10163-#[2000+#10159]-#[2200+#10159](DEFAULT START PLANE)
IF[#10159EQ#0]GOTO1203(MISSING ATTRIBUTES D, T)
IF[#10159LE0]GOTO1205(WRONG CORRECTOR NUMBER)
IF[#10159GT#10164]GOTO1205(WRONG CORRECTOR NUMBER)
IF[FIX[#10159]NE#10159]GOTO1205(WRONG CORRECTOR NUMBER)
#10163=#10163-#[2000+#10159]-#[2200+#10159](ADD CORRECT LENGHT TOOL FOR HAAS)
IF[[#10154EQ#0]OR[[#10167-#10154]LT#10152]]THEN#10154=#10167-#10152(DEFAULT DEPTH OF CUT -W-)
IF[#10157EQ#0]THEN#10157=0(DEFAULT OFFSET ANGLE -C-)
IF[#10156EQ#0]THEN#10156=2.(DEFAULT LENGTH REBOUND -R-)
IF[#10155EQ#0]THEN#10155=0(DEFAULT ALLOWANCE IN Z AXIS -K-)
IF[#10169LE#10153]THEN#10169=#10153+1(PERCENT OVERLAY LAST RUN)
IF[#10169GT100]THEN#10169=100(PERCENT OVERLAY LAST RUN)
(---- END ----)

 
(---- CHECK VARIABLE ----)
IF[#4000EQ9013]GOTO1201(MACRO NAMES MUST BE EQUIVALENT) 
IF[#10156LT0]GOTO1215(R MUST BE POSITIVE)
IF[#10167GT#10163]GOTO1216(B HIGHER THEN Z)
IF[[#10158LT0]OR[#10158GT100.]]GOTO1202(WRONG DIA TOOL)
IF[[#10159EQ#0]AND[#10158EQ#0]]GOTO1203(MISSING ATTRIBUTES D, T)
IF[[#10159EQ#0]OR[#10158EQ#0]]GOTO1204(BOTH ATTRIBUTES NEEDED)
IF[#10159LE0]GOTO1205(WRONG CORRECTOR NUMBER)
IF[#10159GT#10164]GOTO1205(WRONG CORRECTOR NUMBER)
IF[FIX[#10159]NE#10159]GOTO1205(WRONG CORRECTOR NUMBER)
IF[#10150LE0]GOTO1206(LEGHT X MUST BE POSITIVE)
IF[#10151LE0]GOTO1207(LEGHT Y MUST BE POSITIVE)
IF[[#10152GE#10163]OR[[#10152+#10155]GE#10163]]GOTO1208(WRONG END PLANE)
IF[[#10153LE0]OR[#10153GT100]]GOTO1209(WRONG PERCENT OVERLAY)
IF[#10154LE0]GOTO1210(WRONG DEPTH OF CUT)
IF[[#10155LT0]OR[#10155GT#10166]]GOTO1211(WRONG ALLOWANCE)
IF[[#10157LE-360.]OR[#10157GE360.]]GOTO1212(WRONG OFFSET ANGLE)
IF[#10160EQ#0]GOTO1213(MISSING FEED SPEED)
IF[[#10160LE0]OR[#10160GT#10165]]GOTO1214(F OUT OF RANGE)
(---- END ----)
 
IF[[#10159NE#0]AND[#10158EQ#0]]THEN#10158=#[2400+#10159](DETERMINATION OF TOOL DIAMETER)


G94G90G80G69G40
(G68R#10157) (D0N'T WORK IN HAAS, FUCK)
G0Z#10163

#10170=#10167-#10154(Z COUNTER)
WHILE[#10170GE#10152]DO1
G0Z#10163

#10171=-1(X DIRECTION)
#10191=#10158/100*#10153(DEPTH OF CUT ON MILL)
#10172=#10191*2(Y COUNTER)
#10195=#10151
IF[[#10151/#10191]NE[ROUND[#10151/#10191]]]THEN#10195=[ROUND[#10151/#10191]]*#10191


IF[#10172GT[#10151]]GOTO15
GOTO16
N15
G0X[#10150/2+#10158/2+#10156+#10161]
G1Z[#10170+#10155]F#10160
G1X[[#10150/2+#10158/2+#10156]*#10171+#10161]
GOTO21
N16
G0X[#10150/2+#10158/2+#10156+#10161]Y[#10151/2+#10158/2-#10191+#10162]
G1Z[#10170+#10155]F#10160

WHILE[#10172LE[#10195+#10191]]DO2
IF[[#10172]GT[#10195]]GOTO12
#193=3(CIRCULAR INTERPOLATION)
IF[#10171EQ1]THEN#193=2
G1X[[#10150/2+#10158/2-[#10191]/2]*#10171+#10161]
G#193X[[#10150/2+#10158/2]*#10171+#10161]Y[#10151/2+#10158/2+[#10191]/2-#10172+#10162]R[[#10191]/2]
G#193X[[#10150/2+#10158/2-[#10191]/2]*#10171+#10161]Y[#10151/2+#10158/2-#10172+#10162]R[[#10191]/2]

GOTO14
N12
G1X[[#10150/2+#10158/2+#10156]*#10171+#10161]
N14
#10171=#10171*[-1]
#10172=#10172+#10191
END2

N21

#10170=#10170-#10154
IF[[#10170LE#10152]AND[#10170GT[#10152-#10154]]]THEN#10170=#10152(FOR THE FINAL PASS)
END1

G0Z#10163
G0X#10161Y#10162(RETURN TO START POINT)
G69
M99(END MACRO)


(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)
%