一般的な演算(関数)や、条件分岐・繰り返しは、カスタムマクロとしてNCデータ内に書けます。
1) 数式・関数(ABS / SQRT / SIN / COS / TAN / FIX / FUP / ROUND)
マクロでは、関数を FUNC[ ] の形で書き、結果を変数へ代入します。
| 分類 | 関数(例) | 用途 |
|---|---|---|
| 絶対値 | ABS[ ] |
符号を無視した大きさ |
| 平方根 | SQRT[ ] |
ルート計算 |
| 三角関数 | SIN[ ] / COS[ ] / TAN[ ] |
角度→比率 |
| 丸め | FIX[ ] / FUP[ ] / ROUND[ ] |
小数処理 |
例:よく使う関数(代入の形)
#100 = ABS[-3.2] (→ 3.2)
#101 = SQRT[49] (→ 7)
#1 = SIN[30] (→ 0.5)
#2 = COS[60] (→ 0.5)
#3 = TAN[45] (→ 1.0)
#23 = FIX[2.9] (→ 2)
#24 = FUP[2.1] (→ 3)
#25 = ROUND[12.6] (→ 13)
#26 = ROUND[12.4] (→ 12)
2) 条件分岐(IF)
条件分岐は大きく ジャンプ(GOTO)と、単行実行(THEN)を使い分けます。
基本形:条件が真ならラベルへ
IF [ 条件 ] GOTO N- 処理ブロックをまとめて分岐させたい時に便利
基本形:条件が真なら1行実行
IF [ 条件 ] THEN …- 単発の代入やアラームなど、短い処理に向く
よく使う比較演算子
| 演算子 | 意味 | 例 |
|---|---|---|
EQ | 等しい(=) | #1 EQ 10 |
NE | 等しくない(≠) | #1 NE 0 |
GT | より大きい(>) | #1 GT 5 |
GE | 以上(≧) | #1 GE 5 |
LT | より小さい(<) | #1 LT 5 |
LE | 以下(≦) | #1 LE 0 |
論理演算(条件を組み合わせる)
AND:条件1 かつ 条件2OR:条件1 または 条件2
例1:直径(#1)が0以下ならアラーム
IF [#1 LE 0] THEN #3000 = 1
例2:仕上げ工具(#100) かつ 仕上げ加工(#101) なら送りを切替
IF [#100 EQ 1 AND #101 EQ 1] GOTO 100
⋮
⋮
N100 F100.
3) 繰り返し(WHILE)
繰り返しは WHILE を使います。DO と END の番号は一致させます(例:DO 1 と END 1)。
基本形
WHILE [ 条件 ] DO N
(繰り返したい処理)
END N
例:#1 が 10 未満の間、#1 を増やしながら繰り返す
#1 = 0
WHILE [#1 LT 10] DO 1
G01 X#1
#1 = #1 + 1
END 1
悪い例:無限ループ(抜ける条件が来ない)
#1 = 0
WHILE [#1 GT 0] DO 1
G01 X#1
#1 = #1 + 1
END 1
次回は「マクロを使用した加工の実例」を扱います(第5回へ)。