NCプログラムの作り方-1【オークマ(OSP)編】

NCプログラム

この記事はオークマ(OSP)のマシニングセンタをお使いの方

  • NCプログラム作ってるけど、もう少しレベル上げたいなー とか
  • NCプログラムをもう少し早く打ちたいなー とか

思って勉強している人に向けて書いています。

この記事は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」を使うとプログラムが見やすく、簡単になります。

以上です。
最後まで読んでいただきありがとうございます。
参考にしていただければ幸いです。