この記事はオークマ(OSP)のマシニングセンタをお使いの方で
思って勉強している人に向けて書いています。
この記事はNCプログラムを基本的に理解している方が少しレベルアップできる記事です。
今回は 穴加工を「MODIN (サブプログラムの軸移動時呼び出し)」 でプログラミングする方法を紹介します。メリットは固定サイクルだけでは面倒な加工を簡単に作れるようになり、使う工具の数も少なくできます。
今回の記事ではマクロや変数は説明しません。
NCのプログラムが初めての人は下の記事からお読みください。
この記事では、まず円弧加工、ヘリカル加工、「CALL (サブプログラムの呼び出し)」を使ったプログラムの紹介をして、同じ動きを「MODIN (サブプログラムの軸移動時呼び出し)」を使って作る方法を説明します。
円弧加工
円弧補間G2、G3を使って穴の加工する方法を紹介します。
円弧補間についてはこちら⇓
マシニングセンタ-の円弧補間プログラムの作り方
ダウンカットで穴加工するのでG3を使い、穴位置に移動して同じ加工をしたいので、G91のインクレメンタル指令でサブプログラムを作ります。
φ20㎜エンドミルでφ40㎜の穴の加工のプログラム例です。
X100 Y50 と X150 Y100 の2か所に加工します。
T21M6 (ENDMILL 20) G15 H1 G0 G90 X100 Y50 加工位置1 G56 Z100 H21 S1000 F300 M3 CALL O1001 サブ呼び出し X150. Y100. 加工位置2 CALL O1001 サブ呼び出し M30 O1001 サブプログラム Z5 G1 Z-10 G1 G91 Y10 φ40穴加工開始 G3 J-10 一周円弧 G1 G40 Y-10 穴加工終了 G0 G90 Z100 RTS サブプロ終了
ヘリカル加工
次に、円弧補間にZ方向の座標を入れると、3次元(螺旋状)の動きをします。
ヘリカル補間についてはこちら⇓ (ファナックで説明してます。)
ヘリカル加工のプログラムの作り方
円弧加工のプログラム例と同様のプログラムでサブプログラムの円弧加工の部分をヘリカル加工に換えました。
T21M6 (ENDMILL 20) G15 H1 G0 G90 X100 Y50 加工位置1 G56 Z100 H21 S1000 F300 M3 CALL O1001 サブ呼び出し X150 Y100 加工位置2 CALL O1001 サブ呼び出し M30 O1001 サブプログラム Z5 G1 Z0 変更部分 G1 G91 Y10 φ40穴加工開始 G3 J-10 Z-5 ヘリカル 1周目 J-10 Z-5 ヘリカル2週目 J-10 一周円弧 Z-10 G1 G40 Y-10 穴加工終了 G0 G90 Z100 RTS
赤のマーカー部分のみヘリカル補間に変更しました。
加工形状は円弧加工と同じになります。
軸移動時のサブプログラムの呼び出し
上の2つのプログラム例では「穴位置に移動➞サブプログラムの呼び出し」を繰り返すので穴の数が増えるとプログラムを作るのが大変です。
そこでサブプログラムの軸移動時呼び出し MODIN を使います。
※MODIN と O の間にはスベースが必要です。
MODIN O[サブプログラム名] X100 Y50 穴位置 X150 Y100 穴位置 MODOUT キャンセル
サブプログラムを MODIN で呼び出すと MODOUT を読み込むまで、軸移動をするたびにサブプログラムを実行します。
上のプログラム例だと、X100 Y50 と X150 Y100 でサブプログラムを実行します。
MODIN のブロックではサブプログラムは実行しません。
サブプログラムを実行するのはMODIN の次のブロック以降の最初の軸移動の時になります。
固定サイクルと違い、アドレスの「NCYL」は使えません。
最初の円弧加工のプログラム例をMODIN を使う方法に変更しました。
T21M6 (ENDMILL 20) G15 H1 G0 G90 X100 Y50 G56 Z100 H21 S1000 F300 M3 MODIN O1001 サブ呼び出し X100 Y50 加工位置1 X150 Y100 加工位置2 MODOUT キャンセル M30 O1001 サブプログラム Z5 G1 Z-10 G1 G91 Y10 φ40穴加工開始 G3 J-10 一周円弧 G1 G40 Y-10 穴加工終了 G0 G90 Z100 RTS
MODIN の下のブロックに穴位置を追加するだけで固定サイクルと同じように加工を繰り返してくれます。(例では X100Y50、 X150Y100 の2か所で O1001 を実行)
つまり、穴位置もサブプログラムにしておけば固定サイクルと同様に使いまわすことができます。
MODIN O1001 加工のサブ CALL O1002 位置のサブ MODOUT
まとめ
いかがでしたか?
もう一度おさらいすると
MODIN O [サブプログラム名] 加工したい位置を記述 MODOUT
MODOUTのキャンセルを忘れないように注意しましょう。
今回は穴加工を紹介しましたが、長穴やポケットなど他の加工にも応用できます。
同じ加工を位置を変えて繰り返す場合 「MODIN / MODOUT」を使うとプログラムが見やすく、簡単になります。
以上です。
最後まで読んでいただきありがとうございます。
参考にしていただければ幸いです。