6.1.9 Macro 應用實例
1. 袋狀循環
袋狀循環示意圖
袋狀半徑是使用者經由變數自行設定;刀具半徑也是使用者經由變數自行設定。流程圖如下所示:
袋狀循環流程圖
袋狀循環程式:
#2=0;
#3=#1-#0;
#2=#0+#2;
#4=#3>#2;
WHILE #4 P10;
G01 X#2 Y0 F400;
G02 I-#2 J0 F400;
#2=#2+#0;
N10 #4=#3>#2;
G01 X#3 Y0 F400;
G02 I-#3 J0 F400;
M30;
2. 矩陣式排列加工
Macro 可用於矩陣式排列加工,且各軸向每次的偏移距離及矩陣的行列皆可自由設定。
程式開頭如下:
;MARCO AND SUBPROGRAM
LIST
;#1:X OFFSET
;#2:Y OFFSET
;#3:LINE N
;#4:ROW M DON'T SET
;#5:TOOL NUMBER DON'T SET
;#6:X G52 OFFSET POSITION DON'T SET
;#7:Y G52 OFFSET POSITION DON'T SET
;#8:SUBPROGRAM NO DON'T SET
;#20:TOOL COUNT REGEST
;#21:ROW COUNT REGEST
;O1111:MATRIX PROGRAM
;O0001:NO1 TOOL
;O0002:NO2 TOOL
;O0003:NO3 TOOL
;O0004:NO4 TOOL
;O0005:NO5 TOOL
主程式如下:
O2396(2011-11-01) ;MAIN PROGRAM
G90G54G17G80G40G49 ;狀態初始化
G52XY
#6=0
#7=0
#20=0
#21=#4
#20=#5-1
#8=1;
WHILE #20 P5 ;依照刀具數量來決定呼叫幾次矩陣副程式
M97 P1111 ;呼叫矩陣副程式
#8=#8+1 ;換呼叫下一個副程式
#20=#20-1 ;呼叫矩陣次數減一
#21=#4 ;將 ROW 的值重新載入
N5
#6=0 ;將狀態初始化
#7=0
G52XY
M30 ;程式結束
矩陣副程式如下:
O1111 ;MATRIX SUBPROGRAM
WHILE #21 P100 ;執行 ROW 的次數
M97 P#8 L#3 ;呼叫 O000#8 副程式
#6=0 ;將 X 歸回原位置
#7=#7+#2 ;Y 位置加 Y 偏移
#21=#21-1 ;ROW 減一
N100
G90G49G53X0.Y0.Z0. ;回到機械原點
#7=0 ;將 Y 歸回原位置
M99
其它副程式如下:
O0001.....
…
M99
O0002....
…
M99
O0003...
…
M99
O0004...
….
M99
O0005...
…
M99