【マクロレシピ】円周上に等間隔で加工する方法(FANUC & OSP)

マクロレシピ

上の図のように、ワークの中心を原点にして円周上に等間隔で加工する──これ、現場でよく出てくるパターンですよね。

でも、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か所分の加工パスだけ書けば、勝手に等間隔で複製されるわけです。

💡 補足:「PREG」について
サブ呼び出しを変数指定(CALL O=VC101)で使う場合、事前にPREGでO番号を登録しておく必要があります。
詳しくはこちら 👉 オークマのPREG解説

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出力の手間を減らして現場の効率化につながる小ワザです。

    「お、使えそう」と思ったら、ぜひ現場で試してみてください!