NCプログラムの作り方-1「ファナック編」

NCプログラム

この記事は

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

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

この記事はNCプログラムを基本的に理解している方が少しレベルアップできる記事です。

今回は 穴加工を「マクロモーダル呼び出しG66」 でプログラミングする方法を紹介します。メリットは固定サイクルだけでは面倒な加工を簡単に作れるようになり、使う工具の数も少なくできます。

注意

今回の記事ではマクロや変数は説明しません。

NCのプログラムが初めての人は下の記事からお読みください。

この記事では、まず円弧加工、ヘリカル加工、でM98のサブプログラムの呼び出しを使ったプログラムの紹介をして、同じ動きを「マクロモーダル呼び出し G66」を使って作る方法を説明します。

円弧加工

円弧補間G2、G3を使って穴の加工する方法を紹介します。

ダウンカットで穴加工するのでG3を使い、穴位置に移動して同じ加工をしたいので、G91のインクレメンタル指令でサブプログラムを作ります

φ20㎜エンドミルでφ40㎜の穴の加工のプログラム例です。
X100.Y50  と X150.Y100.  の2か所に加工します。

O1000
T21
M6
(ENDMILL 20)
G54 G0 G90 X100. Y50.  加工位置1
G43 Z100. H21
S1000 F300 M3
M98 P1001        サブ呼び出し
X150. Y100.     加工位置2
M98 P1001      サブ呼び出し
M30

O1001                サブプログラム
Z5.
G1 Z-10.
G1 G91 Y10.   φ40穴加工開始
G3 J-10.       一周円弧
G1 G40 Y-10.  穴加工終了
G0 G90 Z100.
M99

ヘリカル加工

次に、円弧補間にZ方向の座標を入れると、3次元(螺旋状)の動きをします。

円弧加工のプログラム例と同様のプログラムでサブプログラムの円弧加工の部分をヘリカル加工に換えました

O1000
T21
M6
(ENDMILL 20)
G54 G0 G90 X100. Y50.  加工位置1
G43 Z100. H21
S1000 F300 M3
M98 P1001    サブ呼び出し
X150. Y100.  加工位置2
M98 P1001  サブ呼び出し
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.
M99

赤のマーカー部分のみヘリカル補間に変更しました。
加工形状は円弧加工と同じになります。

マクロモーダル呼び出し

上の2つのプログラム例では「穴位置に移動➞サブプログラムの呼び出し」を繰り返すので穴の数が増えるとプログラムを作るのが大変です。

そこでマクロモーダル呼び出しG66を使います。

G66 P [サブプログラム番号]
X100.Y50.   穴位置
X150.Y100.    穴位置
G67       キャンセル

サブプログラムを G66 で呼び出すと G67 を読みこむまで、軸移動をするたびにサブプログラムを実行します

上のプログラム例だと、X100.Y50. と X150.Y100. でサブプログラムを実行します。
G66のブロックではサブプログラムは実行しません。

注意

サブプログラムを実行するのはG66の次のブロック以降の最初の軸移動の時になります。
固定サイクルと違い、アドレスの「K」は使えません。

最初の円弧加工のプログラム例をマクロモーダル呼び出しを使う方法に変更しました。

O1000
T21
M6
(ENDMILL 20)
G54 G0 G90 X100. Y50.  
G43 Z100. H21
S1000 F300 M3
G66 P1001      マクロモーダル呼び出し
X100. Y50.         加工位置1
X150. Y100.  加工位置2
G67        キャンセル
M30

O1001               サブプログラム
Z5.
G1 Z-10.
G1 G91 Y10.   φ40穴加工開始
G3 J-10.    一周円弧
G1 G40 Y-10.  穴加工終了
G0 G90 Z100.
M99

G66の下のブロックに穴位置を追加するだけで固定サイクルと同じように加工を繰り返してくれます。(例では X100.Y50. X150.Y100. の2か所で O1001 を実行)

つまり、穴位置もサブプログラムにしておけば固定サイクルと同様に使いまわすことができます

G66 P1001     加工のサブ
M98 P1002  位置のサブ
G67
マクロ呼び出しとは

「マクロ呼び出し」は変数を使える機能になります。今回のように変数を使わない、シンプルな使い方もできます。

マクロについては別の機会に紹介する予定です。

まとめ

いかがでしたか?

もう一度おさらいすると

G66 P [サブプログラム番号]

加工したい位置を記述

G67

G67のキャンセルを忘れないように注意しましょう。

今回は穴加工を紹介しましたが、長穴やポケットなど他の加工にも応用できます。
同じ加工を位置を変えて繰り返す場合 「マクロモーダル呼び出し G66」を使うとプログラムが見やすく、簡単になります。

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