1. はじめに
第1弾ではNC旋盤の指令コードGコードとMコード、座標系について解説しましたが、第2弾ではNCプログラムの基本構成、座標計算について解説します。ここから本格的にNCプログラムの内部について解説が始まります。機械を動作させるために必要な指令の並べ方、意味を解説します。
2. NCプログラムの基本構成
NCプログラムの配列は、特別なルールがある訳ではありませんが、必要な指令が必要な時に与えられていれば、指令の順番はあまりこだわりがありません。初期に必要な指令を与えた後は、刃具を動作させる動き(座標)を順に並べることで加工の動作ができるようになります。
一般的なNC旋盤プログラムの基本的な構成を示します。○の部分に適切な数値を入力すれば初期設定は完了します。ここで、基本構成は2パターンあるということを覚えておきましょう。この2つのパターンを状況に合わせて使い分けるだけで、旋削加工のプログラムの骨組みが完成します。
基本構成
O○○○○(BASIC PRORAM)
N○ G○○ M41
G50S○○○○
G00G40G○○G99T○○○○S○○○○M03
パターン1(周速一定制御使用)
①O1000(SAMPLE PROGRAM)
②N1 G54 M41(O.D.ROUGH)
③G50S2000
④G00G40G96G99T0101S150M03
パターン2(回転数一定制御使用)
①O1000(SAMPLE PROGRAM)
②N1 G54 M41(O.D.ROUGH)
④G00G40G97G99T0101S150M03
この2パターンの違いは、周速一定制御を使用するかしないかでどちらのパターンを使用するかを決めます。見た目はほとんど同じですが、違いは「③:G50S2000(最高回転数設定)」が指令されているかということ、もう一箇所「④:G96(周速一定制御)とG97(回転数一定制御)」のどちらを使用するかという点です。
加工する径の大きさの変化が大きい場合は周速一定制御を使用し、ドリル加工やネジ切り加工のように、加工中に回転数を変化させてはいけない場合は回転数一定制御パターンを使用します。周速って何?という方は、“G96周速一定制御”項で詳しく解説しています。
・周速一定制御・・・・加工径が大きく変化する場合に使用
・回転数一定制御・・・加工中に回転数を変化させてはいけない場合に使用
それでは、内部を詳しく見てみましょう。
①O1000(SAMPLE PROGRAM)
NCプログラムの始まりはプログラム番号という“O(オー)”から始まります。最近ではフォルダー名をプログラム番号として使用できるNCもありますが、基本は“O”になります。番号は4桁で指令し、その後に丸カッコでプログラムの名称や図面番号などを記入します。
②N1 G54 M41(O.D.ROUGH)
次の行は、“N”で始まる番号を使います。これは、シーケンス番号というもので、「工程の番号」などとも呼ばれています。例えば、N1工程は外径荒加工、N2工程は外径仕上げ加工のように各工程を番号で表すことで、途中からスタートする際に区切りが良い目印として使用できます。
“N”もプログラム番号と同じく4桁の数値で指令し、丸カッコで工程の名前などを記入することができます。“O”番号も“N”番号も必ずコメントを記載する必要はありませんが、後でわかりやすくするためにはコメントを入れておくことをお勧めします。
次に同一行に加工原点を示すG54を指令します。この加工原点は第1弾でも解説していますが、G54~G59 最大6つまで設定することができ、この6つの原点のうちどの加工原点を使用するかを指定します。通常は、機械の電源を入れた際にはG54が設定されています。サブスピンドルが搭載されている機械で加工する場合はメインスピンドルは“G54“サブスピンドルは“G55”のように主軸毎に加工原点を設定し、使用します。
M41(主軸選択)は、複合加工機の場合、旋盤の主軸は回転軸と角度割り出し軸の両方の機能がありますので、主軸として使用するのかM91角度割り出し軸(C軸)として使用するのかを選択します。
③G50 S2000
周速一定制御を使用する場合は、G50(最高回転数設定)で主軸がこの工程で回転することができる最高回転数を設定します。G50に続く“S“4桁で最高回転数を指令します。必ずここで設定した回転で回るということは無く、加工で回転させることができる上限の回転数を設定するという事です。使用するチャックや素材を把握している状況により回すことができる回転数が異なりますので安全な回転数を設定する必要があります。
準備機能“G”コード(④G00G40G96G99~~~)
加工工程開始後、初めに必要な準備機能を指令します。基本的なものは機械の電源を入りにした時点で設定されていますが、ここでは、この加工工程に必要な準備機能を確認のために再設定します。これは、万一以前に指令したGコードが残っている場合でも、加工初めに再設定することで違う動作になる事を防止するための安全の意味も含まれています。
G00(早送り、位置決め)、G40(刃先r補正キャンセル)、G96(周速一定制御)またはG97(回転数一定制御)、G99(毎回転送り)、代表的な4つのGコードを指令します。
Tコード(④~~T0101~~)
Tコードは使用する工具が取り付いている刃物台の番号とその刃具の形状補正を指令するものです。Tに続く数値4桁で指令しますが、この4桁の数値は上2桁と下2桁で意味が異なります。上2桁は刃物台の番号、下2桁は工具補正番号を表しています。通常は上2桁と下2桁は同じ数値で指令するのが一般的です。
例えばT0101とは、1番の刃物台を呼び出し、1番の工具補正を使用するというような意味になります。
例 T0101
T ○○ △△
○○ ⇒ 刃物台ステーション番号(工具番号)
△△ ⇒ 工具補正番号(工具形状補正、摩耗補正番号)
S指令(④~~~S150~)
ここでの“S”指令は、周速一定制御を使用する場合と回転数一定制御を使用する場合で、2つの意味があります。G50の後に続く“S”は最高回転数の設定用として使用していますので、別になります。
周速一定制御“G96”を指令した場合、その後に使用される“S”は周速(m/min)としての意味になり、回転数一定制御“G97”を指令した後に使用される”S“は回転数(min-1)になります。
つまり、G96S100と指令した場合は、周速100m/minになり、G97S100と指令した場合は、回転数100min-1ということになります。
周速一定制御G96(切削速度)m/min
周速とは物が1分間回転するときに刃先が進む距離で表されます。例えば同じ回転数でφ100の外径を加工するときとφ50の外径を加工する時にφ100とφ50の刃先の位置が全く同じ位置(一直線)でずれないように円周を進むとした場合、φ100の切削工具はφ50の切削工具の2倍の速さで進まなければなりません。φ50が適正条件であればφ100は適正条件の2倍の速さで加工する事になります。
当然切削条件が高すぎでの加工となり、刃具寿命に影響します。このように加工する径が変わる場合、切削速度を同じにする必要があります。この機能として周速一定制御(G96)があります。この機能は加工する径に合わせて指令した切削速度になるように回転数を調整してくれる機能です。径が大きくなると回転数は下がり、径が小さくなると回転数が速くなります。小径になればどんどん回転数が上がり、最後には機械が回せる最高回転で主軸が回る事になります。これでは素材がチャックから外れ、飛び出してしまう危険があります。
そこで、周速一定制御を使用する場合は、必ず最高回転数“G50“を指定し、周速一定制御を使用した場合でも、指定した回転数に到達するとそれ以上回転は上げないようにしなければなりません。
主軸回転命令(④~~~~M03)
汎用旋盤で主軸を回転させる場合、回転数を決定するため変速ギヤを選択します。その後、主軸回転起動レバーをONにします。NC旋盤も同様に“S”指令で回転数を決定してもまだ回転はしません。回転レバーをONにする作業、これが主軸正転指令“M03”です。回転数を指令し、その後、M03を指令して初めて主軸は回転を始めます。 ここまで初期設定を行えば、あとは切削工具をどのように動作させるかを順に指示してあげれば加工できます。
3. 座標指令
NC旋盤の加工は2次元で表されており、機械電源投入時は“G18”(X-Z平面選択)に設定されています。直径方向をX軸、長手方向をZ軸で表し、加工原点“G54“(X0、Z0)を基準としてX、Zで各ポイントを座標という形で表します。ポイントとは、直線、円弧、テーパなどの始点と終点ということで、各直線や円弧、テーパなどの始点と終点を刃先の進行方向につなぎ合わせて刃具の動作経路を生成する際に使用します。
絶対座標と相対座標
NCプログラムを作成する際のポイント点を表す記号として絶対座標と相対座標があります。
絶対座標は、加工原点からの位置で表され、直径方向が“X”、長手方向が“Z”で表されます。相対座標はインクリメンタルとも呼ばれます。この座標指令は移動量で表され、現在の位置からどれだけ移動させるかという指令を行います。
・絶対座標・・・加工原点からの位置
・相対座標・・・現在の位置からの移動量
絶対座標指令
例:X100.0
直径方向(X軸)は加工原点から直径で100mm(X軸の移動量は50mm)の位置まで移動する。
例:Z50.0
長手方向(Z軸)は加工原点からプラスの方向に50mmの位置まで移動する。
例:X100.0 Z50.0
1行でX軸、Z軸を指令しているので、各軸は同時に移動します。(2軸同時に移動する)
相対座標指令
例:U100.0
直径方向(X軸)は現在の位置から直径で100mm(X軸の移動量は50mm)移動する。
例:W50.0
長手方向(Z軸)は現在の位置からプラスの方向に50mm移動する。
絶対座標指令は“50まで移動する“、相対座標指令は”50移動する“という決定的な違いがあります。絶対座標と相対座標の使用方法を間違えると、予期しない動作となってしまいますので、違いをしっかり理解しましょう。
4. 座標計算
NC旋盤のプログラムのほとんどは、刃具をどのように動作させて加工するかを示す座標という数値がほとんどになります。この座標が正しく記されていなければ、図面通りの正しい加工ができません。ここでは簡単なC面、コーナーRの座標計算の考え方、注意点を説明します。
座標計算を行う場合、加工図面の形状に対して直線、円弧の始点、終点にポイント番号を付け、その点の座標を加工原点(X0、Z0)の位置から見てどの位置になるのかを計算します。それでは、例題の加工図を見てみましょう。
左側の加工図のワークを作成するためには、“NC旋盤の選定とその落とし穴”4項で解説していますが、使用する素材の大きさ、形状を事前に知っておく必要があります。素材のどの部分を把握してどこまで加工するのか、加工代はどれくらいあるのか、どれくらいの回転で回せるのかを決定する重要な要素となるからです。
今回の例では右図が素材図で、φ52×32Lの切断材を使用します。今回の例題のチャッキングはこのように想定しました。
それでは座標計算を始めましょう。ここでは座標計算に慣れるために、仕上げ加工の座標点を計算してみましょう。
初めに主軸中心線と左側端面が交差する点を加工原点G54(X0,Z0)として直線と円弧の始点、終点にポイント番号を付けます。
ここで、図面の始点、終点にないポイントが作成されている事に注目して下さい。
上記の例では、ポイント1、ポイント2、ポイント7が該当ポイントになります。座標点を計算する場合は、刃具をどのように動作させるかをイメージし、図面上にはない点でも刃具移動に必要な場合はあらかじめポイントを作成し、座標を計算しておきます。
ポイント1は、外径(φ30)から端面部を加工する際の開始点、ポイント2は、C1の面の開始点、ポイント7はC1.5部の終点になります。
それでは各ポイントの解説をしていきます。
ポイント1
素材の端面を荒加工する始点となりますので、直径方向Xの座標値は、外径径φ52より1~2mm大きい位置に設定します。長手方向は、完成品端面がZOとなるので、0.1mm程度仕上げ代を残した位置Z0.1とします。
よって、ポイント1の座標値はX32.0,Z0.1となります。
ポイント2
C面の開始点が端面上にあると、アプローチする際に早送りで接触する事になり、よろしくありません。そこで、延長線上に仮想の点を作成しています。
考え方としては、長手方向に何mm延ばすかを自分で決めます。通常は1mm~2mm程度にしています。今回は2mmの例で作成してみます。
図面表記がC1となっています。C面とは45°のテーパを意味しますので、角度は45°になり、斜辺以外の辺の長さは1mmになります。今回は、長手方向に自分で決めた2mmの位置まで45°線を延長し、下記のような図を描くと分かりやすくなります。
C1部と延長した2mm部に三角形を考えます。45°なので斜辺ではないもう1つの辺の長さは同じになりますから、径方向の辺の長さも1mmと2mmになります。
つまり、ポイント2はφ30から1mm下がり、2mm下がった点という事になりますが、これでは正解ではありません。なぜなら径方向は直径指令しなければならないからです。
つまり、φ30から1mm(直径で2mm)、と2mm(直径で4mm)下がった位置が正しい正解となります。45°のC面の場合、径方向の計算は、斜辺ではない1辺の長さの2倍をプラスもしくはマイナスすれば良いという事です。よって正解のX軸座標はφ30-2mm-4mmでφ24(X24.0)ということになります。長手方向の座標は、加工原点がZ0でそれより右側はプラス、左側はマイナスとなりますので、Z2.0ということになります。ポイント2は(X24.0,Z2.0)が正解です。
ポイント3
ポイント3はC面の終点になりますので、図面に寸法が記載されています。外径はφ30と指定されていますから、径方向の座標はX30.0になります。長手方向は、ポイント2の解説にもありますが、加工原点Z0を基準に右側がプラス、左側がマイナスとなります。今回のポイント3は加工原点より左側になりますので、Z-1.0となります。ポイント3の座標は(X30.0,Z-1.0)が正解です。
ポイント4
ポイント4は円弧の始点になります。90°で直交するコーナー部にある円弧をコーナーRと呼びます。円弧の始点から円の中心までの距離と終点から円の中心までの距離が半径となり、同じになります。この図面ではR2と指示されていますので、半径は2mmになります。円の中心から加工形状に向かって垂直線を引き、その長さは円弧半径となりますので、考え方はC面と同じになります。径方向は図面指示でφ30、長手方向は図面指示の15mmから2mm手前の位置、よって(X30.0,Z-13.0)になります。
ポイント5
ポイント5は円弧の終点になります。ポイント4での考え方を当てはめてみると、径方向は図面指示のφ30プラス4mm(直径指令)、長手方向は図面指示で15mmとなっています。よって(X34.0,Z-15.0)になります。
ポイント6
ポイント6の考え方はC面なので、ポイント2と同じになります。ただし、今回は加工したい形状の上にポイントがありますので、わざわざ自分で延長線を作成する必要がありません。つまり、三角形は1つになるという事です。
加工図面指示よりφ50から直径指令で考えた3mmをマイナスする。長手方向は図面より15mmよって(X47.0,Z-15.0)になります。
ポイント7
いよいよ最終ポイントです。ここも難しく考える必要はありません。第1工程では、ここのC1.5までを加工しますので、C面をそのまま延長して加工終了となります。ただし、この時素材を把握している爪の位置を意識しなければなりません。爪との距離が少ない場合は、延長線を長くすると干渉の可能性が出てきますので、どこまで刃具を進めることができるかを事前のチャッキング検討時に把握しておかなければなりません。
素材がφ52なのでそれ以上延長させるのが良いでしょう。ただし、くれぐれもチャッキングと相談です。径方向は図面からφ50に延長分の三角形の1辺の長さを2倍(直径)した2mmをプラスして52mm、長手方向は図面より15mmに1.5mmプラス1mmで17.5mmになります。長手方向は加工原点Z0から左側はマイナスの領域なので、(X52.0,Z-17.5)となります。
5. 早送り(G00)と切削送り(G01)
ここまでくれば、仕上げのプログラムはできたも同然、あとは移動させる順に座標点を配置すれば良いだけです。その前に早送りと切削送りについて解説します。
早送り(G00)
加工物に接触していない移動を早く動作させるという意味で位置決めとも呼ばれています。加工しない位置への移動はG00を指令後、座標位置を指令します。
例:G00X100.0 Z50.0
直線補間(G01) ※切削送りとも呼びます。
直線補間(G01)は名前の通り、現在の刃先位置から指令した位置までを直線で移動します。移動の際の速度は、毎回転送り(F)と呼ばれ、主軸が1回転あたり何mm移動するかという単位(mm/rev)で指令します。製品形状の輪郭に沿って刃具を移動させる、つまり、切削する箇所は直線補間G01を指令し、その後、移動させる目的の座標点を指令します。切削送りを指令する場合、送り速度も一緒に指令する必要があります。
例:G01X50.0 Z-20.0 F0.1
6. 円弧補間(G02、G03)
円弧補間は円弧形状に加工したい場合に使用します。刃具の進行方向に対して時計回りに加工するのか、反時計回りに加工するのかでG02またはG03を選択します。注意点として、同じ形状を加工する場合でも刃具の進行方向が変わると時計回り、反時計回りが変わります。円弧切削の場合は、必ず刃具の進行方向に対してどちら回りかを決める必要があります。円弧形状に加工しますので、加工する円弧の半径値を指令し、加工時の送り速度“F”をG01同様に指令します。
例:G02X30.0 Z-10.0 R1.0 F0.1 又は G03X30.0 Z-10.0 R1.0 F0.15など
7. 座標点の組み込み
それでは例題の座標点をプログラム基本構成に当てはめていきましょう。基本構成は「2. NCプログラムの基本構成」で解説していますが2種類あり、周速一定制御を使用するか、しないかによりどちらを使うか決定します。今回は、周速一定制御を使用するパターンで作成してみましょう。
O1000(SAMPLE PROGRAM)
N1 G54 M41(O.D.FINISH)
G50S2000
G00G40G96G99T0101S150M03
— ここまで基本構成 —
ここから計算して得たポイント座標を入れる
Z10.0
X32.0Z0.1・・・・(ポイント1)
G01X-0.8F0.1・・・(加工原点※刃先r分加味)
G00X24.0Z2.0・・・(ポイント2)
G01X30.0Z-1.0F0.1・・・(ポイント3)
Z-13.0・・・(ポイント4)
G02X34.0Z-15.0R2.0F0.08・・・(ポイント5)
G01X47.0F0.1・・・(ポイント6)
X52.0Z-17.5・・・(ポイント7)
G00X100.0Z50.0
M01
— これで仕上げプログラムが完成しました。 —
ここで、良く見てみると、G00もG01もG02、G03も指令されていない行があります。これは、モーダル“Gコード”といい、一度指令されると相対する指令があるまで指令が継続されるGコードを使用しているため、前に指令したGコードと同じGコードを使用する場合は、省略することができます。もちろん全行入力してあっても問題はありません。
X,Zの座標点も必ず1行にXとZを指令する必要はなく、前に指令した座標と同じ場合は、移動なしと判断し、省略しても良いということになります。この場合、指令された軸のみ単独で動作します。
8. まとめ
NC旋盤プログラムは、初めに加工を行うために必要な基本的な指令を与えてしまえば、あとはどのように刃具を動かすのかを「加工原点を基準として計算されたポイント点座標」を動作順序通りに指令すれば良いわけです。
ポイント点の座標計算を行う場合の注意点は、NC旋盤の径方向の軸(X軸)は直径指令であるという点を忘れずに座標計算することです。また、切削条件(回転数、送り速度、取り付けられた何番の刃具を使用するのか等)を各工程により変更しなければなりません。チャッキングを顧慮しながら切削条件を決め、刃具の適正条件になるようにしっかりと指令して下さい。
いくら適正切削条件に合わせるためとはいえ、主軸を高速回転させては素材の飛散につながる危険な状況となってしまします。安全は全てに優先する!多少切削条件を落としても、安全を優先に加工条件を決定しましょう。