マクロ解説:第4回「カスタムマクロを使った数式と条件分岐・繰り返し」

一般的な演算(関数)や、条件分岐繰り返しは、カスタムマクロとして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 かつ 条件2
  • OR:条件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 を使います。DOEND の番号は一致させます(例: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回へ)。

マクロ解説:第5回へ

>訪問デモ・オンラインデモ受付中!

訪問デモ・オンラインデモ受付中!

弊社シンプルテックがご相談をお受けいたします。
ぜひお気軽にお問い合わせください!

CTR IMG