wuleizy wrote:
上面所写的MACRO 只是简单,如加上一些system variable就会使PROGRAM 出神入画,有意联系我
macro 程式,好處是可以縮短程式增加机床的功能,並在加工中將各軸座標、 Tcode、Mcode、Scode 、G code ..連線輸出到PC 做各種資料運算等,不過並不會出神入化,一般較多使用在規則狀的的循環切削,如真圓銑削、矩形槽,螺旋銑削、自動校刀,工件座標自動輸入等。寫了快10年的macro最後還是需要學CAM因3D曲面用macro是寫不來的,奉勸各位還是把cam學好吧!
我來注解你貼的程式
由糸統變數判斷此程式是給fanuc 18系列用
G17G21G80G49G40;
T#600; (變數600的值=T code)
M6 (CALL P9001);
(用M6來呼叫9001程式,先決條件是參數6071要設6)
N1G66P8200I100.J50.C15.Z-20.D20.R10.Q2.F200;
(以 macro 形態呼叫8200副程式並用引數將 I值、J值、C值、Z值…..等代到8200的副程式)
G67;(取消G66狀
N2
M40 (CALL P9002)
(以M40呼叫9002程式,先決條件是參數6072要設40)
M30;
O9001
G0G90G#4014X0Y0;(如現是G54則#4014等於54,所以等於現在是G54又再下一次G54的指令沒意義,此行只要G0G90X0Y0即可)
G43H#4111Z100.( #4111是H code的值也就是刀長補正位置)
M99;
O8200
(N1G66P8200I100.J50.C15.Z-20. - D20.R10.Q2.F200)
I FOR POCKET LENGTH (I值等於切槽的長100.)
J FOR POCKET WIDTH (J值等於切槽的寬50. )
Z FOR POCKET DEPTH (Z值等於切槽的深 -20.)
Q FOR DEPHT OF CUTTER (Q值等於刀具的深度 2.)
E FOR POCKET ANGLE (值等於切槽的角度)
.......
IF [#4*#5*#26*#9....] EQ 0 GOTO 3000 (假如 I J Z F的值相乘等於0時跳到N3000 也就I J Z F有任何的值等於0時跳到N3000)
IF #4012EQ66 GOTO 60 (判斷是G65、G66、G67狀態如果是G66的狀態跳到N60)
N3000 #3000=140 DATA ERROR (執行此行是會出現3140ALARM DATA ERROR)
M99
|