円周上に等間隔で加工したい?CAMで全部出すのはもうやめよう。G68(FANUC)G11(オークマOSP)の活用法

NCコード

上図のように、「ワークの中心を原点にして、円周上に等間隔で加工したい」

──これ、けっこうよくある加工パターンじゃないですか?

でもCAMで毎回全箇所のパス出すの、めんどくさくないですか?

1個パス作って、あと角度だけ振ってくれたらいいのに…って思ったことある人、多いはず。

実はこれ、回転補正+マクロで一発解決できます。

今回は、オークマ(OSP)とFANUCでのやり方を紹介していきます!

オークマ(OSP)の場合:「G11」と「IF文ループ」で回す!

回転補正「G11」の使い方

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)で角度を指定
  • サブプログラム呼び出し(O1001)
  • 角度カウンターを+45
  • まだ360未満なら繰り返す

つまり、1ヶ所分の加工パスだけ書けば、45度ずつ角度を振って8箇所全部自動で加工してくれるってことです。めっちゃ便利!

📝補足:「PREG」ってなに?
サブ呼び出しで変数指定(CALL O=VC101)する場合は、事前にO番号をPREGで登録しておく必要があります。
詳しくは こちらの記事 にまとめてます。

FANUCの場合:「G68」と「WHILE文ループ」で回す!

回転補正「G68」の使い方

G68 X0 Y0 R10.
M98 P1111
G69
  • G68:回転補正ON
  • X / Y:回転の中心座標
  • R:角度(ここでは10°)
  • G69:回転補正キャンセル

こちらも基本の流れはオークマと一緒ですね。

G68で角度振って→サブ呼んで→G69で解除。

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パスだけ作って、あとはマクロでぐるっと回せばOK

  • パスを修正したい → 1箇所だけ直せば全体に反映
  • 加工数変えたい → VC103の角度変えれば即対応

つまり、圧倒的に楽!プログラムもスッキリ!編集もしやすい!

現場で重宝する小ワザです。

おまけリンク

最後に

この手の「ちょっと便利なマクロ技」って、ベテランの人は当たり前に使ってたりするんですが、最初に見たとき「なにこれ、何やってんの?」ってなりがちなんですよね。

でも、1回理解するとめっちゃ応用が効くし、CAMの手間を減らせるし、加工ミスも減る

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