はじめに|NCプログラム、何で開いていますか?
加工現場でNCプログラムを確認するとき、皆さんは何を使って開いているでしょうか。
CAMソフト上で確認する場合もあります。
工作機械の画面で確認する場合もあります。
DNCソフトや生産管理システムの中で見る場合もあります。
ただ、ちょっとした確認や修正になると、意外と多いのがメモ帳ではないでしょうか。
Windows標準のメモ帳。
または、普段から使っている汎用のテキストエディタ。
NCプログラムはテキストデータなので、メモ帳でも開けます。
編集もできます。
保存もできます。
実際、現場ではそれで済ませているケースも多いと思います。
しかし、長いNCプログラムをメモ帳で見ていると、ふと感じることがあります。
「これ、もう少し見やすくならないか」
「この工具、どこからどこまで動いているんだろう」
「このGコード、今どこの加工に効いているんだろう」
「行番号が分かりにくい」
「検索はできるけど、加工目線では追いにくい」
そんな小さな違和感が、今回の開発の出発点です。
メモ帳でもNCプログラムは編集できる
NCプログラムは、基本的にはテキストファイルです。
例えば、次のような内容です。
O1000
G90 G54 G00 X0. Y0.
S5000 M03
G43 H01 Z100.
G01 Z-5.0 F300
X50.0 F500
G00 Z100.
M30
文字として見るだけなら、普通のテキストです。
そのため、メモ帳でも開けます。
一部を修正することもできます。
コピーして別のプログラムに貼り付けることもできます。
簡単なNCプログラムであれば、メモ帳でも大きな問題はありません。
むしろ、余計な機能がなく、軽く開けるという意味では便利です。
現場で少しだけ確認したい。
1行だけ直したい。
工具番号を確認したい。
プログラム番号を変えたい。
この程度であれば、メモ帳でも十分な場面はあります。
でも、NCプログラムは普通の文章ではない
問題は、NCプログラムが普通の文章ではないということです。
NCプログラムには、加工に関係する情報が大量に入っています。
例えば、
- Gコード
- Mコード
- X/Y/Zなどの座標
- A軸、B軸、C軸などの回転軸
- 主軸回転数
- 送り速度
- 工具番号
- 工具長補正
- 工具径補正
- ワーク座標系
- サブプログラム呼び出し
- マクロ変数
- コメント
などです。
これらは、ただの文字ではありません。
工作機械の動き、工具の動き、加工順序、安全確認、加工精度、加工時間に関係します。
つまりNCプログラムは、
文章のように見えるけれど、実際には機械を動かす指令の集まり
です。
そのため、普通のテキストエディタで見ると、どうしても加工目線では追いにくい部分が出てきます。
現場で感じるメモ帳編集の不便さ
メモ帳でNCプログラムを見ると、最初に気になるのは行数です。
短いプログラムなら問題ありません。
しかしCAMで出力したプログラムになると、数千行、場合によっては数万行になることもあります。
その中から、特定の工具を探す。
特定のZ深さを探す。
特定の送り速度を探す。
G43やG54、G05などの指令を確認する。
これを目視で追うのは、なかなか大変です。
もちろん検索機能は使えます。
ただ、検索で見つかるのは文字です。
その文字が加工のどの場面に関係しているのかまでは、すぐには分かりません。
例えば、T05 で検索すれば工具番号は見つかります。
でも、その工具がどこから加工を始めて、どこで終わるのか。
どの範囲が荒加工で、どこから仕上げなのか。
どこで早送りして、どこで切削送りになっているのか。
そこまでは、自分で前後の行を追う必要があります。
また、NCプログラムは似たような行が連続します。
G01 X10.000 Y20.000 F800
X10.250 Y20.100
X10.500 Y20.180
X10.750 Y20.240
X11.000 Y20.300
このような行が何百行、何千行と続くと、見ているだけで疲れます。
どこが重要な動きなのか。
どこが単なる細かい補間なのか。
どこに注意すべきなのか。
メモ帳では、その判断をすべて人間の目と経験に頼ることになります。
専用エディタは意外と身近ではない
NCプログラム専用の編集ソフトや確認ソフトがまったく存在しないわけではありません。
ただ、一般的な加工現場で誰でも日常的に使っているかというと、そうでもない印象があります。
特に小規模な現場や、多品種少量加工の現場では、次のような運用も多いと思います。
- CAMで出力する
- 必要があればメモ帳で少し直す
- 機械側で確認する
- 加工しながら微調整する
- 過去プログラムをコピーして流用する
このやり方自体が悪いわけではありません。
実際、現場では早いです。
余計なソフトを立ち上げるより、メモ帳で開いた方が楽なこともあります。
ただ、NCプログラムの内容が複雑になるほど、メモ帳だけでは確認が難しくなります。
特に最近のCAMプログラムは、経路が細かく、行数も多くなりがちです。
昔のように、手打ちのシンプルな輪郭加工だけを見ていればよい、という場面ばかりではありません。
高能率加工、3D加工、5軸加工、同時制御、細かな仕上げ経路。
こうしたプログラムを、普通のテキストとして眺めるだけでは限界があります。
最初は“見やすく編集できるだけ”でよかった
今回の開発も、最初から大きなものを作ろうとしたわけではありません。
最初に考えたのは、もっと単純なことです。
メモ帳より少し見やすいNCプログラムエディタがあれば便利ではないか。
それだけです。
例えば、
- 行番号が見える
- 文字サイズを変えられる
- Gコードを探しやすい
- 工具番号を探しやすい
- コメントが見やすい
- 長いプログラムでもスクロールしやすい
- 必要な部分をすぐ確認できる
この程度でも、現場では十分に役立つ可能性があります。
特に、普段からNCプログラムを目で追う人にとっては、見やすさだけでも作業性は変わります。
目が疲れにくい。
目的の行を探しやすい。
工具交換の位置が分かりやすい。
プログラムのまとまりを把握しやすい。
最初は、それくらいの軽いツールでよいと考えていました。
まず欲しかった基本機能
最初に考えた基本機能は、あくまで編集補助です。
本格的なシミュレーションや診断ではありません。
まずは、次のような機能です。
行番号表示
NCプログラムでは、何行目に何があるかを確認したい場面があります。
特に、エラーが出たときや、加工中に特定のブロックを確認したいときには、行番号があると便利です。
メモ帳でも表示設定によってある程度確認できますが、NCプログラム確認用として常に見やすく表示したいところです。
検索しやすさ
T、M06、G43、G54、M03、M08 など、確認したい文字はある程度決まっています。
工具交換を探したい。
主軸ONを探したい。
クーラントONを探したい。
工具長補正を探したい。
こうした検索を、NCプログラム向けに使いやすくしたいと考えました。
文字の見やすさ
現場で使うなら、文字の見やすさは重要です。
細かすぎる文字では疲れます。
逆に大きすぎると全体が見えません。
加工現場では、事務所の大きなモニタで見る場合もあれば、現場のノートパソコンで確認する場合もあります。
そのため、文字サイズや表示幅を調整できることも大事です。
工具ごとのまとまり
NCプログラムでは、工具交換ごとに加工内容が切り替わります。
そのため、工具単位でプログラムの範囲が分かると便利です。
どの工具がどこから始まるのか。
どこまでが同じ工具なのか。
次の工具交換はどこなのか。
このあたりが見えるだけでも、プログラム確認はかなり楽になります。
でも、ここから少しずつ欲が出てくる
最初は、編集機能だけで十分だと思っていました。
しかし、NCプログラムを見やすくしようと考えていると、すぐに次の疑問が出てきます。
この行は、実際にはどこの動きなのか。
NCプログラムには座標が書かれています。
X、Y、Z。
場合によってはA、B、C。
数字を追えば、工具の動きはある程度想像できます。
しかし、長いプログラムを数字だけで追うのは大変です。
特にCAMで出力された細かい経路では、座標が大量に並びます。
そのとき、ふと思います。
「これ、工具経路として見えた方が分かりやすいのではないか」
最初は、ただの編集エディタを作るつもりでした。
でも、NCプログラムは機械を動かす指令です。
そう考えると、文字だけでなく、動きも見たくなってきます。
このあたりから、単なるメモ帳代わりのエディタでは終わらなくなっていきます。
まとめ|メモ帳の代わりを作るところから始める
今回の開発は、最初から大きな診断ソフトを作ろうとして始めたわけではありません。
きっかけは、もっと身近な不便さです。
NCプログラムをメモ帳で開いていると、見づらい。
長いプログラムを追いにくい。
工具の範囲が分かりにくい。
目的の指令を探しにくい。
加工の流れを把握しづらい。
だからまずは、メモ帳より少し使いやすいNCプログラムエディタを作ってみよう。
これが出発点です。
ただ、NCプログラムは普通の文章ではありません。
機械を動かすための指令です。
そのため、見やすくしようとすると、自然と工具の動きが気になってきます。
この行はどこの動きなのか。
この工具はどう動いているのか。
この経路は無駄がないのか。
最初は編集機能だけでよいと思っていたものが、少しずつ別の方向へ広がっていきます。
次回は、まず最初に考えた
「NCプログラムを少し見やすくするための編集機能」
について書いていきます。

