読み取り可能なNCコード


 TRYCUTが認識するNCコードは以下です。特に記述されていないコードは無視されます。

 GコードやMコードからなるNCデータの文法は、 日本製のコントローラーFANUC,MELDAS,OSP,TOSNUCなどは、 OSPの仕様で一部違いはあるものの大きな差はありません。 ただしドイツ製HEIDENHAINに関しましては、根本的に異なる部分も多いため、 別途こちらで、その違いを説明させておいていただきます。
★ ()で囲まれたブロックはコメント行とし無視されます。

認識するGコード
G00:位置決め指令
G01:直線補間指令
G02/G03:円弧補間指令
G04:ドウェル指令
G06.2:NURBS補間指令 (FANUC)
G132:NURBS補間指令 (OKUMA/OSP)
G10:補正値と磨耗値のプログラマブルデータ入力
     (詳細はコントローラー定義ファイルで指定するG10MODEを参照)
G15:ワーク座標選択(OSPモード のときのみ有効)
G17/G18/G19:平面指定 (初期状態はG17が指定されています)
G28/G29/G30:レファレンス点復帰関連指令
G39:コーナー円弧補間
G40:工具径補正キャンセル
G41/G42:工具径補正指令(補正値の指定はコントローラー定義 ファイルのMEMORY指定を参照)
注意:本バージョンでは、過剰なオフセット量により、2つ以上先の移動情報と 干渉する場合も、アラ−ムは発生させません。参考という観点から切削を強引に行う 仕様にしています。なお、現在普及している一般的なNC制御装置は、ほぼ対応して いると思われますが、ひとつ先の移動情報との干渉は、自動的に除去されます。

注意:一般的に最近のCNC装置において、径補正時干渉除去するための先読み 処理は、その数を指定することが可能になってきています。ただし、その数をあまり 多くすると本来の経路(8の字経路など)が勝手に削除されたりすることもあり、 先読み数は2又は1ぐらいに設定しているのが普通です。
 現行のTRYCUTでは、この値は1固定になっていて、CNCのシミュレーターの仕様としては不足しています。 が、逆に言いますと安全サイドの結果(TRYCUTで食い込んでも実機では食い込まないケースがある) が得られることになります。

G43/G44/G49:工具長補正/キャンセル指令(補正値の指定は コントローラー定義ファイルのMEMORY指定を参照)
OSPモードのときは、G56,G53を 工具長補正ならびにキャンセルコードとみなします。
G50/G51:スケール
G50.1/G51.1:ミラー
G52,G53,G54〜G59:ワーク座標系選択( FANUCモードのときのみ有効。実際の座標系の指定はコントローラー定義ファイルの MEMORY指定 を参照)
G68/G69:座標回転指令
G71:戻り点指定OSPモードのときのみ有効
G73/G74/G76/G80〜G89:固定サイクル指令
注意:G73とG83を実加工モードでシミュレーションする場合、一回の切り込み 量(Qコード値)が小さいことによりZ値の移動が90回を超える場合は、効率化の 観点から、最後に一気に最終穴底位置まで切削を行います。
G90/G91:絶対座標値/相対座標値切り換え指令
G92:座標系設定指令
G98/G99:復帰点レベル切り換え指令
G274/G284(新規):固定サイクル指令(OSPモード のときのみ有効)

認識する他のコード
/,/1〜9:オプショナルスキップブロック指令
Dxxx/Hxxx:xxxは1〜999の整数
F:送り速度(直接指令、間接指令)
T:待機工具指定又は工具交換 機械設定ファイルのATC TYPE参照
M00:停止
M01:オプショナルストップ
M06:待機工具に工具交換
註:TコードやM06コードによる工具交換は、Tコードで指定されている工具が 工具設定ファイルで定義されていない場合は無視され ます。
M52:上限レベル復帰モードOSPモードのときのみ有効
M53:G71による指定点レベル復帰モードOSPモードのときのみ有効
M54:R点レベル復帰モードOSPモードのときのみ有効
M109:側面創成加工(G119)解除(OSPモードのときのみ有効)
M98<...>外部サブプログラム呼び出し
M198P... 又は<...>外部サブプログラム呼び出し
M99:サブプログラムからの復帰
CALL O...外部サブプログラム呼び出し(OSPモードのときのみ有効)
NCYL:固定サイクル サイクル軸動作なしOSPモードのときのみ有効


外部サブプログラムの設置

 サブプログラムの呼び出しは、実機と同等仕様ではありませんが以下の制約を満たす場合には外部ファイルからの読み込みが可能です。

・引数なし
・呼び出し回数指令省略(1回)
・内部でカスタムマクロ文を使用していない

上記3条件を満たす場合、サブプログラム部分を記述した拡張子なしのテキストファイル(例:"O112")を、 NCデータと同一フォルダに設置して下さい。ただし、M98/M198の<...>指定の場合と、 HEIDENHAINのCALL PGMは、パス指定が可能ですので設置フォルダは自由です。
 ファイルが存在する場合にのみ、サブプログラム内のNCデータを参照します。 存在しない場合にはサブプログラム呼び出しブロック自体が無視されます。

[外部サブプログラムのファイル名]
呼び出し指令外部サブプログラムのファイル名備考
M98<...><>内で指定したファイル名
M198<...><>内で指定したファイル名
M198P20"O20" 又は"O0020" (前者優先)
M198P0020"O20" 又は"O0020" (前者優先)
CALL O20"O20"OSPモード
CALL O0020"O0020"OSPモード
CALL PGM O0020.H"O0020.H"HEIDENHAINモード


HEIDENHAINモードのときのコード認識処理

 HEIDENHAINに関しましては、根本的に異なるとは言え、G00,G01,G02,G03,G40,G41,G42などの意味合いだけはFANUC系と同じです。
 CTLファイル内で、"PRODUCT=HEIDENHAIN"を指定した場合のNCデータの認識処理は、 以下の点において異なります。

1.G02/G03時のIJK指定値をモーダル値として認識。
2.径補正値に関しては、Dコード指定がないため、各マガジン(工具)番号に対応した D-CODEの値から参照。
ただし値がゼロの場合は、工具径の半分の値を補正値とみなす。
3.サイクル加工に関して現時点においてはG83,G84のみ対応。M99指定部で 実際のサイクル動作を行なう。
4.各行";"コード以降はコメントとみなす。

※HEIDENHAINの対応は、TRYCUTにおいて実績は未だ少なく、あくまでも基本的な 部分のみの対応となっています。またHEIDENHAINの場合は、他の設定も強制的に変更 していただく必要があるものもあります。以下に今までのある実績例を列記しておき ます。

CTLファイル内において
EOR行を削除 (←FANUCのように"%"に対応するものがないため)
DECIMAL POINT = NORMAL (←数値が小数点有り無し混在のため)

MTLファイル内において
ATC TYPE = DIRCET (←M06がない場合)


径補正中の垂直移動指令の扱いについて

 指定平面に直交する軸方向だけの移動は、いくら連続していてもかまいません。 (XY平面指定中はZ方向だけの移動)なお、垂直要素群の前後に存在する移動要素 どうしのオフセットが交点をもつ場合は、この交点位置で垂直移動を行ないます。 交点がない場合は、手前の要素の終点のオフセット位置で垂直動作を行ないます。


目次へ