(57)【特許請求の範囲】
【請求項１】
加工プログラムに基づいてワークを加工するシミュレーションを実行するシミュレーション部を備えた数値制御装置において、
前記シミュレーションにより描画される前記ワークの形状を示す描画ワークの体積を算出する描画ワーク体積量算出部と、
前記描画ワーク体積量算出部により算出される、前記シミュレーションの実行開始時の初期の描画ワークの体積と、前記加工プログラムに含まれる各ブロックの実行完了時の描画ワークの体積とに基づいて、該ブロックの実行完了時における切粉堆積量を予測する切粉堆積量予測部と、
前記切粉堆積量予測部により予測された前記加工プログラムに含まれる各ブロックの実行完了時における切粉堆積量に基づいて、切粉を排出するタイミングを算出する切粉排出タイミング算出部と、
前記切粉排出タイミング算出部が算出した切粉を排出するタイミングに基づいて、前記加工プログラムに切粉排出用の指令コードを挿入する切粉排出指令挿入部と、
を備えたことを特徴とする数値制御装置。
【請求項２】
前記切粉排出タイミング算出部が算出した切粉を排出するタイミングを表示する表示部をさらに備える、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記表示部は、前記加工プログラムの各ブロックに関連付けて、当該ブロックの実行完了時における切粉堆積量を表示する、
ことを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記シミュレーションの実行開始時の初期の描画ワークの体積と、前記加工プログラムに含まれるブロックの実行完了時の描画ワークの体積との差分から切粉堆積量を算出する際に用いられる係数を記憶する係数データベースをさらに備え、
前記切粉堆積量予測部は、前記シミュレーションの実行開始時の初期の描画ワークの体積と、前記加工プログラムに含まれるブロックの実行完了時の描画ワークの体積との差分に対して前記係数をかけることで切粉堆積量を予測する、
ことを特徴とする請求項１〜３のいずれか１つに記載の数値制御装置。
【請求項５】
前記係数データベースには、前記ワークの材質に関連付けられたワーク材質係数および前記加工に用いる工具の種類に関連付けられた工具種類係数の少なくともいずれかが記憶されている、
ことを特徴とする請求項４に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特に切粉堆積量を求める数値制御装置に関する。
【背景技術】
【０００２】
工作機械においては、ワークを加工する際に切粉が発生して、その切粉が蓄積することがあり、その切粉が工作機械の機構部へと侵入することによって、工作機械の機構部が故障に至る場合や切粉が加工に直接悪影響を与える場合がある。切粉の侵入による工作機械の機構部の故障や加工への悪影響を防ぐためには、機内に溜まった切粉を排出する必要がある。
【０００３】
切粉の排出手段の一つとして、工作機械を覆うカバーの内側に取り付けられたノズルから切削液を噴出してカバー内に付着して堆積する切粉を洗い流す手段がある。このような手段を用いたカバー内の洗浄方法を用いる場合、加工プログラムの先頭で切削液の噴出を開始し、加工プログラムの終了時に噴出を停止するのが一般的である。
【０００４】
上記した方法では、切削液の噴出を一度開始すると常に切削液を流すこととなるので、特に切り屑の少ない加工では切削液を無駄に流してしまい、切削液と電力を浪費するという問題点があった。このような問題に解決することを目的として、特許文献１には加工に用いる工具の種類に従って定式化した計算式を用いて切削体積を予測し、切削体積がある閾値を超えたら切削液を噴出して切粉を洗い流す従来技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２１３４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示される従来技術では、切削体積の予測に必要な情報が実際と異なるため、閾値を超えるタイミングの予測精度が低いという問題がある。例えば、特許文献１に開示される技術では工具径に０〜１の定数を掛けた値を切込量として切削体積を予測しているが、実加工時にはワークの材質や加工精度などにより切込量は様々な値となる。また、特許文献１に開示される技術ではエアカット部分においても切粉が発生すると計算しているのに対して、実加工時にはエアカット部分では切粉が発生しない。このような予測と実加工との差異により、特許文献１に開示される技術を用いた場合、適切なタイミングで切削液を噴出させることができず、切削液の噴出タイミングが早い場合には無駄な切削液噴出が行われ、切削液の噴出タイミングが遅い場合には切粉が溜まり加工不良が発生する可能性が増大する。
【０００７】
また、従来技術では加工状況に応じて切削液の噴出タイミングは制御しているものの、切削液に加える圧力や切削液の噴出場所については固定的であるため、切粉の堆積状況によっては切削液の噴出時の圧力が不適切で洗い流す力が不足する場合や、適切な箇所に切削液が噴出されない場合などに対応することができないことがあるという課題がある。
更に、従来技術では予測した切削体積が閾値を超えたタイミングで切削液を噴出する制御を直接行っているため、切削液の噴出タイミングが妥当であるか否かを確認することがオペレータにとって困難であるという課題もあった。
【０００８】
そこで本発明の目的は、適切な切粉排出のタイミングを求めることが可能であり、かつ、必要に応じてオペレータが切粉排出方法の変更や切粉排出タイミングの妥当性を検討することが可能な数値制御装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明では、加工プログラムに基づくソリッドデータを用いた３次元加工シミュレーションを実行し、図１に示すように、加工プログラム実行開始時の描画ワークの体積と、各ブロック実行中のブロックにおける描画ワークの体積とを求める。そして、図２に示すようにこれら体積の差分に基づいて切粉堆積量を算出し、該切粉堆積量が予め設定した閾値を超える直前のブロックに図３に示すような切粉排出用のＭコードなどのプログラムを自動挿入する機能を数値制御装置に持たせることで、上記問題を解決する。
【００１０】
そして、本発明の請求項１に係る発明は、加工プログラムに基づいてワークを加工するシミュレーションを実行するシミュレーション部を備えた数値制御装置において、前記シミュレーションにより描画される前記ワークの形状を示す描画ワークの体積を算出する描画ワーク体積量算出部と、前記描画ワーク体積量算出部により算出される、前記シミュレーションの実行開始時の初期の描画ワークの体積と、前記加工プログラムに含まれる各ブロックの実行完了時の描画ワークの体積とに基づいて、該ブロックの実行完了時における切粉堆積量を予測する切粉堆積量予測部と、前記切粉堆積量予測部により予測された前記加工プログラムに含まれる各ブロックの実行完了時における切粉堆積量に基づいて、切粉を排出するタイミングを算出する切粉排出タイミング算出部と、前記切粉排出タイミング算出部が算出した切粉を排出するタイミングに基づいて、前記加工プログラムに切粉排出用の指令コードを挿入する切粉排出指令挿入部と、を備えたことを特徴とする数値制御装置である。
【００１２】
本発明の請求項２に係る発明は、前記切粉排出タイミング算出部が算出した切粉を排出するタイミングを表示する表示部をさらに備える、ことを特徴とする請求項１に記載の数値制御装置である。
本発明の請求項３に係る発明は、前記表示部は、前記加工プログラムの各ブロックに関連付けて、当該ブロックの実行完了時における切粉堆積量を表示する、ことを特徴とする請求項２に記載の数値制御装置である。
本発明の請求項４に係る発明は、前記シミュレーションの実行開始時の初期の描画ワークの体積と、前記加工プログラムに含まれるブロックの実行完了時の描画ワークの体積との差分から切粉堆積量を算出する際に用いられる係数を記憶する係数データベースをさらに備え、前記切粉堆積量予測部は、前記シミュレーションの実行開始時の初期の描画ワークの体積と、前記加工プログラムに含まれるブロックの実行完了時の描画ワークの体積との差分に対して前記係数をかけることで切粉堆積量を予測する、ことを特徴とする請求項１〜３のいずれか１つに記載の数値制御装置である。
【００１３】
本発明の請求項５に係る発明は、前記係数データベースには、前記ワークの材質に関連付けられたワーク材質係数および前記加工に用いる工具の種類に関連付けられた工具種類係数の少なくともいずれかが記憶されている、ことを特徴とする請求項４に記載の数値制御装置である。
【発明の効果】
【００１７】
本発明によれば、現在実行中のブロックに至るまでにワークから切削等で取り除かれた部分の体積に基づいて精度の高い切粉堆積量の予測をすることが可能となり、切粉排出作業が必要なブロック位置を正確に検出することができるようになる。また、切粉排出作業が必要なブロック位置に切粉排出用のＭコードなどを挿入するようにしているため、当該コードをオペレータが再編集して切削液に加える圧力や切削液の噴出場所を変更したり、切削液の噴出タイミングの妥当性を検討したりすることができるようになり、オペレータによるプログラム作成に掛かる手間を削減できる。
【図面の簡単な説明】
【００１８】
【図１】本発明により加工プログラム実行開始時の描画ワークの体積と各ブロック実行中のブロックにおける描画ワークの体積とを求めた例を示す図である。
【図２】本発明により、加工プログラム実行開始時の描画ワークの体積と、各ブロック実行中のブロックにおける描画ワークの体積との差分から切粉堆積量を求めた例を示す図である。
【図３】本発明により切粉排出用の指令コードを加工プログラムに自動挿入した例を示す図である。
【図４】ワーク表面を複数の３角形の要素で構成したモデルを例示する図である。
【図５】本発明の一実施形態によるワークの体積の算出方法を説明する図である。
【図６】本発明の一実施形態による数値制御装置と該数値制御装置によって駆動制御される工作機械、例えば、旋盤等の要部を示すハードウェア構成図である。
【図７】本発明の一実施形態による数値制御装置の要部機能を示す概略的な機能ブロック図を示している。
【図８】本発明の数値制御装置上で実行される処理を加工シミュレーションに関連する処理と切粉堆積量の予測に関連する処理とに分けて示したフローチャートである。
【図９】描画ワーク体積量算出部が実行する描画ワークソリッドモデルのワークの体積Ｖｓを求める処理のフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面と共に説明する。
本発明の数値制御装置は、以下の各手段を用いることで、加工プログラムに基づく切粉堆積量の予測と、該加工プログラムへの切粉排出用コードの自動挿入を行う。
【００２０】
＜切粉堆積量予測手段＞
本発明の数値制御装置は、ソリッドデータを用いた３次元加工シミュレーションにより、加工プログラムに基づく加工開始時に初期の描画ワークの体積を計算し、また、加工シミュレーション中に、加工プログラムの１ブロックを実行する毎に当該ブロックに実行後の描画ワークの体積を計算する。なお、ソリッドデータを用いた３次元加工シミュレーションによる描画ワークの体積の計算方法については後述する。
そして、計算した初期の描画ワークの体積と、加工プログラムの各ブロック実行後の描画ワークの体積の差分を求め、該体積の差分から切粉堆積量を計算し、前記切粉堆積量が予め設定した閾値Ｔｈを超える時の実行ブロック番号を求める。なお、体積の差分から切粉堆積量を求める計算方法については後述する。
【００２１】
更に、前記した閾値Ｔｈを超えるブロックの実行中における、切粉堆積量が閾値Ｔｈを超える工具の位置を、下記の手順により予測する。
●手順ａ）閾値Ｔｈを超えるブロック実行直前での切粉堆積量Ｖｐを求める。
●手順ｂ）閾値Ｔｈを超えるブロック実行直後での切粉堆積量Ｖｎを求める。
●手順ｃ）ＶｐとＶｎの差分Ｖｄを求める。Ｖｄは前記ブロック実行中の切粉発生量を意味する。
●手順ｄ）閾値ＴｈとＶｐの差分Ｖｃを求める。Ｖｃは、閾値Ｔｈを超えるときの前記ブロックでの切粉発生量を意味する。
●手順ｅ）Ｖｃ／Ｖｄを求める。
●手順ｆ）閾値Ｔｈを超えるブロックでの指令が直線補間指令の場合、前記ブロックでの各軸の移動量にＶｃ／Ｖｄを掛け、前記ブロックの開始位置に前記各軸の移動量を加算する。これを閾値Ｔｈを超えるブロック実行中の工具の位置とする。また、閾値Ｔｈを超えるブロックでの指令が円弧補間指令の場合、前記ブロックでの回転角度にＶｃ／Ｖｄを掛けることで、閾値Ｔｈを超えるときの回転角度を求め、本回転角度、半径、前記ブロックの開始位置より閾値Ｔｈを超えるブロック実行中の工具の位置を求める。
【００２２】
閾値Ｔｈを超えるブロックのブロック番号と、上記手順で求めた前記工具の位置については、数値制御装置の表示画面に表示してオペレータに示すと共に、周辺機器が参照可能なメモリに格納される。以後、閾値Ｔｈを超えるブロックを開始する直前の描画ワークの体積を初期の描画ワーク体積とみなし、当該ブロックを開始ブロックとして上記した方法を繰り返すことで、切粉堆積量の閾値Ｔｈを越える加工プログラムのブロックおよび工具の位置をすべて抽出する。
【００２３】
閾値Ｔｈを超えるブロックのブロック番号と前記工具の位置が求まると、後述する切粉排出指令挿入手段が、前記切粉堆積量が閾値Ｔｈを超える時のブロック番号の直前に切粉排出用の指令ブロックを自動挿入する。このようにすることで、切粉排出用の指令ブロックを自動挿入したプログラムの運転時に、当該指令ブロックが実行されたタイミングで周辺機器による切粉除去用動作が開始される。ここで、切粉堆積量が閾値Ｔｈを超える前記工具の位置を格納したメモリを周辺機器が参照することで、工具が前記工具の位置へ移動した時に切粉除去動作を開始させることも可能である。
【００２４】
なお、オペレータが閾値Ｔｈを超える時のブロックを編集してから、切粉排出用の指令ブロックが挿入するようにしても良い。数値制御装置の表示画面上には閾値Ｔｈを超えるブロックのブロック番号と前記工具の位置が表示されているので、オペレータは、切粉堆積量が閾値Ｔｈを超えるブロックを編集して前記閾値を超えるタイミングでブロックを分割することができる。そして、ブロックを分割した後に前記タイミングで切粉排出用の指令ブロックを実行するように挿入することで、高精度なタイミングで任意の方法による切粉除去を行うことができる。例えば、閾値Ｔｈを超えるタイミングで動作を中断し、工具をクリーニング用工具に交換して切粉除去を行うことも可能である。
【００２５】
＜切粉排出指令挿入手段＞
本発明の数値制御装置は、切粉排出用の切粉堆積量が閾値Ｔｈを超えるブロックの直前に、切粉排出用の指令コードのブロックを自動挿入する。このような方法を取ることで、加工プログラムに自動挿入する切粉排出用の指令コードのブロックを変更するだけで、さまざまな切粉排出方法を選ぶことができるようになり、切粉を排出するときの切削液に掛ける圧力や切粉排出の力が及ぶ場所を任意に変更することができる。
【００２６】
例えば、切粉排出用の指令コードとして以下の２つの動作を行う指令コードを含むブロックを挿入することで、適切な圧力で堆積した切粉を排出ことが可能となる。
ブロック１：指定した圧力で切削液を噴出可能なクリーニング用工具への交換指令コード
ブロック２：交換した工具による切粉洗浄用サイクル指令コード
【００２７】
なお、ユーザは切粉排出のタイミングを加工プログラム中の切粉排出用の指令コードなどから容易に確認することができるようになる。また、切粉堆積量予測手段が予測した加工プログラムの各ブロックにおける切粉堆積量とブロック番号の関係をグラフ表示などすることにより、切粉堆積量とブロック番号の関係が分かるため、加工プログラムへの切粉排出用の指令コードのブロックの挿入位置の妥当性を判断することができるようになる。
【００２８】
＜描画ワークの体積の計算方法について＞
本発明の数値制御装置では、既に公知となっている３次元ソリッドデータに基づく体積の算出方法を描画ワークに適用することにより、描画ワークの体積Ｖの算出を行う。描画ワークの体積Ｖの算出においては、ソリッドデータの種類によって異なる算出方法を用いる。ここでは、例として以下の条件を満たす種類のソリッドデータからなる描画ワークの体積を求める手順を述べる。
−条件１：ワークの表面は図４に示すように複数の３角形の要素で構成される。３角形の形状は通常は微小であるが、図４ではわかりやすくするために微小ではない３角形で示している。
−条件２：各３角形の法線ベクトルｖの情報がある。ただし法線ベクトルｖの向きは図４に示すようにワークの外側を向くものとする。
【００２９】
最初に、原点Ｏ、及びある３角形の各頂点ＡＢＣで作成される４面体の体積Ｖｑを計算する。４面体ＯＡＢＣの体積Ｖｑは以下の数１式で算出することができる。数１式におけるベクトルａ，ｂ，ｃは、それぞれ図５に示すように、原点Ｏから３角形の頂点Ａへのベクトル、原点Ｏから３角形の頂点Ｂへのベクトル、原点Ｏから３角形の頂点Ｃへのベクトルである。
【００３０】
【数１】
0006444935.tif 000002
【００３１】
次に、以下の数２式を用いて、４面体ＯＡＢＣの体積Ｖｑを求める時に選択した３角形の法線ベクトルｖと、ベクトルａとのなす角Ａｃを求める。
【００３２】
【数２】
0006444935.tif 000003
【００３３】
数２式を用いて求めた角度Ａｃが９０°以下である場合には、数１式で求めた体積Ｖｑに係数−１をかける。そして、ワーク表面を構成する全ての３角形の要素について同様の演算を行い、結果として得られた全ての４面体の体積値を合計することで、ソリッドモデルの体積を求めることができる。
【００３４】
＜切粉堆積量の計算方法について＞
本発明の数値制御装置では、加工開始前の初期の描画ワークの体積から現在実行中のブロックの実行完了時における描画ワークの体積を減算した値に対して適切な係数を乗ずることで切粉堆積量を算出する。前記係数を求める際には、切粉堆積量に与える影響が大きい（１）ワークの材質と（２）工具の種類とを考慮する。前記係数は任意の定数、または変数である。ここでは、例としてワークの材質、および工具の種類に従って予め設定した定数を乗ずることにより切粉堆積量を算出する手順を述べる。
【００３５】
最初に、加工開始前の初期の描画ワークの体積から現在実行中のブロックの実行完了時における描画ワークの体積を減算した値に基づいて切粉堆積量を求めるときに使用する、係数データベースを予め作成しておく。この係数データベースに記憶する係数は、ワーク材質毎に決まるものと工具種類番号毎に決まるものがあり、パラメータ設定画面でそれぞれを設定しておくことにより前記データベースを作成する。各係数は、例えば予め実験などによりワーク材質毎、工具種類毎に求めておき、それぞれワーク材質および工具種類番号と関連付けて係数データベースに記憶しておくとよい。
【００３６】
オペレータによる加工プログラム作成時に、数値制御装置はオペレータに対してワークの材質を選択するように促す。オペレータは、数値制御装置からの指示に従って適切な材質の種類を選択する。また、オペレータは工具種類番号を指定する。使用する工具種類はプログラム実行中に工具交換を行うと変化するため、例えば加工プログラムに工具交換指令コードとして挿入することにより工具種類を指定する。
【００３７】
そして、数値制御装置は加工シミュレーション実行中に切粉堆積量Ｖａを求める。切粉堆積量Ｖａは以下に示す数３式を用いて算出することができる。なお、数３式において、Ｋｗはワーク材質毎に予め決めておく係数、Ｋｔは工具種類毎に予め決めておく係数、Ｖｍは初期の描画ワークの体積から現在実行中のブロックの実行完了時における描画ワークの体積を減算した値である。
【００３８】
【数３】
0006444935.tif 000004
【００３９】
以下では、上記した各手段により切粉堆積量の予測と切粉排出用の指令コードの挿入とを行う数値制御装置の構成について説明する。
図６は、本発明の一実施形態による数値制御装置と該数値制御装置によって駆動制御される工作機械、例えば、旋盤等の要部を示すハードウェア構成図である。数値制御装置１が備えるＣＰＵ１１は、数値制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムをバス２０を介して読み出し、該システムプログラムに従って数値制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及びＣＲＴ／ＭＤＩユニット７０を介してオペレータが入力した各種データ等が格納される。
【００４０】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、数値制御装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、インタフェース１５を介して読み込まれた後述する加工プログラムやＣＲＴ／ＭＤＩユニット７０を介して入力された加工プログラムが記憶されている。不揮発性メモリ１４には更に、加工プログラムを運転するために用いられる加工プログラム運転処理用プログラム、および３次元加工シミュレーションのためのグラフィック描画処理用プログラム等が記憶されるが、これらプログラムは実行時にはＲＡＭ１３に展開される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や上記した干渉発生の予測検出時における軸に関する情報表示の表示属性変更処理を実行するための各種のシステムプログラムがあらかじめ書き込まれている。本発明を実行する加工プログラム等の各種加工プログラムはインタフェース１５やＣＲＴ／ＭＤＩユニット７０を介して入力し、不揮発性メモリ１４に格納することができる。
【００４１】
インタフェース１５は、数値制御装置１とアダプタ等の外部機器７２と接続するためのインタフェースである。外部機器７２側からは加工プログラムや各種パラメータ等が読み込まれる。また、数値制御装置１内で編集した加工プログラムは、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１に内蔵されたシーケンスプログラムで工作機械の補助装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００４２】
ＣＲＴ／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８はＣＲＴ／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インタフェース１９は手動パルス発生器等を備えた操作盤７１に接続されている。
【００４３】
各軸の軸制御回路３０〜３１はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０〜４１に出力する。サーボアンプ４０〜４１はこの指令を受けて、各軸のサーボモータ５０〜５１を駆動する。各軸のサーボモータ５０〜５１は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０〜３１にフィードバックし、位置・速度のフィードバック制御を行う。なお、ブロック図では、位置・速度のフィードバックについては省略している。
【００４４】
スピンドル制御回路６０は、工作機械への主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、工作機械の主軸モータ６２を指令された回転速度で回転させ、工具を駆動する。
主軸モータ６２には歯車あるいはベルト等でポジションコーダ６３が結合され、ポジションコーダ６３が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはＣＰＵ１１によって読み取られる。
【００４５】
図７は、上記した各手段を図２に示した数値制御装置１に対してシステムプログラムとして実装した場合の概略的な機能ブロック図を示している。本実施形態の数値制御装置１は、シミュレーション部１００、切粉堆積量予測部１１０、切粉排出タイミング算出部１２０、表示部１３０、切粉排出指令挿入部１４０を備える。
シミュレーション部１００は、加工プログラム２００に基づいて仮想的なワークに対する加工のシミュレーションを行う。シミュレーション部１００が実行する加工シミュレーションには、例えば特開２００３−２９１０３３号公報や特開平０９−０７３３０９などに開示される公知の方法を用いることができる。シミュレーション部１００は、描画ワーク体積量算出部１０１を備えており、該描画ワーク体積量算出部１０１は、例えば上記した描画ワークの体積の計算方法を用いて、加工シミュレーション開始時には初期のワークの体積を、加工プログラム２００の各ブロックの加工シミュレーション実行時には加工プログラム２００の各ブロックの実行完了時における描画ワークの体積を、それぞれ算出する。
【００４６】
切粉堆積量予測部１１０は、描画ワーク体積量算出部１０１にて算出される初期のワークの体積、および各ブロックの実行完了時における描画ワークの体積に基づいて、上記した切粉堆積量の計算方法を用いて加工プログラム２００の各ブロック実行完了時における切粉堆積量を予測する。
【００４７】
切粉排出タイミング算出部１２０は、切粉堆積量予測部１１０が予測した加工プログラム２００の各ブロック実行完了時における切粉堆積量と、予め図示しないメモリに記憶してある閾値Ｔｈとを比較し、その比較結果に基づいて切粉堆積量が閾値Ｔｈを超えるブロックのブロック番号を求めると共に、当該ブロックにおいて切粉堆積量が閾値Ｔｈを超える時の工具の位置を求める。切粉堆積量が閾値Ｔｈを超えるブロックのブロック番号、及び当該ブロックにおいて切粉堆積量が閾値Ｔｈを超える時の工具の位置を求める方法は、上記した方法を用いればよい。切粉排出タイミング算出部１２０は、最初に切粉堆積量が閾値Ｔｈを超えるタイミングを算出した後は、当該ブロックを開始する直前の描画ワークの体積を初期の描画ワーク体積とみなし、当該ブロックを開始ブロックとして上記した方法を繰り返すことで、切粉堆積量の閾値Ｔｈを越える加工プログラムのブロックおよび工具の位置をすべて抽出する。
【００４８】
表示部１３０は、切粉排出タイミング算出部１２０が算出した切粉排出のタイミング（切粉堆積量が閾値Ｔｈを超えるブロックのブロック番号、及び当該ブロックにおいて切粉堆積量が閾値Ｔｈを超える時の工具の位置）を、オペレータが閲覧できるようにＣＲＴ／ＭＤＩユニット７０に表示する。
【００４９】
切粉排出指令挿入部１４０は、切粉排出タイミング算出部１２０が算出した切粉排出のタイミング（切粉堆積量が閾値Ｔｈを超えるブロックのブロック番号、及び当該ブロックにおいて切粉堆積量が閾値Ｔｈを超える時の工具の位置）に基づいて、加工プログラム２００に対して切粉排出用の指令コードを自動挿入した修正加工プログラム２１０を生成して出力する。修正加工プログラム２１０は、オペレータがＣＲＴ／ＭＤＩユニット７０を操作することで自由に閲覧、編集することができる。
【００５０】
図８は、本発明の数値制御装置１上で実行される処理を加工シミュレーションに関連する処理と切粉堆積量の予測に関連する処理とに分けて示したフローチャートである。
●［ステップＳＡ０１］シミュレーション部１００は、加工シミュレーション開始する。
●［ステップＳＡ０２］描画ワーク体積量算出部１０１は、初期ワークの形状データに基づいて初期ワークの体積を算出する。
●［ステップＳＡ０３］シミュレーション部１００は、加工プログラム２００の１ブロックについてシミュレーションによる加工を実行する。
【００５１】
●［ステップＳＡ０４］シミュレーション部１００は、シミュレーションによる加工の結果に基づいて加工箇所を取り除いてワーク形状を更新する。
●［ステップＳＡ０５］描画ワーク体積量算出部１０１は、ステップＳＡ０４で更新されたワーク形状に基づいてワークの体積を算出する。
●［ステップＳＡ０６］切粉堆積量予測部１１０は、オペレータが予め入力しておいたワーク材質、工具種類を用いて係数データベース２２０を参照し、切粉堆積量を求めるために用いられる係数を取得する。
●［ステップＳＡ０７］切粉堆積量予測部１１０はステップＳＡ０６で取得した係数と、初期ワークの体積、及び現在のワークの体積に基づいて切粉堆積量の予測値を算出する。
【００５２】
●［ステップＳＡ０８］切粉排出タイミング算出部１２０は、ステップＳＡ０７で算出された切粉堆積量を取得する。
●［ステップＳＡ０９］切粉排出タイミング算出部１２０は、ステップＳＡ０８で取得した切粉堆積量が、予め設定された閾値Ｔｈを超えるか否かを判定する。閾値Ｔｈを超える場合にはステップＳＡ１０へと処理を移行し、閾値Ｔｈを超えない場合にはステップＳＡ１２へと処理を移行する。
●［ステップＳＡ１０］切粉排出タイミング算出部１２０は、加工プログラム２００の現在シミュレーションを実行しているブロック番号をメモリ上に保存する。必要に応じて、閾値Ｔｈを超える時の工具の位置を算出して、同様にメモリ上に保存する。
●［ステップＳＡ１１］切粉排出タイミング算出部１２０は、初期の描画ワークの体積を現在の描画ワーク体積で更新する。
●［ステップＳＡ１２］シミュレーション部１００は、加工プログラム２００の全てのブロックについて加工シミュレーションが終了したか否かを判定する。加工シミュレーションが終了した場合には本処理を終了し、加工シミュレーションが終了していない場兄はステップＳＡ０３へと処理を移行する。
【００５３】
図９は、描画ワーク体積量算出部１０１が実行する描画ワークソリッドモデルのワークの体積Ｖｓを求める処理のフローチャートである。なお、本フローチャートでは、以下の条件を満たす種類のソリッドデータからなる描画ワークの体積を求める処理手順を示している。
−条件１：ワークの表面は複数の微小３角形の要素で構成される。
−条件２：各３角形の法線ベクトルｖのデータが算出乃至取得されている。
●［ステップＳＢ０１］描画ワーク体積量算出部１０１は、ソリッドモデルの描画ワークの体積の計算の開始時にソリッドモデルの描画ワークの体積データを初期化する。
●［ステップＳＢ０２］描画ワーク体積量算出部１０１は、原点Ｏ、および描画ワークの形状を構成している３角形の各頂点とで作成される４面体の体積Ｖｑを求める。
●［ステップＳＢ０３］描画ワーク体積量算出部１０１は、原点Ｏ、および描画ワークの形状を構成している３角形のある頂点とで作成されるベクトルａを求める。
●［ステップＳＢ０４］描画ワーク体積量算出部１０１は、３角形の面においてワークの外側を向く法線ベクトルｖと、ステップＳＢ０３で求めたベクトルａのなす角Ａｃを求める。
【００５４】
●［ステップＳＢ０５］描画ワーク体積量算出部１０１は、ステップＳＢ０４で求めた角Ａｃが９０°以下であるか否かを判定する。９０°以下である場合にはステップＳＢ０６へと処理を移行し、９０°よりも大きい場合にはステップＳＢ０７へと処理を移行する。
●［ステップＳＢ０６］描画ワーク体積量算出部１０１は、ステップＳＢ０２で求めた４面体の体積Ｖｑに対して−１を掛ける。
●［ステップＳＢ０７］描画ワーク体積量算出部１０１は、ソリッドモデルの描画ワークの体積Ｖｓに対して上記ステップで求めたＶｑを加算する。
●［ステップＳＢ０８］描画ワーク体積量算出部１０１は、描画ワークを構成する全ての３角形の要素について上記処理を行ったか否かを判定する。行っている場合には本処理を終了し、行っていない場合にはステップＳＢ０２へと処理を移行する。
【００５５】
以上、本発明の実施の形態について説明したが、本発明は上記した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では本発明で提供する機能を数値制御装置に設けた例を示したが、本発明で提供する機能はパソコンなどで実装された加工プログラムのシミュレーション装置に設けるようにしても良く、この場合においても本発明の各機能は好適に動作する。
【００５６】
また、上記した実施形態では、描画ワークのモデルについて、表面を微小３角形で構成されたソリッドモデルとした例を示したが、描画ワークの体積を算出可能な３次元形状を表すモデルであればどのようなモデル化手法を採用しても良い。
【００５７】
更に、上記した実施形態では、切粉を排出するための手段として切削液を噴出させて切粉を除去する装置を例として挙げているが、切粉を排出するための手段としては、例えば、磁石を使用して切粉を取り出し搬送を行うマグネットコンベアや、切粉を吸引する装置を把持したロボットなどを用いるようにしても良く、その場合においても、切粉排出指令挿入部１４０が、切粉排出タイミング算出部１２０が算出した切粉排出のタイミング（切粉堆積量が閾値Ｔｈを超えるブロックのブロック番号、及び当該ブロックにおいて切粉堆積量が閾値Ｔｈを超える時の工具の位置）に、これら切粉を除去する手段を動作させる指令を挿入することで対応することが可能である。
【符号の説明】
【００５８】
１  数値制御装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５，１８，１９  インタフェース
１６  ＰＭＣ
１７  Ｉ／Ｏユニット
２０  バス
３０，３１  軸制御回路
４０，４１  サーボアンプ
５０，５１  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  主軸モータ
６３  ポジションコーダ
７０  ＣＲＴ／ＭＤＩユニット
７１  操作盤
７２  外部機器
１００  シミュレーション部
１０１  描画ワーク体積量算出部
１１０  切粉堆積量予測部
１２０  切粉排出タイミング算出部
１３０  表示部
１４０  切粉排出指令挿入部
２００  加工プログラム
２１０  修正加工プログラム
２２０  係数データベース
【図１】
0006444935.tif 000005
【図２】
0006444935.tif 000006
【図３】
0006444935.tif 000007
【図４】
0006444935.tif 000008
【図５】
0006444935.tif 000009
【図６】
0006444935.tif 000010
【図７】
0006444935.tif 000011
【図８】
0006444935.tif 000012
【図９】
0006444935.tif 000013