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