【解決手段】 工具軌跡に沿って工具位置を指定された加工速度で移動させるために、所定の時間間隔で各制御軸の移動速度を制御するための軸制御データから、各制御軸を移動速度で移動させるための移動指令を生成して、所定の時間間隔で駆動部43に出力する。描画データ生成部322で、時間間隔で移動指令を駆動部に出力する時刻の前後において工具位置が移動する移動ベクトルの方向が同一方向ではない時にのみ、工具軌跡を描画する描画データを生成して、描画表示制御部323が、描画デーを表示部33に出力して工具軌跡を描画させる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1では、移動指令に応じて生成した工具軌跡に対応するように描画データを生成するが、工具軌跡上に存在する位置または移動ベクトルを間引いて描画を行うことで描画時の負荷を軽減しようとしているので、操作者がNCプログラムや送り速度のような加工条件などの設定値を検査する上で、重要な箇所において、工具軌跡が正しく再現されて描画表示されないというおそれがある。
【0008】
そこで、本発明では、加工制御に影響を与えることなくより正確に工具軌跡の描画表示を行う表示機能付き数値制御装置を提供することを目的とするものである。
【課題を解決するための手段】
【0009】
本願発明の1つの表示機能付き数値制御装置は、所定の時間間隔で加工機の工具を被加工物に対して相対移動させる各制御軸の移動速度を制御するための軸制御データを記憶した軸制御データ記憶部と、軸制御データに従って、各制御軸を移動速度で移動させるための移動指令を生成して、該移動指令を時間間隔で各制御軸を駆動制御する駆動部に出力する移動指令出力部と、工具が移動する工具軌跡を描画データに従って描画する表示部とを備えた表示機能付き数値制御装置であって、時間間隔で移動指令を駆動部に出力する時刻の直前の工具の工具位置が移動する移動ベクトルと該時刻の直後の移動ベクトルとが同一方向である時は、描画データの生成を行わず、時刻の直前の移動ベクトルと該時刻の直後の移動ベクトルとが同一方向ではない時に、描画データを作成済みの工具軌跡の終点位置と該時刻の工具の工具位置に対応する表示部上の座標位置とを結ぶ工具軌跡を描画する描画データを生成する描画データ生成部と、描画データが生成された順に、各描画データにしたがって表示部に描画済みの工具軌跡の終点位置から該描画データで指定された座標位置までの工具軌跡を描画するように制御する描画表示制御部を備えることを特徴とする。
【0010】
また、本願発明の1つの表示プログラムは、所定の時間間隔で加工機の工具を被加工物に対して相対移動させる各制御軸の移動速度を制御するための軸制御データを記憶した軸制御データ記憶部と、軸制御データに従って、各制御軸を移動速度で移動させるための移動指令を生成して、該移動指令を時間間隔で前記各制御軸を駆動制御する駆動部に出力する移動指令出力部と、工具が移動する工具軌跡を描画データに従って描画する表示部とを備えた表示機能付き数値制御装置に設けられたコンピュータを、時間間隔で移動指令を駆動部に出力する時刻の直前の工具の工具位置が移動する移動ベクトルと該時刻の直後の移動ベクトルとが同一方向である時は、描画データの生成を行わず、時刻の直前の移動ベクトルと該時刻の直後の移動ベクトルとが同一方向ではない時に、描画データを作成済みの工具軌跡の終点位置と該時刻の工具の工具位置に対応する表示部上の座標位置とを結ぶ工具軌跡を描画する描画データを生成する描画データ生成部と、描画データが生成された順に、各描画データにしたがって表示部に描画済みの工具軌跡の終点位置から該描画データで指定された座標位置までの工具軌跡を描画するように制御する描画表示制御部として機能させることを特徴とする。
【0011】
本願発明の他の表示機能付き数値制御装置は、所定の時間間隔で加工機の工具を被加工物に対して相対移動させる各制御軸の移動速度を制御するための軸制御データを記憶した軸制御データ記憶部と、軸制御データに従って、各制御軸を移動速度で移動させるための移動指令を生成して、該移動指令を時間間隔で駆動部に出力する移動指令出力部と、工具が移動する工具軌跡を描画データに従って描画する表示部とを備えた表示機能付き数値制御装置であって、時間間隔で移動指令を駆動部に出力する時刻の直前の工具の工具位置が移動する移動ベクトルと該時刻の直後の移動ベクトルとが同一方向であり、かつ、描画データを作成済みの工具軌跡の終点位置と時刻の工具の座標位置との距離が所定の閾値以下の時は、描画データの生成を行わず、時刻の直前の移動ベクトルと該時刻の直後の移動ベクトルとが同一方向であり、かつ、描画データを作成済みの工具軌跡の終点位置と該時刻の工具の座標位置との距離が所定の閾値を越えている時、または、時刻の直前の移動ベクトルと該時刻の直後の移動ベクトルとが同一方向ではない時は、描画データを作成済みの工具軌跡の終点位置と時刻の工具の工具位置に対応する表示部上の座標位置とを結ぶ工具軌跡を描画する描画データを生成する描画データ生成部と、描画データが生成された順に、各描画データにしたがって表示部に描画済みの工具軌跡の終点位置から該描画データで指定された座標位置までの工具軌跡を描画するように制御する描画表示制御部とを備えることを特徴とする。
【0012】
また、本願発明の他の表示プログラムは、所定の時間間隔で加工機の工具を被加工物に対して相対移動させる各制御軸の移動速度を制御するための軸制御データを記憶した軸制御データ記憶部と、軸制御データに従って、各制御軸を移動速度で移動させるための移動指令を生成して、該移動指令を時間間隔で駆動部に出力する移動指令出力部と、工具が移動する工具軌跡を描画データに従って描画する表示部とを備えた表示機能付き数値制御装置に設けられたコンピュータを、時間間隔で移動指令を駆動部に出力する時刻の直前の工具の工具位置が移動する移動ベクトルと該時刻の直後の移動ベクトルとが同一方向であり、かつ、描画データを作成済みの工具軌跡の終点位置と時刻の工具の座標位置との距離が所定の閾値以下の時は、描画データの生成を行わず、時刻の直前の移動ベクトルと該時刻の直後の移動ベクトルとが同一方向であり、かつ、描画データを作成済みの工具軌跡の終点位置と時刻の工具の座標位置との距離が所定の閾値を越えている時、または、時刻の直前の移動ベクトルと該時刻の直後の移動ベクトルとが同一方向ではない時は、描画データを作成済みの工具軌跡の終点位置と該時刻の工具の工具位置に対応する表示部上の座標位置とを結ぶ工具軌跡を描画する描画データを生成する描画データ生成部と、描画データが生成された順に、各描画データにしたがって表示部に描画済みの工具軌跡の終点位置から該描画データで指定された座標位置までの工具軌跡を描画するように制御する描画表示制御部として機能させる。
【0013】
「軸制御データ」とは、被加工物に対して工具位置を移動させるために各制御軸を制御するためのデータをいい、各制御軸の速度を所定の時間間隔で記録したものであっても、数式などを用いて所定の時間間隔で各制御軸の速度を変化させることができるものであってもよい。
【0014】
また、所定の時間間隔とは、予め決められた時間間隔であれば、一定の時間間隔であっても、時間間隔が一定のものでなくてもよい。具体的には、例えば、速度と加工する工具軌跡の形状に応じて、時間間隔を変えたものであってもよい。
【0015】
「所定の時間間隔で移動指令を駆動部に出力する時刻の直前の工具の工具位置が移動する移動ベクトル」とは、所定の時間間隔の各時刻に、駆動部に移動指令を出力する前に工具が移動していたベクトルをいい、「該時刻の直後の移動ベクトル」とは、駆動部に移動指令を出力したことによって、その移動指令に従って工具が移動するベクトルをいう。「時間間隔で移動指令を駆動部に出力する時刻の直前の工具の工具位置が移動する移動ベクトルと該時刻の直後の移動ベクトルとが同一方向ではない」は、駆動部に移動指令を出力したことにより、工具の進行方向が変化することを指す。
【0016】
「該時刻の直前の移動ベクトルと該時刻の直後の移動ベクトルとが同一方向である」は、駆動部に移動指令を出力しても、工具の進行方向が変化せず、略直線で移動していることを指す。
【0017】
また、「同一方向」であるか否かは、表示する表示装置のスクリーンの描画精度に応じて、表示装置に表示した工具軌跡に違いが現れない範囲であればよい。例えば、実際に数値制御装置において加工する場合には、高精度な性能が求められるため、加工される線には違いがあっても、それをシミュレーションする表示装置に描画する工具軌跡を表す線に違いが現れないことが多いので、表示装置の描画結果に違いが表れない範囲であれば同一方向であると判定してもよい。あるいは、判定するコンピュータの性能に依存して同一方向と判定できる範囲であればよい。
【0018】
「描画データを作成済みの工具軌跡の終点位置と該時刻の工具の工具位置に対応する表示部上の座標位置とを結ぶ工具軌跡」とは、既に描画データが作成された工具軌跡の終点から、所定の時間間隔で移動指令を駆動部に出力する時刻に工具がある工具位置に対応する表示装置の座標位置までを結ぶ線をいう。
【0019】
「描画データが生成された順に、各描画データにしたがって表示部に描画済みの工具軌跡の終点位置から該描画データで指定された座標位置までの工具軌跡を描画する」とは、工具位置が移動する順に従って作成された描画データを用いて描画した描画済みの工具軌跡の終点から、描画データに記録されている次に工具が移動する工具位置に対応する表示部上に座標位置までを描画することをいう。
【発明の効果】
【0020】
本発明の表示機能付き数値制御装置では、所定の時間間隔で加工機の各制御軸の移動速度を制御しながら、加工機の工具が移動する工具軌跡を描画する際に、所定の時間間隔で移動指令を加工機の駆動部に出力する時刻の直前の移動ベクトルと直後の移動ベクトルが同一方向である時は、描画データの生成を行わず、各時刻の直前の移動ベクトルと直後の移動ベクトルとが同一方向ではない時に、作成済みの工具軌跡の終点位置と現在時刻の工具の工具位置に対応する表示部上の座標位置とを結ぶ工具軌跡を描画するようにしたので、描画時間を節約することが可能になり、実際の工具の移動と連動した表示を行うことが可能になる。
【0021】
また、作成済みの工具軌跡の終点位置と現在時刻の工具の工具位置に対応する表示部上の座標位置とを結ぶ工具軌跡が所定の閾値を越えない間隔で描画を行うことにより、必要以上に長時間描画されないことがなくなる。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態について、図面を用いて説明する。
図1は本発明の表示機能付き数値制御装置を含む加工システムの概略構成図である。
【0024】
本発明の加工システム1は、加工形状を作成するCAM装置(またはCAD装置)2と、加工機を制御する数値制御装置3と、被加工物(以下、ワークという)をテーブルに設置して工具でワークを加工する加工機4とからなる。CAM装置2と数値制御装置3とは通信ケーブル5で接続される。
【0025】
加工機4は、工具の取り付けられる主軸(加工ヘッド)41と、ワークが設置されるテーブル42Aと、テーブル42Aを移動させるサドル42Bと、各軸(主軸、送り軸)を駆動させる駆動部43とを備える。通常、主軸は切削動力を伝える軸であり、
図1に示す実施形態のように主軸が鉛直方向にある縦形の加工機の場合は、主軸をZ軸として表わし、テーブル42Aを移動させる互いに直交する水平方向2軸の送り軸をそれぞれX軸とY軸として表す。
【0026】
図2に示すように、駆動部43は、数値制御装置3から各軸を制御する軸制御データを受け取る軸制御データ受信部44と、軸制御データに従ってX軸、Y軸、Z軸の各軸のサーボモータを実際に駆動制御するために必要な実指令値を生成する指令値演算部45と、各軸のサーボモータをフィードバック制御するモータ制御部46a、46b、46cと、各軸のテーブル42のような移動体をそれぞれ移動させるサーボモータであるリニアモータ48a、48b、48cと、リニアモータ48a、48b、48cに駆動電流を出力する駆動回路47a、47b、47cと、を備える。駆動部43は、
図1に示される実施形態では、加工機4側に配設されているが、リニアモータ48a、48b、48cを除く駆動部43を数値制御装置3の筐体内に設けることができる。
【0027】
モータ制御部46a、46b、46cは、指令値演算部45から受け取った実指令値と各軸に設けられたエンコーダ(不図示)から得られた検出位置px、py、pzおよび速度vx、vy、vzに基づいて、駆動回路47a、47b、47cに位置と速度が補償された実指令値を出力する。駆動回路47a、47b、47cは受け取った実指令値に応じた駆動電流をリニアモータ48a、48b、48cに出力する。また、駆動回路47a、47b、47cは、リニアモータ48a、48b、48cの駆動電流ix、iy、izをフィードバックして電流補償を行う機能を備える。
【0028】
図3に、本発明の数値制御装置3の実施の形態の一例を示す。数値制御装置3は、加工機本機に隣接され、筐体内に箱体やプリント基板などのユニットで構成される。具体的には、数値制御装置3は、数値制御部31、汎用制御部32、表示部33、操作部34、記憶部35、入出力部36などを含んでなる。
【0029】
数値制御装置3は、コンピュータ数値制御装置であって、ハードウェアの構成としては、数値制御装置3には、少なくともプリント基板上に配設された1つ以上のCPUを含む演算装置と、主記憶装置(RAM)と、補助記憶装置(ハードディスク)と、グラフィックボードと、各種インターフェースとが搭載されている。なお、
図3に示される実施の形態では、主記憶装置と補助記憶装置とを含んで記憶部35としている。
【0030】
汎用制御部32は、パーソナルコンピュータと略同じ機能を有する。
【0031】
表示部33は、具体的には画像データを表示データに変換する変換装置を含む液晶表示(LCD)装置等のディスプレイ装置で構成される。
【0032】
操作部34は、操作パネルなどで構成され、制御指令あるいはデータを入力するために用いられる。あるいは、対話入力を行うために、表示部33に表示された小さな絵や記号などで構成されたアイコンを選択することができるように、ディスプレイ装置上にタッチパネルを設けたものであってもよい。さらに、タッチパネルとともにスタイラスペン等のポインティングデバイスを備える構成にしたものであってもよい。
【0033】
入出力部36は、通信ケーブル5に接続され、コンピュータ間のローカルエリアネットワーク(LAN)を通してCAM装置2(またはCAD装置)と数値制御装置3との間でNCプログラムまたは工具軌跡のデータなどの送受信を行う。取得したNCプログラムまたは工具軌跡のデータは、記憶部35の補助記憶装置に記憶させ保存しておくことができる。
【0034】
記憶部35には、汎用制御部32のマイクロコンピュータに接続され、オペレーティングシステムのような数値制御装置3を動作させるための基本的なシステムソフトウェアとともに、描画データの生成および描画を行うソフトウェアなどの種々のアプリケーションソフトウェアが予めインストールされている。さらに、記憶部35には、CAM装置(あるいはCAD装置)2から送信されたNCプログラムまたは工具軌跡のデータが記憶される。また、最大加速度、最大加加速度などのパラメータが各加工機4の物理特性に依存する機械固有の設定値が記憶される。さらに、記憶部35には、設定送り速度、設定加速度、工具の回転数のようなプログラムの作成者または操作者によって与えられる任意のパラメータのデータを記憶する。パラメータが、工具径などに対応した複数の値が与えられる場合には、工具軌跡のデータと関連付けて記憶される。NCプログラムには、予め複数種類のパラメータのデータが与えられており、NCプログラムを解読して得られるNCデータの中に含まれる複数種類の各パラメータの値も、記憶部35に記憶される。また、CAM装置2から工具軌跡のデータだけを取得したときは、操作者が工具軌跡のデータに関連付けて要求される複数種類のパラメータの値を入力して記憶部35に記憶させる。
【0035】
図3に示すように、本発明の数値制御装置3の数値制御部31には、NCプログラムを解読し、または曲線データを解析して、軸制御データを生成する軸制御データ演算部321が含まれる。汎用制御部32は、記憶部35にインストールされているアプリケーションプログラムを実行することにより、描画データ生成部322、描画表示制御部323として機能する。以下に、各機能について説明するが、いくつかの機能が汎用制御部32以外のユニットに搭載されてもよい。
【0036】
軸制御データ演算部321は、CAM装置(またはCAD装置)2から受信したNCプログラムまたは工具軌跡のデータから軸制御データを生成する。軸制御データは、各制御軸の移動速度の変化を表したものであり、一定の時間間隔で各制御軸を移動速度で制御することで指定された工具軌跡に従って移動させるためのデータである。
【0037】
図4に示すように、軸制御データ演算部321は、NCプログラム解読部324、工具軌跡生成部325、軸制御データ生成部326を備える。ただし、CAM装置2と数値制御装置3との間を常時通信回線で接続させておくことができる環境にある場合には、実施の形態の数値制御装置3の軸制御データ演算部321の1以上の上記各機能をCAM装置2に設けることができる。
【0038】
NCプログラムは、命令を示すNCコード(G01:直線補間、G02またはG03:円弧補間等)、工具の各軸(X軸、Y軸、Z軸)の座標値、送り速度(F値、以下、加工速度として説明する)などのパラメータの値が記録されている。
【0039】
NCプログラム解読部324は、操作者が記憶部35に保存されているNCプログラムのファイルを選択してそのNCプログラムを実行させる操作を行うと、記憶部35から操作者によって選択されたファイルのNCプログラムを読み出して、読み出したNCプログラムをプログラムブロック毎に順番に解読してNCデータを生成する。生成されたNCデータのうち、移動に関するNCコードと位置データなどの工具軌跡の形状を定義したデータは、工具軌跡生成部325に出力される。また、加工条件などのパラメータに関するNCデータは、記憶部35に出力される。
【0040】
工具軌跡生成部325は、NCプログラムを解読して得られた工具軌跡の形状を定義するNCデータ、例えば、Gコードと各軸の座標値を解析して、NCプログラムで定義されている工具軌跡との誤差が所定の範囲内に収まるように複数のNURBS(非一様有理Bスプライン Non-Uniform Rational B-Spline)などのパラメトリック曲線に変換する。誤差の範囲は、経験的に決められる範囲であればよく、加工対象物、加工形状などによって決められる。パラメトリック曲線で表された工具軌跡は記憶部35に一旦記憶される。CAM装置(あるいはCAD装置)2からパラメトリック曲線で表される工具軌跡のデータを受信した場合には、そのデータを記憶するようにしてもよい。
【0041】
軸制御データ生成部326は、NCプログラムで指定された加工速度Fを用いて、パラメトリック曲線に変換された工具軌跡Lを軸制御データに変換する。以下の軸制御データを生成する演算では、記憶部35に記憶されているパラメータを用いて演算が行われるが、軸制御データを出力する加工機の設定に応じて、操作者により、予めいずれの加工機用のパラメータを用いるかが選択される。
【0042】
まず、パラメトリック曲線に変換された工具軌跡Lの曲率に応じて工具軌跡Lを分割した分割軌跡を求める。加工機4は、指定された2点間を各軸の速度を制御しながら工具の加工位置を移動させてワークを加工するが、工具軌跡Lの曲率が大きい部分では、加工機4の慣性モーメントや剛性などに影響されて、工具軌跡Lに沿って工具の加工位置を移動させるのが難しい部分がある。また、加工機4に指定した2点間を結ぶ工具軌跡Lが、直線から大きく外れることがない方が好ましい。そこで、工具軌跡Lの曲率を求め、
図5に示すように、工具軌跡Lを曲率が小さいところは大きい間隔で分割し、曲率が大きくなるに従って小さい間隔で分割し、工具軌跡L上の点P1,P2,P3,P4,・・・,Pi,Pi+1、・・・で分割した複数の分割軌跡l1,l2,l3,l4,・・・,li,・・・に分ける。例えば、工具軌跡の曲率が小さく(曲率が0に近い)略直線である範囲の工具軌跡Lは1つの分割軌跡にする。つまり、直線に近い部分が続くところでは、長い距離の工具軌跡が1つの分割軌跡lとなり、曲率が大きいところは短い間隔で分割軌跡lが生成される。
【0043】
次に、分割した各分割軌跡l1,l2,l3,l4,・・・,li,・・・に沿って工具を指定された加工速度Fで移動させるときの分割軌跡l上の点の各軸の位置と所定の時間間隔で求めた各軸の速度の時間変化で表わされる移動指令値を記録した軸制御データを求める。軸制御データには、分割軌跡上の少なくとも1点の各軸の位置を含むものであればよい。例えば、軸制御データに分割軌跡l上の始点の位置と分割軌跡に沿って移動させるときの各軸の速度変化とが記録されている場合には、始点の位置から各軸を指定された速度変化に従うように各軸を制御することによって、分割軌跡lに沿って工具の加工位置を移動させることができる。
【0044】
図6に示すような分割軌跡lに沿って、指定された加工速度Fでワークを加工するには、分割軌跡l上の各位置で、工具の加工位置を接線方向に加工速度Fで移動させることで、工具の加工位置を分割軌跡lに沿って移動させることができる。つまり、加工速度Fを、分割軌跡lの各位置における接線ベクトルの各軸の成分X,Y,Zに分け、始点の位置からX軸をX方向の速度成分で移動させ、Y軸をY方向の速度成分で移動させ、Z軸をZ方向の速度成分で移動させるように制御することで分割軌跡に沿って工具の加工位置を移動させることが可能になる。
図6に示すように、分割軌跡l上の始点の位置P1での各軸の速度成分は(V1x,V1y,V1z)となり、終点の位置P2での各軸の速度成分は(V2x,V2y,V2z)となるので、各軸を位置P1からP2に移動する間に各軸の速度をV1x→V2x、V1y→V2y、V1z→V2zに変化させる。また、分割軌跡lに沿うように工具を移動させるには、工具の進行方向が分割軌跡の接線方向に向くように短い時間間隔で各軸の速度を変える必要がある。
【0045】
そこで、
図7に示すように、各分割軌跡l上を加工速度Fで工具を移動させるときの各軸を移動させる速度Vx,Vy,Vzの時間変化を表す速度曲線を求める。
図7は、Z方向の移動がなくXY平面でのみ移動がある場合を示す。各軸の速度をこの速度曲線に従うように制御することにより、加工位置を分割軌跡lに沿って移動させることができる。そこで、軸制御データには、例えば、各軸の速度曲線を短い一定の時間間隔Δtで分割した各点における各軸の速さと、分割軌跡lの開始点を記録する。
【0046】
加工機4には最大加速度や最大加加速度に限界があるため指定された加工速度Fを維持したまま、分割軌跡lに沿って工具の加工位置を移動させることができないところがある。そこで、最大加速度や最大加加速度に関するパラメータに基づいて、加工位置における分割軌跡lの曲率が大きく、加工速度Fで加工を行ったときに分割軌跡lに沿って加工できないと予測される部分では、指定された加工速度Fより小さくなるように各軸方向の速度を求める。具体的には、分割軌跡を時間間隔Δtで分割した各点における分割軌跡の曲率に基づいて、指定された加工速度Fで各軸を移動させたときの加速度と加加速度を求め、その加速度や加加速度が、パラメータに設定されている加工機4の最大加速度や最大加加速度を超えている部分は、加工位置の移動速度を加工速度Fよりも小さい速度にして最大加速度や最大加加速度を超えないように各軸方向の速度を求めて軸制御データを生成する。
【0047】
また、
図7に示す、時間T0から時間Tnまでの速度曲線の積分値が時間T0から時間Tnまでに移動した距離となるので、時間Tnにおける各軸の位置は、分割軌跡lの開始点P0に速度曲線のT0〜Tn間の積分値を加えることにより各軸の位置が求められる。
【0048】
ここでは、軸制御データに、一定の時間間隔Δtで各軸の速度を記録する場合について説明する。直線上を工具の加工位置を移動するときのように速度に変化がない場合には、直線移動の区間は各軸の速度を記録しなくてもよい。また、時間間隔は常に一定でなくてもよく、曲率が小さい区間は大きい時間間隔で速度を記録し、曲率が大きい区間は小さい時間間隔で速度を記録するようにしてもよい。時間間隔が一定でない場合には、軸制御データに速度を記録した時間間隔も記録する。常に、一定の時間間隔で、速度を記録する場合には、精度が維持できるように、最も小さい時間間隔で速度を記録しなければならないが、曲率に応じて時間間隔を変えるようにすることで、データ量を減らすことができる。
【0049】
上記の各処理により、通常、NCプログラムで定義される1つのプログラムブロックで表される1つの工具軌跡のブロック(Gコードで定義される範囲)が、軸制御データで定義される具軌跡が実際の工具軌跡から大きく外れないようにするために、複数の軸制御データに変換されることが多いが、例えば、長い1つ直線の工具軌跡が複数のブログラムブロックで指定され複数の工具軌跡のブロックで形成されているような部分は、複数の工具軌跡のブロックが1つの軸制御データに変換されることもある。生成された軸制御データを工具軌跡の加工開始位置から順にファイルに記録して、記憶部(軸制御データ記憶部)35に一旦記憶される。
【0050】
軸制御データ演算部321は、時間間隔Δtで実行され、軸制御データに記録されている各軸の速度を読み取り、軸制御データに記録されている各軸の速度で各軸を移動させるための移動指令を生成して駆動部43に出力する。駆動部43は、出力された移動指令に従って各制御軸を指定された速度で移動させる。
【0051】
描画データ生成部322は、記憶部35に記憶されているファイルに記録されている軸制御データに従って、工具軌跡を表す描画データを生成する。描画データ生成部322は、軸制御データ演算部321が時間間隔Δtで移動指令を駆動部43に出力する度に実行され、移動指令に従った速度で各軸を移動させたときの現在位置が常に計算される。一方、描画データは移動指令を駆動部43に出力する前後で工具が移動する移動ベクトルの方向が変わった時にだけ生成され、既に描画データとして作成された工具軌跡の終点から現在位置までを直線で結ぶ描画データを生成する。具体的には、時間間隔Δtで、軸制御データ演算部321が移動指令を駆動部43に出力する前に工具が進んでいる方向の移動ベクトルと、出力後に移動指令に従って工具が進む方向の移動ベクトルを比較して、各時刻の前後で工具が進む方向が同じ方向であるときは、描画データは生成しない。つまり、直線で工具が移動している間は描画を行わない。
【0052】
同じ方向に進んでいるか否かは、例えば、時刻の前後で2つの移動ベクトルの外積値等を用いて判定することができるが、表示する表示装置のスクリーンの描画精度に応じて、表示装置に表示した工具軌跡に違いが現れない範囲で経験的に決められたものであればよい。例えば、実際に数値制御装置において加工する場合には、高精度な性能が求められるため、加工される線には違いがあっても、それをシミュレーションする表示装置に描画する工具軌跡を示す線に違いが現れないことが多いので、表示装置の描画結果に違いが現れない範囲であれば同一方向であると判定してもよい。あるいは、コンピュータの計算精度の範囲で同一方向の判定が行われる。
【0053】
一方、描画データ生成部322は、工具が進む方向を比較した結果、各時刻の前後で工具が進む方向が違うときには、描画データとして作成済みの工具軌跡の終点位置から工具の進む方向が変わる直前の現在位置に対応する表示部33の座標位置を結ぶ軌跡を直線で結ぶ描画データを生成し、生成された描画データを順に記憶部35の現在位置記憶部に記憶する。
【0054】
描画表示制御部323は、描画データ生成部322で生成された描画データが、記憶部35に記憶された順番に表示部33に出力して、表示部33の表示スクリーン上に工具軌跡を表示させる。具体的には、各描画データにしたがって表示部に描画済みの工具軌跡の終点位置からその描画データの次の描画データで指定された座標位置までの工具軌跡を描画する
【0055】
ここで、加工システム1で、CAM装置(またはCAD装置)2から受信したNCプログラムまたは工具軌跡のデータを本発明の数値制御装置3で受信して加工機4に移動指令を出力しながら、工具軌跡を描画する処理の流れの一例を、
図8A、
図8Bのフローチャートと
図9の描画する工具軌跡の一例を用いて説明する。
【0056】
操作者は、CAM装置2または数値制御装置3を操作してCAM装置2に保存されているNCプログラムまたは工具軌跡のデータを選択する。選択されたNCプログラムを数値制御装置3の入出力部36を通して受信し、数値制御装置3の記憶部35に記憶させる(S1)。
【0057】
次に、操作者が数値制御装置3の記憶部35に記憶されているNCプログラムのファイルの中から加工しようとする所望のNCプログラムを選択すると、軸制御データ演算部321のNCプログラム解読部324は、記憶部35から選択されたNCプログラムを解析してNCデータを生成する。NCプログラム解読部324は、生成したNCデータのうち工具軌跡の形状を定義するNCデータ、例えば、Gコードと各軸の座標値を工具軌跡生成部325に送る。また、NCプログラム解読部324は、NCデータから得ることができる複数種類のパラメータのデータを記憶部35に記憶させる(S2)。
【0058】
工具軌跡生成部325は、取得したNCデータに基づいてNCプログラムで定義されている形状を複数のパラメトリック曲線に変換して工具軌跡を生成する。工具軌跡生成部325は、生成した工具軌跡のデータを記憶部35に記憶させる(S3)。
【0059】
軸制御データ生成部326は、すでに説明されている演算プロセスで、NCプログラムで指定されている送り速度(加工速度)Fと、パラメトリック曲線に変換された工具軌跡と、選択された加工機4に対応するパラメータを用いて、複数の軸制御データに変換して記憶部35に記憶する(S4)。
【0060】
軸制御データは、加工する順に従って駆動部43に受け渡たされるとともに、記憶部35に記憶される。並行して、描画データ生成部322は、記憶部35から軸制御データを取得する(S5)。
【0061】
軸制御データ演算部321は、時間間隔Δtで実行され、軸制御データに記録されている各軸の速度を先頭から読み取り、記録されている速度で各軸を移動させるための移動指令を生成して駆動部43に出力する。まず、最初に、軸制御データの先頭に記録されている時刻t
0の速度を出力し(S6)、並行して、描画データ生成部322を実行して、移動指令に従った速度で各軸を移動させたときのΔt時間後の時刻t
1(=t
0+Δt)の位置P
1を計算して現在位置として現在位置記憶部に記憶する(S7)。また、このとき描画は行われていないので、工具軌跡の終点位置P
eは工具軌跡の描画を開始する開始位置P
0と一致する。
【0062】
次の時刻t
1(n=1)に(S8)、軸制御データの次に記録されている速度を読みだして(S9)、駆動部43に出力し(S10)、並行して、描画データ生成部322を実行する。描画データ生成部322は、時刻t
0から時刻t
1の間に工具が移動する移動ベクトルと、時刻t
1からΔt時間後の時刻t
2(=t
1+Δt)の間に工具が移動する移動ベクトルを比較して(S11)、時刻t
1の前後で工具が進む方向が同じ方向であるか否かを判定し(S12)、同じ方向に進むときは(S12 Yes)、描画データは生成しないで、移動指令に従って各軸を移動させた時刻t
2の現在位置P
2を計算して記憶部35の現在位置記憶部に記憶する(S15)。
【0063】
さらに、軸制御データに次のn(n=n+1=2,S17)の時刻t
2の軸制御データがあるときは(S16NO、S17)、時刻t
2の速度を読みだして(S9)、前述同様に、軸制御データの次に記録されている速度を駆動部43に出力し(S10)、並行して、描画データ生成部322を実行して、時刻t
1から時刻t
2の間に工具が移動する移動ベクトルと、時刻t
2からΔt時間後の時刻t
3(=t
2+Δt)の間に工具が移動する移動ベクトルを比較して(S11)、時刻t
2の前後で工具が進む方向が同じ方向であるときは(S12 Yes)、描画データは生成しないで、時刻t
2からΔt時間後の時刻t
3の現在位置P
3を計算して現在位置記憶部に記憶する(S15)。このように、軸制御データに記録されている速度を駆動部43に出力する時間間隔Δtの各時刻で、工具が進む方向が変化しないときは、描画データは生成しないでΔt時間後の現在位置を計算して現在位置記憶部に記憶する処理を続ける。
【0064】
さらに進んで、時刻t
i(n=i,i>2)で、時刻t
i−1から時刻t
i(=t
i−1+Δt)の間に工具が移動する移動ベクトルと、時刻t
iからΔt時間後の時刻t
i+1(=t
i+Δt)の間に工具が移動する移動ベクトルを比較して(S11)、時刻t
iの前後で工具が進む方向が変わるときは(S12 No)、描画データを生成する。描画データは、工具の始点P
0から現在位置記憶部に記憶されている時刻iの現在位置P
iまでを直線で結んだ描画データを生成して記憶部35の描画データ記憶部に記憶する(S13)。描画表示制御部323は、描画データ記憶部に記憶されている描画データを表示部33に出力して表示スクリーンに始点からP
iまでの工具軌跡を表示させる(S14)。このとき、描画された軌跡の終点位置P
eはP
iである。また、時刻t
iからΔt時間後の時刻t
i+1の現在位置P
i+1を計算して現在位置記憶部に記憶する(S15)。
【0065】
次の時刻t
i+1の前後で工具が進む方向が変わるときは(S12 No)、表示部33に描画された最後の終点位置P
e=P
iから現在位置記憶部に記録されている現在位置P
i+1までを直線で結ぶ描画データを生成し描画データ記憶部に記憶する(S13)。描画表示制御部323は、描画データ記憶部に記憶されている描画データを読み取り、表示部33の表示スクリーンにP
iからP
i+1を結ぶ工具軌跡を表示させる(S14)。また、時刻t
i+2からΔt時間後の時刻t
i+3の現在位置P
i+3を計算して現在位置記憶部に記憶する(S15)。
【0066】
上述と同様に、時刻t
i+2〜t
j−1では工具が進む方向に変化がないときには(S12 Yes)、表示データを作成せずに現在位置を計算して更新していく(S15)。時刻t
j(n=j,j>i+2)で、工具が進む方向が変わった時には(S12 No)、描画データを生成する。この時、現在位置記憶部は時刻t
jの位置P
jが記憶されているので、表示部33の表示スクリーン上に描画された工具軌跡の終点位置P
i+1から現在位置記憶部に記憶されている現在位置P
jまでを直線で結ぶ描画データを生成して(S13)、表示スクリーンに工具軌跡を表示させる(S14)。さらに、現在位置P
j+1を計算して現在位置記憶部に記憶する(S15)
【0067】
以上のS9〜S17の処理を繰り返して、時間間隔Δtで移動指令を駆動部43に出力する時刻の前後で、工具位置が移動する移動ベクトルの方向が変わった時にのみ、描画データが既に作成されている工具軌跡の終点位置と、そのときに工具がある座標位置を結ぶ軌跡を描画する描画データを生成する。
【0068】
以上のようにして、軸制御データに記録されている最後の速度が駆動部43に出力が終わると(S18)、記憶部35から次の軸制御データを読み取り、描画データ生成部322に受け渡す(S5)。
【0069】
以上説明したように、全ての軸制御データに基づいた移動指令を駆動部43に出力および描画が終了するまでS5〜S18の処理を繰り返す。
【0070】
このように工具の進行方向が変わらないところは、工具は直線で進んでいるため、工具の進行方向が変わるところまでを1つの描画データにすることにより、描画データの量を少なくして描画に必要な処理時間を削減することが可能になるので、加工制御に影響がないようにすることができる。しかし、工具が進む方向が変わるところでは、常に描画データが作成されるため、加工された工具軌跡が正確に表示される。
【0071】
上述では、描画データ作成後にその描画データをすぐに表示する方法について説明したが、一旦、描画データを描画データ記憶部にスプーリングしておき、加工制御に関する処理が実行されていない時に、描画表示制御部323を実行して表示を行うようにしてもよい。
【0072】
また、軸制御データにはある時間間隔で各軸の速度を記録する場合について説明したが、速度の変化分を記録するようにしてもよい。
【0073】
上述では、所定の時間間隔で移動指令を駆動部に出力する時刻の前後において工具位置が移動する移動ベクトルの方向が同じ方向である場合は、描画データを生成しない場合について説明したが、長い間、直線で移動を行う場合には、描画されない時間が長くなる。そこで、移動ベクトルの方向が同じ方向であっても、表示部に表示されている工具軌跡の終点位置と各時刻の工具の座標位置との距離が所定の閾値を越えている場合には、表示部に表示されている工具軌跡の終点位置とその時刻の工具の座標位置とを結ぶ工具軌跡を描画する描画データを生成するようにしてもよい。
【0074】
このように、表示されない時間が長くなりすぎないようにすることにより、実際に加工を行っている状態と一緒に表示が行われる。
【0075】
上述では、一定の時間間隔で速度を記録した軸制御データを駆動部43に出力する場合について説明したが、各軸方向の速度の時間変化を表す数式のデータを軸制御データとして駆動部43に出力し、駆動部43で受け取った数式に従って各軸の速度を変化させるようにしてもよい。