NCマクロのマクロ呼び出しとは?

あらかじめ定義した一連の命令を、メインプログラムから呼び出して実行する機能のことです。これを使用することで、繰り返し行う操作を一度だけ定義し、何度でも呼び出して再利用できるようになります。マクロは、サブプログラムと似ていますが、特に引数(パラメータ)を受け取って、柔軟に動作を変更できる点が特徴です。

マクロプログラム呼び出し

メインプログラムからG65P100A240.でO100のマクロプログラムが呼び出され、穴あけ処理をします。 M99でマクロプログラムからメインプログラムに戻ります。 この時A240.は引数と呼ばれ、呼び出されたマクロプログラムの#1に格納されます。

マクロプログラムモーダル呼び出し

マクロプログラムもG01のように、モーダルで呼び出すことができます。

G01のモーダルは

モーダル記述解釈
G01X0.Y0.
X100.
Y50.
G01X0.Y0.
G01X100.
G01Y50.

メインプログラムからG66P100A240.でO100のマクロプログラムが呼び出され、穴あけ処理をします。 次にX100.を指定すると、その座標に移動した後にO100のマクロプログラムが呼び出されます。 G67でキャンセルするまで何回も繰り返し呼び出されます。

G65とG66の比較

G65G66
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の繰り返しで記述変数
AA#1
BB#2
CC#3
II#4
JJ#5
KK#6
DI#7
EJ#8
FK#9
I#10
HJ#11
K#12
MI#13
J#14
K#15
I#16
QJ#17
RK#18
SI#19
TJ#20
UK#21
VI#22
WJ#23
XK#24
YI#25
ZJ#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までのローカル変数が別に作られ、引数で設定した変数には値が設定されます。