上図のように、「ワークの中心を原点にして、円周上に等間隔で加工したい」
──これ、けっこうよくある加工パターンじゃないですか?
でも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箇所全部自動で加工してくれるってことです。めっちゃ便利!
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の手間を減らせるし、加工ミスも減る。
「お、使えるな」と思ったら、ぜひ現場で試してみてください!