マクロ解説:第4回「カスタムマクロを使った数式と条件分岐・繰り返し」
一般的な演算や関数、条件分岐・繰り返しはマクロによってNCデータ内に記述できます。
| 絶対値 | ABS[ ] |
| 平方根 | SQRT[ ] |
| 三角関数 | SIN[ ], COS[ ], TAN[ ] |
| 数の丸め | FIX[ ], FUP[ ], ROUND[ ] |
例)
#100 = ABS[-3.2] (→ -3.2の絶対値は3.2なので、#100 = 3.2)
#101 = SQRT[49] (→ 49の平方根は7なので、#101 = 7)
#1 = SIN[30] (→ サイン30°は0.5なので、#1 = 0.5)
#2 = COS[60] (→ #2 = 0.5)
#3 = TAN[45] (→ #3 = 1.0)
#23 = FIX[2.9] (→ #23 =2)
#24 = FUP[2.1] (→ #24 = 3)
#25 = ROUND[12.6] (→ #25 =13)
#26 = ROUND[12.4] (→ #26 =12)
条件分岐
基本形
IF[ 条件 ] GOTO N →条件が真ならラベルNへジャンプ
IF[ 条件 ] THEN *** → 条件が真ならTHEN 以降のプログラムを実行
よく使う条件
EQ(=)等号
NE(≠)不等号
GT(>)大なり
GE(≧)大なりイコール
LT(<)小なり
LE(≦)小なりイコール
論理
AND(アンド:条件1 かつ 条件2)
OR(オア:条件1 または 条件2)
例1:直径(#1)が0以下ならアラーム
IF [#1 LE 0] THEN #3000=1
例2:仕上げ工具(#100)かつ仕上げ加工(#101)なら送り速度を100にする
IF [#100 EQ 1 AND #101 EQ 1] GOTO 100
⋮
⋮
N100 F100.
繰り返し
基本形
WHILE [ 条件 ] DO N
[ 繰り返したい処理 ]
END N
DO の後ろの数字(ここでは”N”)は、対応するENDの番号と一致させます。
WHILE中の[ 条件 ]が真のとき、[ 繰り返したい処理 ]を繰り返します。
[ 条件 ] が真とならないときが繰り返し終了のタイミングです。
無限ループに陥らないように気をつける必要があります。
例)
1 = 0
WHILE [#1 LT 10] DO 1 ・・・#1が10未満のとき繰り返す。#1が10を超えたらEND1ブロックへ移動
G01 X#1
#1=#1 +1 ・・・#1に1を足す。繰り返しごとに#1=1, 2, 3, ~10と増えていく
END 1
無限ループの例)
#1 = 0
WHILE [#1 GT 0] DO 1 ・・・#1が0以上のとき繰り返す
G01 X#1
#1=#1 +1 ・・・#1に1を足す。繰り返しごとに#1=1, 2, 3, ~と増えていく
END 1 ・・・#1はいつまでも0以上なので無限ループしてしまう
次回はマクロを使用した加工の実例について解説します。(第5回に続く)