オークママシニングセンタのプログラム。まずはこれを覚える!

マシニングセンタを使えるようになるためには多くのことを覚えなければなりません。

その中で、まずはじめにできるようになる必要があるのがプログラムです。

様々なプログラムを作る必要がありますが、全ては基本的なプログラムのテンプレートを変形させてプログラムを完成させます。

プログラムの基本形を以下に記しておくので、参考にしてください

オークママシニングプログラムの基本のテンプレート

以下の図面のプログラムをつくります。

プログラムの例題図面

上の図面で、赤線で示した部分をφ10のエンドミルで切削するプログラムです。

プログラムテンプレート①

G15H2
T4M6
G90G0X70Y-30T7
G56H4Z100
S1000M3
M8

G0Z2
G1Z-0.1F1
G42G1X60D4F2
G2X70Y-20R10
G1X95Y-10
Y10
G40G1X105
G0Z100M9
M
5
M2

前提条件として、工具はT4に設置したφ10のエンドミルを使い、D補正はH4を使っています。
また、ミスがないか実際にプログラムを動かして確認するために、切り込み深さは0.1mmに設定しています。

以上がプログラムの基本のテンプレートです。

赤太字部分が特に重要な部分

ここは大抵のプログラムで構成が共通する部分です。

上のプログラムを覚えてしまえば大抵のプログラムは作れる

上のプログラムさえ覚えてしまえば、太字以外の部分を変えるだけで大抵のプログラムは作れてしまいます

例えば最もよく使う高速深穴サイクルでは、

NCYL G73 Z_ R2 Q1 F_
CALL O1

を上の例の細字の部分に入れてしまえば完成します。

あとはどんどんプログラムを実際に作って練習し、作成のスピードを上げていきましょう。

上のプログラムでこんな動きをします

テンプレートの細字部分で指令しているのは、エンドミルの動き方です。

このように開始点から左に動かしながらG42の工具径補正をかけ、アプローチ円を描きながらエンドミルがワークにあたるようになっています。

アプローチ円を描くことで、ワークとエンドミルが急に食い込むことがなくなるため負荷が少なくなり、切削開始点の継ぎ目が目立たなくなります。

その後切削を完了したら右側に移動しながら工具径補正をキャンセルして完了です。

ちなみにG42はアップカット、G41はダウンカットになります。

本記事ではアップカットを使っていますが、基本的にダウンカットの方が刃物の寿命は長くなります。

アップカット、ダウンカットについてはこちらで詳しく解説しています!

プログラムの意味を順番に解説します

プログラムは、ただ暗記してもその意味が分かっていなければ意味がありません。

上のプログラムがどういった意味を示しているのか説明するので、理解した上で覚えるようにしましょう。

可能であればプログラムテンプレートを印刷し、その紙を見ながら解説を読むようにしてください。

G15H2→2番の原点を使えという意味

プログラムの一番初めに必ず使うのがG15です。

G15は、マシニングセンタに保存された原点を呼び出すコードです。

オークマをはじめとしたマシニングセンタは、複数箇所の原点を保存することができます

その原点はHコードで呼び出します。H1,H2,H3・・・という具合に、Hコードに設定した原点を呼び出すことできます。

ちなみに私の担当しているマシニングセンタは古い機械なので原点が4つしか保存できず、H1~H4までしか使えませんが、最近の機械は1000個の原点を保存できます。

勤務先のマシニングでは、バイスの固定部の口金をY軸の原点にする場合は2番の原点を使っているので、H2としています。

同様に、三番の原点を呼び出したい場合G15H3、四番の場合はG15H4になります。

T4M6→4番の工具に交換するという意味

T4のTはtool(ツール)の頭文字です。つまり4番の工具という意味

そして、M6は、工具交換を行うという意味です。

勤務先のマシニングセンタでは、4番にφ10荒用のエンドミルをつけているため、T4としています。

同じように、10番の工具に交換したい場合はT10M6となります。

G90G0X70Y-30T7→アブソリュート指令でX70Y-30の座標まで早送りで移動し、7番の工具を待機

G90というのは、座標指示をアブソリュート指令で行うという意味です。

そして、G0X70Y-30というのは、X70,Y-30の座標に早送り移動するという意味です。

G0が、早送りの指示になります。

T7は前項で説明したとおり、7番の工具という意味です。今回のようにT7とだけ入力すると、ATCマガジンにて「7番の工具を待機位置に移動する」という意味になります。

この操作をしておくことで、次の工具交換までの時間を短縮できます。

アブソリュート指令とは?

アブソリュート指令とは、入力した座標の地点を示す指令方法です。

例えば、もともとX10Y10の座標に工具があったとすると、アブソリュート指令でX70Y-30と指示すると、X70Y-30の座標を示します。 

当然のことに思えるでしょうが、アブソリュートに対してインクリメンタル指令という指令方法もあり、その場合は、同様に指示するとX80Y-20の座標を示します。ちなみにインクリメンタルは、もともとの座標から指令した分だけ加算される指令方法です。

基本はアブソリュート指令しか使いませんので、G90だけ覚えておけば大丈夫です。

G56H4Z100→4番の工具長補正を呼び出してZ100の座標へ移動

G56は、工具長補正を呼び出すGコードです。

当然ですが、工具は種類によって長さが違いますよね。その長さを機械に教えてやる必要があります。

それが工具長補正です。

今回は4番の工具を使っており、4番の工具長補正を使うためH4です。

同じように、例えば10番の工具長補正を呼び出したい場合は、G56H10となります。

このときあらかじめ、機械の工具データ設定欄(例においてはH4の欄)に補正値を入力しておく必要があるため注意しましょう。

そしてZ100は、Z100の座標に早送りで移動させる指示です。

ここで気になった方もいらっしゃると思いますが、先程は座標の前に入っていたG0(早送り)が入っていないですね。

それはG0が、一度入力すればその後上書きされるまでずっと有効な指示であるためです。

このG0ような一度入力すればその後指示が継続されるプログラムを「モーダルといいます。

G0だけでなく、G1やG2もモーダルですので、有効活用すれば文字数を減らすことができます。

Z100に一度動かすのは、高さをチェックするためです。

もし工具長補正に入力した値が間違っていたり原点を間違っていた場合、Zをマイナス方向に動かしたときにワークやバイスにぶつかってしまう可能性がありますよね。

そのような間違いがないことを、Z100に動かすことで確認します。

私の場合は、Z100に動いた工具に100mmのブロックを当て、高さが間違っていないことを確認していました。(このブロックをあててチェックする工程は、経験を積めばぶつかる前に感覚で確認できるため、省略することができます。)

S1000M3→1000回転で主軸を正転

S1000とは、回転数を1000rpmとする指示です。

同じように、500rpmであればS500になります。

M3は、主軸を正転させる指示です。

これらの指示で、主軸が1000rpmで回り始めます。

M8→クーラント吐出

M8は、クーラントを出す指示です。

G1Z-0.1F1→F1の送り速度でZ-0.1の座標まで切削送り

G0Z2については、先程説明したとおりの早送りなので省略します。

G0が早送りであるのに対して、G1は切削送り(モーダル)ですFで指定した送り速度で工具を送る指令です。

Fは例えばF100であれば、100mm/minの送り速度を表します。

なので今回はF1なので1mm/min・・・かというとそうではありません。F1,F2,F3,F4は、マシニングの4つの送り速度ダイヤルに割り当てられており、例えばF1とすると、1番の送りダイヤルで指定した送り速度になります。

ダイヤルはオーバーライドスイッチとも呼ばれます。

ダイヤルで送り速度を調節できるようにすることで、加工中でも自由に送り速度を調節することができます。

ちなみにFの指令もモーダルです。

なので、G1Z-0.1F1は、F1のダイヤルで指定した送り速度で、Z-0.1の座標まで切削送りをするという指令になります。

このダイヤルは、最近の機械では2つしか無い場合や、一つもない場合も多いです。その場合はF1とF2しか使えません。

オーバーライドスイッチ(ダイヤル)はこのように配置されている。最近の機械ではダイヤル数が少ない傾向。

G42G1X60D4F2→4番の工具径補正を使い、送り速度F2でX60の座標に接するように補正

G42とは、工具径補正のことです。

工具径補正とは、あらかじめH番号に設定した工具の半径分だけ逃げて軌道を描いてくれる機能です。

下図のように黒の線のプログラムを描いても、実際に工具が通る軌道は赤・緑矢印の軌道になります。

この機能によって、エンドミル径が変わっても工具径補正値を変えるだけでプログラムで描いた通りの形状を加工することが可能になります。

セドヤのブログ様より画像を引用。赤が外側、緑が内側でのエンドミルの軌道。https://sedoya.net

私の勤務先では、表面をきれいにするために主にアップカットを使うので、ダウンカットのG41よりもアップカットのG42を主に使います。

ですが、一般的には工具寿命が長くなるダウンカットをおすすめします。実際ほとんどの工具でダウンカットが推奨されています。

アップカットダウンカットの説明はこちら

アップカットのG42では、工具が指定した座標の右側に接するように移動します。X座標も入力してあるのは補正をかける際に移動が生じるからです。

そのとき必ずD番号を指定するようにします。D番号に入力した補正値で、工具径補正がかかります。

今回は4番の工具を使っているため、工具データ設定欄のD4に入力した径補正値を呼び出しています。(φ10荒のエンドミルで、径補正値は5.5と入力しています。)

そしてF2は先程説明したとおり、ダイヤルの送り速度です。

G42指令を行う前は、エンドミルの中心に指令した座標がきていましたが、G42指令を行うと、エンドミルの左端に指令した座標が来るようになります。言い換えると、指令した座標の右側にエンドミルが接するように移動するということです。

以上をつなげると、G42G1X60D4F2という指令は、「4番の工具径補正を使い、送り速度F2で切削送りしながら、X60の座標にエンドミルが接するように補正」ということになります。

G42指令

G2X70Y-20R10→X70Y-20をめがけて時計回りに半径10の円弧を描いて切削送り

G2,G3は円弧補間と呼ばれるGコードです。

G1は直線の切削送りでしたが、G2、G3は円弧の切削送りです。

G2は時計回りの円弧、G3は反時計回りの円弧で、G2X70Y-20R10のように、座標と、描いてほしい半径をRをつけて指示します。

今回の例「G2X70Y-20R10」であれば、現在の座標から始まり、X70Y-20の座標に向かってR10の円弧を描きながら切削送りを行う指令となります。

このようにワークと接触するために描く円弧のことをアプローチ円と言います。

アプローチ円を描きながらワークに接触すれば、直線でワークとぶつかるのと比べて接触開始時の負荷が少なくなる上、削りはじめの部分のバリが出にくくなり、継ぎ目ができる場合も目立ちにくくなります。

G40G1X105→工具径補正をキャンセルし、X105の座標に切削送り

G1X95Y-10
Y10

は上で解説した切削送りのプログラムなので飛ばします。 これらのプログラムで切削が終わりました。

次に、G42の工具径補正はモーダルですので、キャンセルしてやる必要があります。

これを行っておかないと、意図しないところで工具径補正がかかったまま予期しない軌道で工具が動いてしまい、ぶつかったりワークが不良になってしまう可能性がでてきます。

その工具径補正キャンセルするコードがG40です。

G42を使ったときのように、移動が生じますので移動先の座標を入力しなければなりません。

そのためG40G1X105となります。X105の座標に切削送りしながら工具径補正をキャンセルしてくれます。

G0Z100M9→Z100に早送りし、クーラントを停止

工程の終わりにつけるきまり文句です。

M9は、出ているクーラントを止めるという指示です。

そしてぶつからないように早送りでZ座標を100まで上げます。

M5→主軸停止

上に続いて工程の終わりにつけるきまり文句。

M5は主軸の回転の停止を意味します。

M2→プログラム終了

M2でプログラムが終了し、はじめに戻ります

プログラムの最後につけるコードです。

M2を入力しておくことで、作ったプログラムの後に保存用のプログラムを続けていてもM2の部分で終わり、頭出ししてくれます。

こんなプログラムも便利

Y500:テーブルを手前に持ってくるため

M2の前にY500を入力しておくことで、プログラムの最後にテーブルが一番手前まで移動します。

実際はY500まではテーブルは動きませんが、リミットまで早送りで移動します。

プログラムの終わりにテーブルを一番手前に持ってきておくと、ワークの交換や段取りがやりやすくなります。

オプショナルストップ

私は各工程の最後にM1を入力しています。

M1は「オプショナルストップ」といい、オプショナルストップボタンがオンになっている場合だけ一時停止するMコードです。

確認中に目を離さなければいけない用事ができたときなど、オプショナルストップを入れておけば工程を途中で止めて対応することができます。

以上の流れを覚えて練習すればOK

以上が基本的な流れになります。次はサブプログラムを使った固定サイクルのプログラムをお教えします。

基本的な固定サイクルさえ覚えてしまえば、あとはその応用でほとんどのプログラムが作れますので、経験を積むごとにどんどんいろんなことが速くできるようになっていきますよ(^^

続編はこちら!!

コメント