G91インクレメンタルとM98サブプログラムを使ってスマートなNCプログラムの作成を紹介します。
(ヘッダー部分とフッター部分は省略して加工のプログラムだけ書いていきます。)
G91インクレメンタル指令
現在位置をプログラム原点として、現在位置からの移動量で指令します、
M98サブプログラム呼び出し
メインプログラムからサブプログラムへ移行し、M99(サブプログラム終了)でメインプログラムへ復帰します。
加工内容の確認
Φ8.0のエンドミルを使って20.0mmの穴加工と20.0mmの溝加工をします。
(Φ10.0スタートホールの加工は省略します)
穴加工に必要な2点と溝加工に必要な6点
緑点は始点と終点
赤点は加工点になります。
G90アブソリュートのみで作成したNCプログラム
穴加工に必要な位置
X20.0 Y-20.0
X26.0 Y-20.0
X120.0 Y-60.0
X126.0 Y-60.0
穴加工プログラム
X20.0 Y-20.0
Z1.0
G01 Z-0.1 F500
X26.0 F300
G03 I-6.0
G01 X20.0
G00 Z30.0
X120.0 Y-60.0
Z1.0
G01 Z-0.1 F500
X126.0 F300
G03 I-6.0
G01 X120.0
G00 Z30.0
穴加工プログラムは123文字の14ブロックになります。
加工深さが18mmなので
6mm×3回の加工プログラムは373文字42ブロック
4.5mm×4回の加工プログラムは496文字56ブロック
溝加工に必要な位置
X20.0 Y-54.0
X20.0 Y-66.0
X40.0 Y-54.0
X40.0 Y-60.0
X40.0 Y-66.0
X46.0 Y-60.0
X100.0 Y-14.0
X100.0 Y-26.0
X120.0 Y-14.0
X120.0 Y-20.0
X120.0 Y-26.0
X126.0 Y-20.0
溝加工プログラム
X40.0 Y-60.0
Z1.0
G01 Z-0.1 F500
X46.0 F300
G03 X40.0 Y-54.0 R6.0
G01 X20.0
G03 Y-66.0 R6.0
G01 X40.0
G03 X46.0 Y-60.0 R6.0
G01 X40.0
G00 Z30.0
X120.0 Y-20.0
Z1.0
G01 Z-0.1 F500
X126.0 F300
G03 X120.0 Y-14.0 R6.0
G01 X100.0
G03 Y-26.0 R6.0
G01 X120.0
G03 X126.0 Y-20.0 R6.0
G01 X120.0
G00 Z30.0
溝加工プログラムは241文字の22ブロックになります。
加工深さが18mmなので
6mm×3回の加工プログラムは725文字66ブロック
4.5mm×4回の加工プログラムは968文字88ブロック
G90アブソリュートとM98サブプログラムで作成したNCプログラム
穴加工メインプログラム
X20.0 Y-20.0
Z1.0
G01 Z-0.1 F500
M98 P11
G00 Z30.0
X120.0 Y-60.0
Z1.0
G01 Z-0.1 F500
M98 P12
G00 Z30.0
穴加工サブプログラム
O11
X26.0 F300
G03 I-6.0
G01 X20.0
G00 Z30.0
M99
O12
X126.0 F300
G03 I-6.0
G01 X120.0
G00 Z30.0
M99
穴加工メインプログラムは83文字の10ブロック
穴加工サブ(O11)プログラムは36文字の5ブロック
穴加工サブ(O12)プログラムは38文字の5ブロックになります。
加工深さが18mmなので
6mm×3回の加工メインプログラムは251文字30ブロック
4.5mm×4回の加工メインプログラムは336文字40ブロック
溝加工メインプログラム
X40.0 Y-60.0
Z1.0
G01 Z-0.1 F500
M98 P13
G00 Z30.0
X120.0 Y-20.0
Z1.0
G01 Z-0.1 F500
M98 P14
G00 Z30.0
溝加工サブプログラム
O0013
X46.0 F300
G03 X40.0 Y-54.0 R6.0
G01 X20.0
G03 Y-66.0 R6.0
G01 X40.0
G03 X46.0 Y-60.0 R6.0
G01 X40.0
G00 Z30.0
M99
O0014
X126.0 F300
G03 X120.0 Y-14.0 R6.0
G01 X100.0
G03 Y-26.0 R6.0
G01 X120.0
G03 X126.0 Y-20.0 R6.0
G01 X120.0
G00 Z30.0
M99
溝加工メインプログラムは83文字の10ブロック
溝加工サブ(O13)プログラムは93文字の9ブロック
溝加工サブ(O14)プログラムは99文字の9ブロックになります。
加工深さが18mmなので
6mm×3回の加工メインプログラムは251文字30ブロック
4.5mm×4回の加工メインプログラムは336文字40ブロック
G91インクレメンタルとM98サブプログラムで作成したNCプログラム
穴加工メインプログラム
X20.0 Y-20.0
Z1.0
G01 Z-0.1 F500
M98 P11
G90 G00 Z30.0
X120.0 Y-60.0
Z1.0
G01 Z-0.1 F500
M98 P11
G90 G00 Z30.0
穴加工サブプログラム
O11
G91 G01 X6.0 F300
G03 I-6.0
G01 X-6.0
G90 G00 Z30.0
M99
穴加工メインプログラムは101文字の10ブロック
穴加工サブ(O11)プログラムは44文字の5ブロックになります。
加工深さが18mmなので
6mm×3回の加工メインプログラムは271文字30ブロック
4.5mm×4回の加工メインプログラムは360文字40ブロック
溝加工メインプログラム
X40.0 Y-60.0
Z1.0
G01 Z-0.1 F500
M98 P12
G90 G00 Z30.0
X120.0 Y-20.0
Z1.0
G01 Z-0.1 F500
M98 P12
G90 G00 Z30.0
溝加工サブプログラム
O12
G91 G01 X6.0 F300
G03 X-6.0 Y6.0 R6.0
G01 X-20.0
G03 Y-12.0 R6.0
G01 X20.0
G03 X6.0 Y6.0 R6.0
G01 X-6.0
G90 G00 Z30.0
M99
溝加工メインプログラムは89文字の10ブロック
溝加工サブ(O12)プログラムは97文字の9ブロックになります。
加工深さが18mmなので
6mm×3回の加工メインプログラムは271文字30ブロック
4.5mm×4回の加工メインプログラムは360文字40ブロック
各NCプログラムの比較
加工深さ1回で加工するNCプログラムの比較
NCプログラムの種類 | 穴プログラム文字数 | 穴プログラムブロック数 | 溝プログラム文字数 | 溝プログラムブロック数 | プログラム本数 |
---|---|---|---|---|---|
G90のみで作成 | 123文字 | 14ブロック | 241文字 | 22ブロック | 1 |
G90とM98で作成 | 83+36+38文字 | 10+5+5ブロック | 83+93+99文字 | 10+9+9ブロック | 5 |
G91とM98で作成 | 101+44文字 | 10+5ブロック | 89+97文字 | 10+9ブロック | 3 |
加工深さ3回で加工するNCプログラムの比較
NCプログラムの種類 | 穴プログラム文字数 | 穴プログラムブロック数 | 溝プログラム文字数 | 溝プログラムブロック数 | プログラム本数 |
---|---|---|---|---|---|
G90のみで作成 | 373文字 | 42ブロック | 725文字 | 66ブロック | 1 |
G90とM98で作成 | 251+36+38文字 | 30+5+5ブロック | 251+93+99文字 | 30+9+9ブロック | 5 |
G91とM98で作成 | 271+44文字 | 30+5ブロック | 271+97文字 | 30+9ブロック | 3 |
加工深さ4回で加工するNCプログラムの比較
NCプログラムの種類 | 穴プログラム文字数 | 穴プログラムブロック数 | 溝プログラム文字数 | 溝プログラムブロック数 | プログラム本数 |
---|---|---|---|---|---|
G90のみで作成 | 496文字 | 56ブロック | 968文字 | 88ブロック | 1 |
G90とM98で作成 | 336+36+38文字 | 40+5+5ブロック | 336+93+99文字 | 40+9+9ブロック | 5 |
G91とM98で作成 | 360+44文字 | 40+5ブロック | 360+97文字 | 40+9ブロック | 3 |
最後に
比較を見ると加工回数が多くなるにつれて差が出てくるのが分かります。
プログラムの文字数もそうですが編集箇所数にも影響が出てくるので、加工の状況によってG91やM98の使い分けが必要になってきます。