上の図のように、ワークの中心を原点にして円周上に等間隔で加工する──これ、現場でよく出てくるパターンですよね。
でも、CAMで全部の角度ぶんツールパスを出すのは正直めんどくさい…。
「1か所分のパスだけ作って、あとは角度を振ってコピーできたらええのに」と思ったこと、ありませんか?
実はこれ、回転補正 + マクロ を使えば簡単に実現できます。
ここでは オークマ(OSP)とFANUC の両方のやり方を紹介します。
オークマ(OSP)の場合:「G11」+「IF文ループ」
回転補正の基本(G11 / G10)
G11 X0 Y0 P10.
CALL O1001
G10
- G11:回転補正ON
- X / Y:回転の中心座標(ワーク中心)
- P:角度(ここでは10°)
- G10:回転補正キャンセル
流れは「G11で角度を振る → サブ呼び出し → G10で戻す」という形です。
マクロでぐるっと一周させる
VC101 = 1001 (サブのO番号)
VC102 = 0 (角度カウンター)
VC103 = 45 (角度の間隔)
O1111
PREG O1001
N1
G11 X0 Y0 P[VC102]
CALL O=VC101
G10
VC102 = VC102 + VC103
IF[ VC102 LT 360 ] N1
RTS
やってることはシンプルです。
-
角度を指定(G11)
-
サブを呼び出す
-
角度を+45°
-
まだ360°未満なら戻る
結果、1か所分の加工パスだけ書けば、勝手に等間隔で複製されるわけです。
FANUCの場合:「G68」+「WHILE文」
回転補正の基本(G68 / G69)
G68 X0 Y0 R10.
M98 P1111
G69
-
G68:回転補正ON
-
X / Y:回転の中心座標
-
R:角度(例:10°)
-
G69:回転補正OFF
👉 流れはオークマと同じで、「角度を振る → サブ呼ぶ → 戻す」です。
WHILE文を使ったぐるぐるマクロ
#101 = 1001 (サブのO番号)
#102 = 0 (角度カウンター)
#103 = 45 (角度の間隔)
O1111
WHILE[ #102 LT 360 ] DO1
G68 X0 Y0 R#102
M98 P#101
G69
#102 = #102 + #103
END1
RTS
FANUCの場合はWHILE文でループ。
こちらも考え方は同じで、
- 0度 → サブ呼び出し
- 45度 → サブ呼び出し
- 90度 → …以下略
って感じで、1周ぶん回してくれます。
比較表
メーカー | 回転補正 | ループ方法 | サブ呼び出し |
---|---|---|---|
オークマ | G11 | IF文+ジャンプ | CALL O=VC変数 |
FANUC | G68 | WHILE文 | M98 P#変数 |
なんで便利なの?
通常、CAMで円周加工を出すときはすべての角度ぶんツールパスを出力する必要があります。
でも、この方法なら…
-
1パスだけ作成 → マクロでぐるっと回す
-
修正も 1か所直せば全部に反映
-
加工数を変えたいときも 角度の間隔を変えるだけ
👉 結果、楽・ミス減・編集しやすい の三拍子!
まとめ
こういう「ちょっと便利なマクロ技」は、ベテランなら当たり前に使っていたりしますが、初めて見ると「何してんの?」となりがち。
でも一度理解してしまえば応用範囲が広く、CAM出力の手間を減らして現場の効率化につながる小ワザです。
「お、使えそう」と思ったら、ぜひ現場で試してみてください!