NCプログラムは、工作機械を自動で動かすための指令書です 。このプログラムは、主にアルファベットと数字の組み合わせで構成されており、その中でも特に重要なのが「Gコード」と「Mコード」です 。これらを理解することが、NCプログラミング習得の第一歩となります。
Gコード(準備機能) ⚙️
Gコードは、工具の動き方を指令するコードで、「準備機能」とも呼ばれます 。例えば、工具をどの位置に、どのような経路で、どれくらいの速さで動かすかを指示します。Gコードには、一度指令するとキャンセルされるまで有効な「モーダル」なコードと、そのブロック(行)だけで有効な「ワンショット」なコードがあります 。
参考)用語集
代表的なGコード一覧表:
| Gコード | 機能 | 説明 |
|---|---|---|
| G00 | 位置決め(早送り) |
切削を行わず、工具を最高速度で指定座標へ移動させます |
| G01 | 直線補間(切削送り) | 指定された送り速度で、工具を直線的に動かしながら切削加工を行います 。 |
| G02/G03 | 円弧補間(時計回り/反時計回り) | 指定された半径や中心点を基に、工具を円弧状に動かして加工します 。 |
| G04 | ドウェル |
指定した時間だけ工具の送りを停止させます。底面をきれいに仕上げる際などに使用します |
| G90 | アブソリュート指令 |
座標値をワーク座標系の原点からの絶対位置で指令します |
| G91 | インクレメンタル指令 | 座標値を現在の工具位置からの移動量で指令します 。 |
Mコード(補助機能) 🔧
Mコードは、主軸の回転や停止、クーラント(切削油)のON/OFFなど、機械の補助的な動作を制御するコードです 。Gコードが「どう動くか」を指示するのに対し、Mコードは「動き以外の何をさせるか」を指示します。
参考)https://www.kanameta.jp/column/nc-code-list-basic-guide
代表的なMコード一覧表:
| Mコード | 機能 | 説明 |
|---|---|---|
| M00 | プログラムストップ |
プログラムの実行を一時停止します |
| M03/M04 | 主軸正転/逆転 | 主軸を時計回り(M03)または反時計回り(M04)に回転させます 。 |
| M05 | 主軸停止 | 主軸の回転を停止します 。 |
| M08/M09 | クーラントON/OFF | クーラントの供給を開始(M08)または停止(M09)します 。 |
| M30 | プログラムエンド |
プログラムを終了し、プログラムの先頭に戻ります |
これらのコードの意味を「動き」とセットでイメージしながら覚えることが重要です 。例えば、「G01は工具がまっすぐ削っていく動き」といった具体的なイメージを持つことで、記憶に定着しやすくなります。
参考)https://seizogyo-channel.com/news/nc_program/
GコードやMコードの一覧は、工作機械メーカーのサイトや専門情報サイトで確認できます。より詳細なリストが必要な場合は、以下のリンクが参考になります。
NCプログラミングにおいて、座標系の理解は正確な加工を行うための要です 。特に「絶対座標(アブソリュート指令)」と「相対座標(インクレメンタル指令)」の使い分けをマスターすることで、プログラムの作成効率と可読性が格段に向上します。
座標系の基本 🗺️
まず、NC加工にはいくつかの座標系が存在します。
絶対座標(G90)と相対座標(G91)
ワーク座標系の中で、工具の移動先を指令する方法として、G90とG91の2つがあります 。
1. 絶対座標(アブソリュート指令 / G90)
G90は、ワーク座標系の原点(X0, Y0, Z0)を基準とした「絶対的な位置」で座標を指令する方法です 。
2. 相対座標(インクレメンタル指令 / G91)
G91は、工具の「現在の位置」を基準とした「移動量」で座標を指令する方法です。
使い分けのコツ ✨
状況に応じてG90とG91を賢く使い分けることが、効率的なプログラミングの鍵です。
| 状況 | 推奨する指令 | 理由 |
|---|---|---|
| 基本的な加工、一点ものの加工 | G90(絶対座標) | 図面との照合が容易で、位置関係を直感的に把握できるため、ミスを減らせます。 |
| 同じ形状の繰り返し、等間隔の穴あけ | G91(相対座標) | サブプログラムと組み合わせることで、プログラムを大幅に簡略化できます。 |
| 工具交換後や加工開始時の位置決め | G90(絶対座標) | 安全な位置へ確実に工具を移動させるため、絶対座標で明確に位置を指定します。 |
初心者のうちは、まずG90を基本としてプログラム全体の見通しを良くし、慣れてきたら繰り返し部分などでG91を活用していくのがおすすめです。
座標系の設定方法や考え方について、さらに詳しく知りたい方は、以下の専門サイトが分かりやすく解説しています。
NCプログラミングにおける「マクロ」とは、一連のプログラムを一つの命令で呼び出せるようにする機能です 。変数や条件分岐、繰り返し処理などを組み合わせることで、定型作業の自動化や複雑な加工のプログラム簡略化を実現し、作業効率を劇的に向上させることができます 。
マクロでできること 🚀
マクロを活用することで、以下のようなことが可能になります。
マクロの基本的な使い方
マクロは、メインプログラムから「呼び出しコード」を使って呼び出します。呼び出しにはいくつかの方法があります。
G65 Pxxxx A_ B_ C_ ... ; の形式でマクロプログラム(Oxxxx)を呼び出します 。A, B, Cには「引数」として数値を渡すことができ、マクロプログラム内でその値をローカル変数(#1, #2, #3...)として受け取って利用します 。
(メインプログラム)
G65 P9010 X100. Y50. Z-10. F150. ; (マクロ呼び出し)
...
M30 ;
(マクロプログラム O9010)
#101 = #24 ; (X座標を#101に代入)
#102 = #25 ; (Y座標を#102に代入)
#103 = #26 ; (Z深さを#103に代入)
#104 = #9 ; (送り速度を#104に代入)
G00 X#101 Y#102 ; (穴位置へ早送り)
G01 Z#103 F#104 ; (指定深さまで切削)
G00 Z5. ; (安全な高さまで退避)
M99 ; (メインプログラムへ戻る)
G66でマクロを呼び出すと、G67が指令されるまでの間、移動を伴うブロックごとにマクロが繰り返し実行されます。同じ加工を異なる座標で何度も行う場合に便利です。マクロはNCプログラミングの上級テクニックですが、一度習得すればプログラム作成の幅が大きく広がります。まずは簡単なマクロから作成してみて、その便利さを体感してみてください。
マクロの引数や変数の詳細については、以下の専門サイトが参考になります。
NCプログラミングのスキルを効率的かつ安全に向上させるためには、段階的な学習とシミュレーターの活用が非常に有効です。机上での学習と実践的な検証を繰り返すことで、未然にミスを防ぎ、より高度な加工に挑戦できるようになります。
初心者におすすめの学習ステップ 🚶♂️➡️🏃♂️
やみくもにコードを暗記しようとしても、なかなか身につきません 。以下のステップで、インプットとアウトプットを繰り返すことが上達への近道です。
参考)Document Moved
NCシミュレーター活用のススメ 💻
NCシミュレーターは、実際の工作機械を動かす前に、PC上でプログラムの動作を3Dグラフィックで確認できるソフトウェアです 。シミュレーターを活用することで、多くのメリットが得られます。
参考)NCマシンシミュレーター – NCprog
✅ 衝突の防止: 工具やホルダー、治具、工作物などが互いに干渉(衝突)しないかを事前にチェックできます。高価な機械や工具の破損、重大な事故を未然に防ぐことができます。
✅ 加工精度の向上: 削り残しや過切削がないか、画面上で正確に確認できます。試作品の数を減らし、材料費と加工時間の無駄を削減します。
✅ 加工時間の最適化: シミュレーションによって正確な加工時間を見積もることができます。また、工具経路や切削条件を最適化し、加工時間を短縮するヒントも得られます 。豊田自動織機の事例では、シミュレーションソフトの導入初年度で加工時間を約15%短縮できたと報告されています 。
参考)豊田自動織機 NCシミュレーションの効果的な運用手法【金型テ…
✅ 教育・トレーニング: 新人オペレーターでも、実際の機械を動かす前に安全な環境でプログラムの検証ができます。これにより、失敗を恐れずに様々な加工に挑戦でき、スキルアップのスピードが加速します 。
最近のシミュレーターには、Pythonなどのスクリプト言語と連携し、夜間に複数のプログラムを自動で解析・最適化するような高度な機能を持つものもあります 。これにより、オペレーターは日中の創造的な作業に集中できるようになります。
シミュレーションソフトは高価なものもありますが、その投資効果は非常に大きいと言えるでしょう。まずは体験版などを試してみて、その有用性を実感してみてはいかがでしょうか。
5軸加工向けなどの高機能なシミュレーターに関する情報は、以下のリンクで詳しく紹介されています。
NCチェックを支援する3D切削シミュレータ | Virtual NC
NCプログラミングに慣れてきても、思わぬミスやトラブルはつきものです。ここでは、初心者がつまずきやすいポイントや、現場でよくあるトラブルとその対策について解説します。事前にリスクを知り、対策を講じることで、手戻りを減らし、安全かつ効率的な作業を目指しましょう。
Q1. プログラムミスを減らすにはどうすればいい? 🤔
A. ヒューマンエラーを完全になくすことは困難ですが、工夫次第で大幅に減らすことができます 。
参考)NCプログラムを自動作成する手順と、作業の効率化におすすめの…
Q2. 工具長補正や工具径補正がうまくいかない… 📏
A. 工具補正は正確な寸法を出すための重要な機能ですが、設定ミスが非常に多いポイントでもあります。
G43(プラス方向補正)とG44(マイナス方向補正)の意味を正しく理解し、使用する機械の仕様を確認することが重要です。補正をかけた後は、いきなり切削に入るのではなく、安全な位置で一度停止させ(M00など)、Z軸の残り移動量(ディスタンス・トゥ・ゴー)を確認する習慣をつけましょう。補正のキャンセル(G49)も忘れずに行う必要があります 。
参考)Gコード
Q3. CAD/CAMを使えばプログラミングは不要になる? 🤖
A. CAD/CAMは複雑な3次元形状のプログラムを自動生成できる非常に強力なツールですが、手打ちの知識が完全に不要になるわけではありません。
CAD/CAMと手打ちプログラミングは対立するものではなく、両方を理解することで、より高次元なものづくりが可能になります。まずはこの記事で解説した基礎をしっかりと固め、日々の業務の中で実践を積み重ねていくことが、確かなスキルアップへの一番の近道です。