あらかじめ定義した一連の命令を、メインプログラムから呼び出して実行する機能のことです。これを使用することで、繰り返し行う操作を一度だけ定義し、何度でも呼び出して再利用できるようになります。マクロは、サブプログラムと似ていますが、特に引数(パラメータ)を受け取って、柔軟に動作を変更できる点が特徴です。
マクロプログラム呼び出し
メインプログラムからG65P100A240.でO100のマクロプログラムが呼び出され、穴あけ処理をします。 M99でマクロプログラムからメインプログラムに戻ります。 この時A240.は引数と呼ばれ、呼び出されたマクロプログラムの#1に格納されます。
マクロプログラムモーダル呼び出し
マクロプログラムもG01のように、モーダルで呼び出すことができます。
G01のモーダルは
モーダル記述 | 解釈 |
---|---|
G01X0.Y0. X100. Y50. | G01X0.Y0. G01X100. G01Y50. |
メインプログラムからG66P100A240.でO100のマクロプログラムが呼び出され、穴あけ処理をします。 次にX100.を指定すると、その座標に移動した後にO100のマクロプログラムが呼び出されます。 G67でキャンセルするまで何回も繰り返し呼び出されます。
G65とG66の比較
G65 | G66 |
---|---|
G00X-20.Y20 G00Z260. G01X100. G65P100A240. G01X200. G65P100A240. G01Y70. G65P100A240. M30 O100 G01Z#1 G01Z260 M99 | G00X-20.Y20 G00Z260. G01X100. G66P100A240. X200. Y70. M30 O100 G01Z#1 G01Z260 M99 |
引数と変数の対応
AからZで記述 | IJKの繰り返しで記述 | 変数 |
---|---|---|
A | A | #1 |
B | B | #2 |
C | C | #3 |
I | I | #4 |
J | J | #5 |
K | K | #6 |
D | I | #7 |
E | J | #8 |
F | K | #9 |
I | #10 | |
H | J | #11 |
K | #12 | |
M | I | #13 |
J | #14 | |
K | #15 | |
I | #16 | |
Q | J | #17 |
R | K | #18 |
S | I | #19 |
T | J | #20 |
U | K | #21 |
V | I | #22 |
W | J | #23 |
X | K | #24 |
Y | I | #25 |
Z | J | #26 |
K | #27 | |
I | #28 | |
J | #29 | |
K | #30 | |
I | #31 | |
J | #32 | |
K | #33 |
G65P100A1B2C3I4J5K6D7E8F9 AからZで記述
G65P100A1B2C3D7E8F9I4J5K6 AからZで記述(AからZは好きな順で良い)
G65P100A1B2C3I4J5K6I7J8K9 IJKの繰り返しで記述(IJKの順は変えられない)
3通りの記述とも、変数には変数の番号が入ります。
#1=1, #2=2, #3=3 ...
マクロ呼び出しのローカル変数
マクロ呼び出しをすると、#1から#33までのローカル変数が別に作られ、引数で設定した変数には値が設定されます。