(57)【要約】【課題】加工シミュレーションの実行中に、素材の陰となる部分においても工具を容易に表示し続けることができる加工シミュレーション表示装置を得ること。【解決手段】加工シミュレーション表示装置１Ｘが、加工シミュレーションの実行を制御する制御部１０Ｘと、工具と仮想的な鏡による工具の鏡像とを表示するレンダリング部６と、加工シミュレーション中の、鏡の位置姿勢と工具の位置姿勢とに基づいて、鏡が工具を映せる位置姿勢であるか否かを判定する表示可否判定部４と、鏡が工具を映せる位置姿勢でない場合に、鏡の位置と工具の位置姿勢とに基づいて、工具の鏡像を映すことができる鏡の姿勢を計算し、工具の鏡像を映すことができる鏡の姿勢を計算できない場合には、鏡の位置を指定した外部入力指示に従って鏡の位置を変更したうえで工具の鏡像を映すことができる鏡の姿勢を計算する鏡姿勢変更部５と、を備える。【選択図】図２
2014016667.tif 000002
【特許請求の範囲】
【請求項１】
工作機械が工具によって素材を加工する際の工具位置の変化および素材形状の変化を模擬した加工シミュレーションを３次元的に表示する加工シミュレーション表示装置において、
前記加工シミュレーションの実行を制御する制御部と、
前記加工シミュレーション中の、前記工具と、前記素材と、仮想的な鏡によって映される前記工具および前記素材の鏡像と、を表示するレンダリング部と、
前記加工シミュレーション中の、前記鏡の位置姿勢と、前記工具の位置姿勢と、に基づいて、前記加工シミュレーション中の各タイミングで前記鏡が工具を映せる位置姿勢であるか否かを判定する表示可否判定部と、
前記鏡が工具を映せる位置姿勢でない場合に、前記鏡の位置と、前記工具の位置姿勢と、に基づいて、前記鏡の位置で前記工具の鏡像を映すことができる鏡の姿勢を計算し、前記鏡の位置では前記工具の鏡像を映すことができる鏡の姿勢を計算できない場合には、外部入力される指示であって前記鏡の位置を指定した指示に従って前記鏡の位置を変更し、変更後の前記鏡の位置と、前記工具の位置姿勢と、に基づいて、前記工具の鏡像を映すことができる鏡の姿勢を計算する鏡姿勢変更部と、
を備え、
前記制御部は、
前記鏡が工具を映せる位置姿勢である場合には、前記レンダリング部に、前記工具と、前記素材と、前記工具の鏡像と、前記素材の鏡像と、を表示させながら、前記加工シミュレーションの続きを実行し、
前記鏡が工具を映せる位置姿勢でない場合には、前記工具の鏡像を映すことができるよう前記鏡姿勢変更部に前記鏡の姿勢を変更させたうえで前記レンダリング部に、前記工具と、前記素材と、前記工具の鏡像と、前記素材の鏡像と、を表示させながら、前記加工シミュレーションの続きを実行することを特徴とする加工シミュレーション表示装置。
【請求項２】
前記表示可否判定部は、前記加工シミュレーション中の、前記素材の位置姿勢と、前記工具の形状と、前記素材の形状と、の少なくとも１つを用いて、前記加工シミュレーション中の各タイミングで前記鏡が工具を映せる位置姿勢であるか否かを判定することを特徴とする請求項１に記載の加工シミュレーション表示装置。
【請求項３】
前記表示可否判定部は、レイトレーシングによって前記鏡に映る工具の鏡像を計算するとともに、当該計算の結果を用いて前記鏡で反射した光線が前記工具に当たるか否かを判定し、当該判定の結果に基づいて、前記鏡が工具を映せる位置姿勢であるか否かを判定することを特徴とする請求項１または２に記載の加工シミュレーション表示装置。
【請求項４】
前記鏡姿勢変更部は、前記加工シミュレーション中の、前記素材の位置姿勢と、前記工具の形状と、前記素材の形状と、の少なくとも１つを用いて、前記工具の鏡像を映すことができる鏡の姿勢を計算することを特徴とする請求項１〜３のいずれか１つに記載の加工シミュレーション表示装置。
【請求項５】
前記鏡姿勢変更部は、前記鏡上の位置である鏡位置から前記工具上の任意の点へ向かうベクトルの第１の単位ベクトルと、前記鏡位置から描画投影面に垂直に下ろしたベクトルの第２の単位ベクトルと、の合成ベクトルを算出し、前記合成ベクトルを前記鏡の法線として前記工具の鏡像を映すことができる鏡の姿勢を計算することを特徴とする請求項１〜４のいずれか１つに記載の加工シミュレーション表示装置。
【請求項６】
工作機械が工具によって素材を加工する際の工具位置の変化および素材形状の変化を模擬した加工シミュレーションを３次元的に表示する加工シミュレーション表示装置において、
前記加工シミュレーションの実行を制御する制御部と、
前記加工シミュレーション中の、前記工具と、前記素材と、仮想的な鏡によって映される前記工具とおよび前記素材の鏡像と、を表示するレンダリング部と、
前記加工シミュレーション中の、前記鏡の位置姿勢と、移動後の工具の位置姿勢と、に基づいて、前記加工シミュレーション中の各タイミングで前記鏡が移動後の工具を映せる位置姿勢であるか否かを判定する表示可否判定部と、
前記鏡が移動後の工具を映せる位置姿勢でない場合に、前記鏡の位置と、前記移動後の工具の位置姿勢と、に基づいて、前記移動後の工具の鏡像を映すことができる鏡の位置姿勢を計算し、前記移動後の工具の鏡像を映すことができる鏡の位置姿勢を計算できない場合には、外部入力される指示であって前記鏡の位置を拘束する条件を指定した指示に従って前記鏡の位置を変更し、変更後の前記鏡の位置と、前記移動後の工具の位置姿勢と、に基づいて、前記移動後の工具の鏡像を映すことができる鏡の位置姿勢を計算する鏡位置姿勢変更部と、
を備え、
前記制御部は、
前記鏡が移動後の工具を映せる位置姿勢である場合には、前記レンダリング部に、前記移動後の工具と、前記素材と、前記移動後の工具の鏡像と、前記素材の鏡像と、を表示させながら、前記加工シミュレーションの続きを実行し、
前記鏡が移動後の工具を映せる位置姿勢でない場合には、前記移動後の工具の鏡像を映すことができるよう前記鏡位置姿勢変更部に前記鏡の位置姿勢を変更させたうえで前記レンダリング部に、前記移動後の工具と、前記素材と、前記移動後の工具の鏡像と、前記素材の鏡像と、を表示させながら、前記加工シミュレーションの続きを実行することを特徴とする加工シミュレーション表示装置。
【請求項７】
前記鏡の位置を拘束する条件は、前記鏡の位置を拘束する直線であり、
前記鏡位置姿勢変更部は、前記移動後の工具の鏡像を映すことができる鏡の位置姿勢を計算できない場合には、前記鏡の位置を拘束する直線上で前記鏡の姿勢を変更することを特徴とする請求項６に記載の加工シミュレーション表示装置。
【請求項８】
前記鏡位置姿勢変更部は、移動前の工具位置と移動後の工具位置とを結ぶ直線に対して垂直方向に交わりかつ移動後の工具位置を通る平面と、前記鏡の位置を拘束する直線と、の交点を、前記鏡上の位置である鏡位置とし、当該鏡位置から前記移動後の工具上の任意の点へ向かうベクトルの第１の単位ベクトルと、前記鏡位置から描画投影面に垂直に下ろしたベクトルの第２の単位ベクトルと、の合成ベクトルを算出し、前記合成ベクトルを前記鏡の法線として前記移動後の工具の鏡像を映すことができる鏡の姿勢を計算することを特徴とする請求項６または７に記載の加工シミュレーション表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィクスを用いた加工シミュレーション表示装置に関する。
【背景技術】
【０００２】
工作機械への移動指令が作成される際には、コンピュータ上で工具の移動や素材の変形を模擬して３次元的に表示する加工シミュレーションが利用されることによって、作成された移動指令の確認が行われている。
【０００３】
このような加工シミュレーションでは、コンピュータグラフィクスを用いて３次元物体を描画する場合に、物体の背後など画面上に表示されない隠れた部分が存在する。例えば、山形状の奥側を加工する場合や、多面加工で画面に表示されない背面を加工する場合や、同時５軸加工で複雑形状を加工し創成された形状が他の形状の陰に隠れる場合に、画面上に表示されない部分で加工シミュレーションが行われることとなる。画面上に表示されない隠れた部分を確認するために、視点を移動・回転させるといった方法があるが、そのような視点の操作はユーザにとって煩雑であり、作業の能率を低下させる。
【０００４】
このため、ユーザが視点を変更しなくても隠れた部分を確認できるようにするため、コンピュータグラフィクス上に仮想的な鏡を配置する方法が利用されている（例えば、特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第２９３５３１５号公報
【特許文献２】特許第２１０２６２０号公報
【特許文献３】特開２００７−２７２８８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、加工シミュレーションにおいては工具位置および工具によって切削される部位の位置が時々刻々と移り変わるので、上記第１〜第３の従来技術では、工具位置の変化およびそれに伴う切削の進行する様子を確認し続けることが困難であるという問題があった。
【０００７】
例えば、上記第１および第３の従来技術では、ユーザが入力手段を通じて鏡の位置・姿勢を変える必要があるので、工具位置や切削部位を確認するためには、工具が移動するたびに、加工シミュレーションを一時停止させたうえで、鏡の位置・姿勢を変化させなければならない。このため、ユーザにとって操作が煩雑であった。
【０００８】
また、上記第２の従来技術のように、工具がどのような移動をしても常に何れかの鏡に工具や切削部位が映るような鏡の配置をユーザが予め考えることは困難であった。そのため、工具の移動や切削の進行する様子を確認できない状況が生じ得た。
【０００９】
本発明は、上記に鑑みてなされたものであって、加工シミュレーションの実行中に時々刻々と位置が変化する工具および切削される箇所を、素材の陰となる部分においても、容易に表示し続けることができる加工シミュレーション表示装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、工作機械が工具によって素材を加工する際の工具位置の変化および素材形状の変化を模擬した加工シミュレーションを３次元的に表示する加工シミュレーション表示装置において、前記加工シミュレーションの実行を制御する制御部と、前記加工シミュレーション中の、前記工具と、前記素材と、仮想的な鏡によって映される前記工具および前記素材の鏡像と、を表示するレンダリング部と、前記加工シミュレーション中の、前記鏡の位置姿勢と、前記工具の位置姿勢と、に基づいて、前記加工シミュレーション中の各タイミングで前記鏡が工具を映せる位置姿勢であるか否かを判定する表示可否判定部と、前記鏡が工具を映せる位置姿勢でない場合に、前記鏡の位置と、前記工具の位置姿勢と、に基づいて、前記鏡の位置で前記工具の鏡像を映すことができる鏡の姿勢を計算し、前記鏡の位置では前記工具の鏡像を映すことができる鏡の姿勢を計算できない場合には、外部入力される指示であって前記鏡の位置を指定した指示に従って前記鏡の位置を変更し、変更後の前記鏡の位置と、前記工具の位置姿勢と、に基づいて、前記工具の鏡像を映すことができる鏡の姿勢を計算する鏡姿勢変更部と、を備え、前記制御部は、前記鏡が工具を映せる位置姿勢である場合には、前記レンダリング部に、前記工具と、前記素材と、前記工具の鏡像と、前記素材の鏡像と、を表示させながら、前記加工シミュレーションの続きを実行し、前記鏡が工具を映せる位置姿勢でない場合には、前記工具の鏡像を映すことができるよう前記鏡姿勢変更部に前記鏡の姿勢を変更させたうえで前記レンダリング部に、前記工具と、前記素材と、前記工具の鏡像と、前記素材の鏡像と、を表示させながら、前記加工シミュレーションの続きを実行することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、加工シミュレーションの実行中に時々刻々と位置が変化する工具および切削される箇所を、素材の陰となる部分においても、容易に表示し続けることが可能になるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１に係る加工シミュレーション表示装置の構成を示すブロック図である。
【図２】図２は、実施の形態１に係る加工シミュレーション表示装置内のデータの入出力を説明するための図である。
【図３】図３は、実施の形態１に係る加工シミュレーション表示装置による加工シミュレーションの表示処理手順を示すフローチャートである。
【図４】図４は、無限平面を用いた表示可否判定方法を説明するための図である。
【図５】図５は、鏡の姿勢の計算方法を説明するための図である。
【図６】図６は、実施の形態２に係る加工シミュレーション表示装置の構成を示すブロック図である。
【図７】図７は、実施の形態２に係る加工シミュレーション表示装置内のデータの入出力を説明するための図である。
【図８】図８は、実施の形態２に係る加工シミュレーション表示装置による加工シミュレーションの表示処理手順を示すフローチャートである。
【図９】図９は、鏡の位置姿勢の計算方法を説明するための図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施の形態に係る加工シミュレーション表示装置を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
図１は、実施の形態１に係る加工シミュレーション表示装置の構成を示すブロック図である。加工シミュレーション表示装置１Ｘは、工具の移動や素材（被加工物）の変形を模擬した加工シミュレーションを、コンピュータグラフィクスを用いて３次元的に描画するコンピュータなどの装置である。換言すると、加工シミュレーション表示装置１Ｘは、工作機械が工具によって素材を加工する際の工具位置の変化および素材形状の変化を模擬した加工シミュレーションを３次元的に表示する。
【００１５】
本実施の形態の加工シミュレーション表示装置１Ｘは、鏡の位置姿勢（位置および姿勢）が工具を映せる位置姿勢である場合には、工具・素材と、これらの鏡像とを描画する。また、加工シミュレーション表示装置１Ｘは、鏡の位置姿勢が工具を映せる位置姿勢でない場合には、ユーザからの指示に従って工具を映せる位置姿勢に鏡の位置姿勢を変更したうえで、工具・素材と、これらの鏡像とを描画する。これにより、加工シミュレーション表示装置１Ｘは、時々刻々と表示すべき位置が変わる、工具や切削箇所を、素材の陰になる部分においても、鏡像を利用して表示し続ける。
【００１６】
加工シミュレーション表示装置１Ｘは、鏡位置姿勢入力部２と、記憶部３Ｘと、表示可否判定部４と、鏡姿勢変更部５と、レンダリング部６と、表示部７と、制御部１０Ｘとを備えている。
【００１７】
制御部１０Ｘは、加工シミュレーションの実行を制御する機能を有するとともに、鏡位置姿勢入力部２、記憶部３Ｘ、表示可否判定部４、鏡姿勢変更部５、レンダリング部６および表示部７を制御する。制御部１０Ｘが制御する加工シミュレーションは、工具による素材加工のシミュレーションである。
【００１８】
鏡位置姿勢入力部２は、仮想的な鏡の位置姿勢である後述の鏡位置姿勢データ３１を入力し、記憶部３Ｘに送る。仮想的な鏡は、工作機械の工具によって加工（切削加工など）される素材や、素材を加工する工具などを仮想的に映すものであり、加工の進行に伴って種々の位置姿勢に移動させられる。
【００１９】
鏡位置姿勢入力部２へは、ユーザから必要に応じて鏡位置姿勢データ３１が入力される。具体的には、制御部１０Ｘから鏡位置姿勢入力部２に、後述する「鏡位置姿勢の入力要求１１Ａ」が送られると、鏡位置姿勢入力部２は、ユーザが鏡位置姿勢入力部２に入力した鏡位置姿勢データ３１を記憶部３Ｘに格納する。換言すると、鏡位置姿勢の入力要求１１Ａが要求有りを示す値の場合に、鏡位置姿勢入力部２は、外部入力された鏡位置姿勢データ３１を記憶部３Ｘに格納する。鏡位置姿勢の入力要求１１Ａは、鏡位置姿勢の入力を要求しているか否かを示す情報である。
【００２０】
なお、ユーザによる鏡位置姿勢データ３１の入力としては、キーボードを利用して鏡位置の数値（座標など）を入力させてもよいし、マウスなどのポインティングデバイスを利用して鏡位置を指定させてもよい。
【００２１】
記憶部３Ｘは、後述する、鏡位置姿勢データ３１、工具・素材位置姿勢データ３２、工具・素材形状データ３３などを記憶するメモリなどである。鏡位置姿勢データ３１は、鏡の位置姿勢を示すデータであり、工具・素材位置姿勢データ３２は、工具および素材の位置姿勢を示すデータである。また、工具・素材形状データ３３は、工具および素材の形状を示すデータである。
【００２２】
鏡位置姿勢データ３１内の鏡の位置姿勢は、加工シミュレーションの進行状況と対応付けされて、記憶部３Ｘ内に格納される。また、工具・素材位置姿勢データ３２内の工具の位置姿勢および素材の位置姿勢は、それぞれ加工シミュレーションの進行状況と対応付けされて、記憶部３Ｘ内に格納される。
【００２３】
工具・素材形状データ３３のうち、工具の形状は加工中も不変であり、素材の形状は加工シミュレーションの進行に伴って新たな形状（加工後の形状）に変化する。このため、工具・素材形状データ３３内の素材の形状は、加工シミュレーションの進行状況と対応付けされて、記憶部３Ｘ内に格納される。
【００２４】
このように、鏡位置姿勢データ３１、工具・素材位置姿勢データ３２、工具・素材形状データ３３は、加工シミュレーションの進行状況と対応付けされて記憶部３Ｘ内に格納される。
【００２５】
加工シミュレーションの開始前は、工具の位置姿勢および素材の位置姿勢は、初期状態である。このため、加工シミュレーションの開始前は、初期状態の工具の位置姿勢および初期状態の素材の位置姿勢が記憶部３Ｘ内に格納されている。同様に、加工シミュレーションの開始前は、初期状態の素材の形状が記憶部３Ｘ内に格納されている。
【００２６】
表示可否判定部４は、鏡が工具を映すことのできる位置姿勢であるか否か（工具鏡像の表示可否）を判定する。表示可否判定部４は、制御部１０Ｘから後述する「表示可否の判定要求１２Ａ」が送られてくると、工具鏡像の表示可否を判定する。換言すると、表示可否の判定要求１２Ａが要求有りを示す値の場合に、表示可否判定部４は、工具鏡像の表示可否を判定する。表示可否の判定要求１２Ａは、工具鏡像の表示可否を判定するよう要求しているか否かを示す情報である。表示可否判定部４は、鏡位置姿勢データ３１、工具・素材位置姿勢データ３２、工具・素材形状データ３３を用いて、工具鏡像の表示可否を判定する。
【００２７】
なお、表示可否判定部４は、鏡位置姿勢データ３１と、工具・素材位置姿勢データ３２のうちの工具の位置姿勢と、の少なくとも１つを用いて、工具鏡像の表示可否を判定してもよい。この場合、表示可否判定部４は、工具鏡像の表示可否を判定する際に、工具・素材位置姿勢データ３２のうちの素材の位置姿勢および工具・素材形状データ３３を用いてもよいし、用いなくてもよい。
【００２８】
表示可否判定部４は、表示可否の判定結果を後述する「表示可否の判定データ１３Ｂ」として制御部１０Ｘに送る。表示可否の判定データ１３Ｂは、工具鏡像を表示できるか否かの判定結果を示す情報である。
【００２９】
表示可否判定部４は、現在の鏡の位置姿勢は工具を映すことのできる位置姿勢であると判定した場合に、表示可否の判定データ１３Ｂを「真」を示す値とする。一方、表示可否判定部４は、鏡の位置姿勢は工具を映すことのできない位置姿勢であると判定した場合に、表示可否の判定データ１３Ｂを「偽」を示す値とする。
【００３０】
鏡姿勢変更部５は、制御部１０Ｘから後述する「鏡姿勢の変更要求１４Ａ」が送られてくると、工具の鏡像を映す鏡の姿勢を計算する。換言すると、鏡姿勢の変更要求１４Ａが要求有りを示す値の場合に、鏡姿勢変更部５は、鏡の姿勢を計算する。鏡姿勢の変更要求１４Ａは、鏡の姿勢を変更するよう要求しているか否かを示す情報である。鏡姿勢変更部５は、鏡位置姿勢データ３１と、工具・素材位置姿勢データ３２と、工具・素材形状データ３３とに基づいて、工具を映すことができる鏡の姿勢を計算する。
【００３１】
なお、鏡姿勢変更部５は、鏡位置姿勢データ３１のうちの鏡の位置と、工具・素材位置姿勢データ３２のうちの工具の位置姿勢と、を用いて、工具を映すことができる鏡の姿勢を計算してもよい。この場合、鏡姿勢変更部５は、工具を映すことができる鏡の姿勢を計算する際に、鏡位置姿勢データ３１のうちの鏡の姿勢、工具・素材位置姿勢データ３２のうちの素材の位置姿勢および工具・素材形状データ３３の少なくとも１つを用いてもよいし、用いなくてもよい。
【００３２】
鏡姿勢変更部５は、現在の鏡位置で工具の鏡像を映す鏡姿勢を計算できたか否かの判定結果（鏡の姿勢変更に成功したかの判定結果）を、後述する「姿勢変更判定データ１５Ｂ」として制御部１０Ｘに送る。
【００３３】
鏡姿勢変更部５は、現在の鏡位置では工具の鏡像を映す鏡姿勢を計算できない場合に、姿勢変更判定データ１５Ｂの値を「偽」を示す値とする。一方、鏡姿勢変更部５は、現在の鏡位置で工具の鏡像を映す鏡姿勢を計算できた場合に、姿勢変更判定データ１５Ｂを「真」を示す値とする。鏡姿勢変更部５は、計算した鏡姿勢を記憶部３Ｘに送る。これにより、計算された鏡姿勢および計算に用いた鏡位置が鏡位置姿勢データ３１として記憶部３Ｘ内に格納される。
【００３４】
レンダリング部６は、工具・素材情報（工具および工具の鏡像、素材および素材の鏡像）を表示部７に描画する。レンダリング部６は、制御部１０Ｘから後述する「レンダリング要求１６Ａ」が送られてくると、工具・素材情報を表示部７に描画する。換言すると、レンダリング要求１６Ａが要求有りを示す値の場合に、レンダリング部６は、工具・素材情報を表示部７に描画する。レンダリング要求１６Ａは、工具・素材情報を表示部７に描画するよう要求しているか否かを示す情報である。
【００３５】
レンダリング部６は、鏡位置姿勢データ３１、工具・素材位置姿勢データ３２、工具・素材形状データ３３を用いて、工具・素材情報を表示部７に描画する。表示部（ディスプレイ）７は、レンダリング部６からの指示に従って工具・素材情報を表示する。なお、表示部７と加工シミュレーション表示装置１Ｘとを別構成としてもよい。
【００３６】
図２は、実施の形態１に係る加工シミュレーション表示装置内のデータの入出力を説明するための図である。工具による素材加工の加工シミュレーションを行う際には、制御部１０Ｘが、表示可否判定部４に表示可否の判定要求１２Ａを送る。これにより、表示可否判定部４は、工具鏡像の表示可否を判定する。
【００３７】
表示可否判定部４による判定結果である表示可否の判定データ１３Ｂが「真」を示す値である場合、制御部１０Ｘは、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、表示部７に工具・素材情報を描画する。そして、加工シミュレーション表示装置１Ｘは、加工シミュレーションを続行し、工具・素材位置姿勢データ３２、工具・素材形状データ３３を更新する。
【００３８】
一方、表示可否の判定データ１３Ｂが「偽」を示す値である場合、制御部１０Ｘは、鏡姿勢変更部５に鏡姿勢の変更要求１４Ａを送る。これにより、鏡姿勢変更部５は、工具の鏡像を映すことができるような鏡の姿勢を計算する。
【００３９】
鏡姿勢変更部５は、現在の鏡位置で工具の鏡像を映す鏡姿勢を計算できた場合に、姿勢変更判定データ１５Ｂを「真」を示す値とする。一方、鏡姿勢変更部５は、現在の鏡位置では、工具の鏡像を映す鏡姿勢を計算できなかった場合に、姿勢変更判定データ１５Ｂを「偽」を示す値とする。
【００４０】
姿勢変更判定データ１５Ｂが「真」を示す値である場合、制御部１０Ｘは、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、表示部７に工具・素材情報を描画する。そして、加工シミュレーション表示装置１Ｘは、加工シミュレーションを続行し、工具・素材位置姿勢データ３２、工具・素材形状データ３３を更新する。
【００４１】
表示可否の判定データ１３Ｂが「偽」を示す値であり、その後の判定結果である姿勢変更判定データ１５Ｂも「偽」を示す値であれば、制御部１０Ｘは、鏡位置姿勢入力部２に鏡位置姿勢の入力要求１１Ａを送る。これにより、ユーザに鏡位置姿勢を変更させる。具体的には、制御部１０Ｘは、ユーザに鏡位置姿勢データ３１を入力させ、鏡位置姿勢データ３１を記憶部３Ｘに格納させる。この後、制御部１０Ｘは、表示可否判定部４に表示可否の判定要求１２Ａを送る処理まで戻り、上述した処理を繰り返す。
【００４２】
つぎに、加工シミュレーション表示装置１Ｘによる加工シミュレーションの表示処理手順について説明する。図３は、実施の形態１に係る加工シミュレーション表示装置による加工シミュレーションの表示処理手順を示すフローチャートである。
【００４３】
制御部１０Ｘは、加工シミュレーションの実行を制御するとともに、加工シミュレーションの進行に伴って変化する工具・素材位置姿勢データ３２、工具・素材形状データ３３を算出する。制御部１０Ｘは、加工シミュレーション中に算出した工具・素材位置姿勢データ３２、工具・素材形状データ３３を、加工シミュレーションの進行状況に対応付けして記憶部３Ｘに記憶させる。
【００４４】
また、加工シミュレーション表示装置１Ｘが加工シミュレーションを開始すると、制御部１０Ｘが、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、工具・素材位置姿勢データ３２、工具・素材形状データ３３を記憶部３Ｘから取得し、工具・素材位置姿勢データ３２、工具・素材形状データ３３を用いて、表示部７に工具・素材情報としての工具および素材を描画する（ステップＳ１０）。加工シミュレーションを開始する前は、素材が加工されていないので、初期状態の工具・素材情報が表示部７に描画される。
【００４５】
ついで、制御部１０Ｘは、鏡位置姿勢入力部２に鏡位置姿勢の入力要求１１Ａを送る。これにより、ユーザに鏡位置姿勢データ３１としての鏡位置姿勢を入力させる（ステップＳ２０）。ユーザによって鏡位置姿勢入力部２に入力された鏡位置姿勢データ３１は、鏡位置姿勢入力部２から記憶部３Ｘに送られる。
【００４６】
そして、制御部１０Ｘは、表示可否判定部４に表示可否の判定要求１２Ａを送る。これにより、表示可否判定部４は、記憶部３Ｘから、鏡位置姿勢データ３１、工具・素材位置姿勢データ３２、工具・素材形状データ３３を取得する。そして、表示可否判定部４は、鏡位置姿勢データ３１、工具・素材位置姿勢データ３２、工具・素材形状データ３３に基づいて、工具鏡像の表示可否（鏡が工具を映しているか否か）を判定する。換言すると、鏡が工具を映せる位置姿勢であるか否かが判定される（ステップＳ３０）。
【００４７】
表示可否判定部４が、鏡は工具を映せる位置姿勢でないと判定した場合（ステップＳ４０、Ｎｏ）、表示可否の判定データ１３Ｂとして「偽」を示す値が表示可否判定部４から制御部１０Ｘに送られる。そして、制御部１０Ｘは、鏡姿勢変更部５に鏡姿勢の変更要求１４Ａを送る。
【００４８】
これにより、鏡姿勢変更部５は、工具の鏡像を映すことができる鏡の姿勢を計算し、工具の鏡像を映すことができる姿勢に鏡の姿勢を変更する（ステップＳ５０）。このとき、鏡姿勢変更部５は、鏡の姿勢の変更に成功したか否かを判断する（ステップＳ６０）。
【００４９】
鏡姿勢変更部５は、現在の鏡位置で工具の鏡像を映す鏡姿勢を計算できた場合（鏡の姿勢の変更に成功した場合）に、姿勢変更判定データ１５Ｂを「真」を示す値とする。鏡姿勢変更部５は、現在の鏡位置で工具の鏡像を映す鏡姿勢を計算できなかった場合（鏡の姿勢の変更に失敗した場合）に、姿勢変更判定データ１５Ｂを「偽」を示す値とする。
【００５０】
鏡姿勢変更部５が鏡の姿勢の変更に失敗した場合（ステップＳ６０、Ｎｏ）、加工シミュレーション表示装置１Ｘは、ステップＳ２０の処理に戻り、ステップＳ２０〜Ｓ４０の処理を再度実行する。そして、表示可否判定部４が、鏡は工具を映せる位置姿勢でないと判定した場合には（ステップＳ４０、Ｎｏ）、ステップＳ５０，Ｓ６０の処理が実行される。
【００５１】
加工シミュレーション表示装置１Ｘは、鏡は工具を映せる位置姿勢でないと判定され（ステップＳ４０、Ｎｏ）、且つ鏡の姿勢の変更に失敗した場合（ステップＳ６０、Ｎｏ）、ステップＳ２０〜Ｓ６０の処理を繰り返す。
【００５２】
表示可否判定部４が、鏡は工具を映せる位置姿勢であると判定した場合（ステップＳ４０、Ｙｅｓ）、制御部１０Ｘは、この時の鏡の位置姿勢を、鏡位置姿勢データ３１として加工シミュレーションの進行状況と対応付けして記憶部３Ｘに記憶させる。また、表示可否の判定データ１３Ｂとして「真」を示す値が表示可否判定部４から制御部１０Ｘに送られる。そして、制御部１０Ｘは、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、表示部７に工具・素材情報として、工具・素材・鏡像を描画する（ステップＳ７０）。
【００５３】
また、鏡姿勢変更部５が鏡の姿勢の変更に成功した場合（ステップＳ６０、Ｙｅｓ）、制御部１０Ｘは、この時の鏡の位置姿勢を、鏡位置姿勢データ３１として加工シミュレーションの進行状況と対応付けして記憶部３Ｘに記憶させる。また、姿勢変更判定データ１５Ｂとして「真」を示す値が鏡姿勢変更部５から制御部１０Ｘに送られる。そして、制御部１０Ｘは、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、表示部７に工具・素材情報として、工具・素材・鏡像を描画する（ステップＳ７０）。
【００５４】
さらに、制御部１０Ｘは、加工シミュレーションで、工具移動を全て実行済みであるか否かを判定する（ステップＳ８０）。換言すると、制御部１０Ｘは、加工シミュレーションにおける素材の加工が完了したか否かを判定する。
【００５５】
加工シミュレーションでの工具移動が一部でも実行済みでなければ（ステップＳ８０、Ｎｏ）、制御部１０Ｘは、加工シミュレーションで、次の工具移動を実行する（ステップＳ９０）。このとき、制御部１０Ｘは、加工シミュレーションの進行に伴って変化する工具・素材位置姿勢データ３２、工具・素材形状データ３３を算出する。制御部１０Ｘは、加工シミュレーション中に算出した工具・素材位置姿勢データ３２、工具・素材形状データ３３を、加工シミュレーションの進行状況に対応付けして記憶部３Ｘに記憶させる。
【００５６】
そして、制御部１０Ｘは、表示可否判定部４に表示可否の判定要求１２Ａを送る。これにより、表示可否判定部４は、記憶部３Ｘから、鏡位置姿勢データ３１と、新たな工具・素材位置姿勢データ３２と、新たな工具・素材形状データ３３と、を取得する（ステップＳ１００）。この後、加工シミュレーション表示装置１Ｘは、加工シミュレーションでの工具移動を全て実行するまで、ステップＳ２０〜Ｓ１００の処理を繰り返す。
【００５７】
加工シミュレーションでの工具移動が全て実行済みであれば（ステップＳ８０、Ｙｅｓ）、加工シミュレーション表示装置１Ｘは、加工シミュレーションの表示処理を終了する。
【００５８】
つぎに、鏡の位置姿勢が工具を映すことのできる位置姿勢であるか否かの判定方法例について説明する。表示可否判定部４は、例えば、レイトレーシングによって、鏡に映る像を計算し、鏡で反射した光線が工具に当たるか否かを調べるといったような実際の描画処理に基づく方法で、鏡像が映っているかを判定する。
【００５９】
具体的には、表示可否判定部４は、レイトレーシングによって鏡に映る工具の鏡像を計算するとともに、当該計算の結果を用いて鏡で反射した光線が工具に当たるか否かを判定する。そして、表示可否判定部４は、光線が工具に当たるか否かの判定結果に基づいて、鏡が工具を映せる位置姿勢であるか否かを判定する。
【００６０】
また、表示可否判定の他の判定方法としては、例えば、無限平面を用いた判定方法がある。図４は、無限平面を用いた表示可否判定方法を説明するための図である。表示可否判定部４は、描画投影面を描画投影面５５とし、工具５０上の任意の点を点５１とした場合、鏡５２を含む無限平面５４上での点５１の反射点５３が鏡５２の中にあるか否かを判定する。
【００６１】
具体的には、表示可否判定部４は、点５１から鏡５２を含む無限平面５４に下ろした垂線の足を点５６とし、点５１と点５６と間の距離Ｌ１を、点５１と無限平面５４との間の距離から求める。このとき、表示可否判定部４は、描画投影面５５の法線（描画投影面５５の主面に垂直な線）と鏡５２の法線（鏡５２の主面に垂直な線）とのなす角度をθとし、点５６と反射点５３と間の距離Ｌ２を、距離Ｌ２＝距離Ｌ１×ｔａｎθを用いて算出する。そして、表示可否判定部４は、距離Ｌ２に基づいて反射点５３の座標を算出し、反射点５３の座標と、鏡５２の領域と、に基づいて、反射点５３が鏡５２の中にあるか否かを判定する。これにより、簡易な判定方法で、鏡５２の位置姿勢が工具５０を映すことのできる位置姿勢であるか否かを判定することが可能となる。
【００６２】
なお、工具鏡像の表示可否をさらに正確に判定するために、表示可否判定部４は、点５１が鏡５２を挟んで描画投影面５５の反対側にないかを確認してもよい。また、表示可否判定部４は、点５１と反射点５３との間に素材が存在しないかを確認してもよい。また、表示可否判定部４は、点５１を工具５０中で移動させることにより、工具５０内の種々の位置に対して工具鏡像の表示可否を判定してもよい。
【００６３】
つぎに、鏡５２の姿勢の計算方法例について説明する。図５は、鏡の姿勢の計算方法を説明するための図である。鏡姿勢変更部５は、例えば、鏡５２上の位置である鏡位置６１から工具５０上の任意の点５１へ向かうベクトル６２の単位ベクトル６３と、鏡位置６１から描画投影面５５に垂直に下ろしたベクトル６４の単位ベクトル６５との合成ベクトル６６を算出する。合成ベクトル６６が鏡５２の法線であり、このような法線を有した姿勢が鏡５２の姿勢となる。これより、工具５０の鏡像を表示できるような鏡５２の姿勢を容易かつ正確に計算することが可能となる。
【００６４】
ここで、上述した鏡５２の姿勢を計算できない場合（鏡５２の姿勢の変更に失敗した場合）とは、描画投影面５５の法線と、計算した鏡５２の法線とがなす角度が９０度以上となる場合のことである。この場合、工具５０と描画投影面５５との間に鏡５２が位置しているので、鏡５２の姿勢変更のみでは工具５０を鏡５２に映せない。
【００６５】
なお、鏡５２の姿勢変更に失敗した場合については、工具５０が加工に影響を与えないとみなして、ユーザに鏡５２の位置姿勢を修正させる処理を省略してもよい。この場合、制御部１０Ｘは、レンダリング部６にレンダリング要求１６Ａを送り、レンダリング部６に工具・素材情報の描画処理を行わせてもよい。
【００６６】
また、工具鏡像を表示できない場合とは、描画投影面５５側から見て工具５０が鏡５２の反対側（裏面側）に位置する場合である。例えば、素材の奥側に鏡５２を配置しておけば、工具５０が素材を切削する可能性がある位置にあるかぎり、工具５０が鏡５２よりも奥側に位置することはない。工具５０が鏡５２の奥側に位置する場合には、工具５０の交換などによって工具５０が素材から離れた位置を移動しており、加工に影響を与えない。このため、鏡５２の配置を工夫しておけば、鏡５２の姿勢変更に失敗した場合であっても、工具５０を表示する必要がないとみなすことができる。
【００６７】
また、鏡５２の位置姿勢を変更する際には、ユーザに鏡５２の位置姿勢を修正（再入力）させることなく、鏡姿勢変更部５が、予め定めた方法に従って鏡５２の位置姿勢を変更してもよい。この場合、鏡姿勢変更部５は、鏡５２の位置姿勢を変更する際に、描画投影面５５から見て鏡５２を画面奥側へずらしてもよいし、鏡５２を画面水平方向にずらしてもよい。また、鏡姿勢変更部５は、工具５０の移動ベクトル分だけ鏡５２をずらしてもよい。
【００６８】
また、本実施の形態では、鏡５２の姿勢の変化だけでは工具５０の鏡像を映せない場合に、ユーザに鏡５２の位置姿勢を入力させる場合について説明したが、ユーザに鏡５２の位置を入力させ、鏡５２の姿勢の入力を省略してもよい。
【００６９】
このように、実施の形態１によれば、工具５０の鏡像を映せない場合には、工具５０の鏡像を映せるように鏡５２の姿勢を変更し、姿勢の変化のみでは鏡像を映せない場合に、ユーザに鏡５２の位置姿勢を再入力させるので、工具５０の鏡像を常に表示することが可能となる。したがって、加工シミュレーションの実行中に時々刻々と位置が変化する工具５０および素材の切削箇所を、素材の陰となる部分においても、容易に表示し続けることが可能になる。
【００７０】
また、レイトレーシングを用いて工具鏡像の表示可否を判定するので、正確に工具鏡像の表示可否を判定することが可能となる。また、鏡位置姿勢データ３１、工具・素材位置姿勢データ３２、工具・素材形状データ３３を用いて、工具鏡像の表示可否を判定するので、正確に工具鏡像の表示可否を判定することが可能となる。
【００７１】
また、工具・素材位置姿勢データ３２、工具・素材形状データ３３を用いて、鏡５２の姿勢を変更するので、工具５０の鏡像を映すことができる鏡５２の姿勢を容易に計算することが可能となる。
【００７２】
実施の形態２．
つぎに、図６〜図９を用いてこの発明の実施の形態２について説明する。実施の形態２では、工具５０の鏡像を映せない場合には、工具５０の鏡像を映せるよう、ユーザから与えられた直線上で鏡５２の位置を変化させる。
【００７３】
図６は、実施の形態２に係る加工シミュレーション表示装置の構成を示すブロック図である。図６の各構成要素のうち図１に示す実施の形態１の加工シミュレーション表示装置１Ｘと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００７４】
加工シミュレーション表示装置１Ｙは、鏡位置拘束指示入力部２２と、記憶部３Ｙと、表示可否判定部４と、鏡位置姿勢変更部２５と、レンダリング部６と、表示部７と、制御部１０Ｙとを備えている。
【００７５】
制御部１０Ｙは、加工シミュレーションの実行を制御する機能を有するとともに、鏡位置拘束指示入力部２２、記憶部３Ｙ、表示可否判定部４、鏡位置姿勢変更部２５、レンダリング部６および表示部７を制御する。制御部１０Ｙが制御する加工シミュレーションは、工具５０による素材加工のシミュレーションである。
【００７６】
鏡位置拘束指示入力部２２は、鏡５２の位置を拘束する直線データ（後述する鏡位置拘束指示２０Ｂ）を入力し、記憶部３Ｙに送る。鏡位置拘束指示２０Ｂは、鏡５２が移動可能な直線であり、鏡位置拘束指示２０Ｂに従って鏡５２が移動させられる。
【００７７】
鏡位置拘束指示入力部２２へは、ユーザから必要に応じて鏡位置拘束指示２０Ｂが入力される。具体的には、制御部１０Ｘから鏡位置拘束指示入力部２２に、後述する「直線入力要求１９Ａ」が送られると、鏡位置拘束指示入力部２２は、ユーザが鏡位置拘束指示入力部２２に入力した鏡位置拘束指示２０Ｂを鏡位置姿勢変更部２５に送る。換言すると、直線入力要求１９Ａが要求有りを示す値の場合に、鏡位置拘束指示入力部２２は、鏡位置拘束指示２０Ｂを鏡位置姿勢変更部２５に送る。直線入力要求１９Ａは、鏡位置拘束指示（鏡位置を拘束する直線データ）の入力を要求しているか否かを示す情報である。
【００７８】
なお、ユーザによる鏡位置拘束指示２０Ｂの入力としては、キーボードを利用して直線データの数値を入力させてもよいし、マウスなどのポインティングデバイスを利用して直線データの始点終点を指定させてもよい。
【００７９】
記憶部３Ｙは、鏡位置姿勢データ３１、工具・素材形状データ３３や、後述する、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２などを記憶するメモリなどである。素材位置姿勢データ４１は、素材の位置姿勢を示すデータである。また、工具移動前後の位置姿勢データ４２は、移動前および移動後の工具５０の位置姿勢を示すデータである。
【００８０】
鏡位置姿勢変更部２５は、制御部１０Ｙから後述する「鏡位置姿勢の変更要求１７Ａ」が送られてくると、工具５０の鏡像を映すことができる鏡５２の位置姿勢を計算する。換言すると、鏡位置姿勢の変更要求１７Ａが要求有りを示す値の場合に、鏡位置姿勢変更部２５は、工具５０を映すことができる鏡５２の位置姿勢を計算する。鏡位置姿勢の変更要求１７Ａは、鏡の位置姿勢を変更するよう要求しているか否かを示す情報である。
【００８１】
このように、鏡位置姿勢データ３１、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３は、加工シミュレーションの進行状況と対応付けされて記憶部３Ｙ内に格納される。
【００８２】
鏡位置姿勢変更部２５は、鏡位置拘束指示２０Ｂ、鏡位置姿勢データ３１、工具・素材形状データ３３、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２に基づいて、工具５０を映すことができる鏡５２の位置姿勢を計算する。
【００８３】
なお、鏡位置姿勢変更部２５は、鏡位置拘束指示２０Ｂおよび工具移動前後の位置姿勢データ４２に基づいて、工具５０を映すことができる鏡５２の位置姿勢を計算してもよい。また、鏡位置姿勢変更部２５は、移動後の工具５０を映すことができる鏡５２の位置姿勢を計算し、移動前の位置姿勢の計算を省略してもよい。
【００８４】
鏡位置姿勢変更部２５は、移動後の工具５０を映すことができる鏡５２の位置姿勢を計算する場合、工具移動前後の位置姿勢データ４２のうちの工具移動後の位置姿勢と、鏡位置拘束指示２０Ｂと、に基づいて、移動後の工具５０を映すことができる鏡５２の位置姿勢を計算してもよい。なお、以下では、鏡位置姿勢変更部２５が、移動後の工具５０を映すことができる鏡５２の位置姿勢を計算する場合について説明する。
【００８５】
鏡位置姿勢変更部２５は、現在の拘束条件（鏡位置拘束指示２０Ｂ）で、工具５０を映すことができる鏡５２の位置姿勢を計算できたか否かの判定結果（鏡５２の位置姿勢変更に成功したかの判定結果）を、後述する「位置姿勢変更判定データ１８Ｂ」として制御部１０Ｙに送る。鏡位置姿勢変更部２５は、例えば、現在の拘束条件で、移動後の工具５０を映すことができる鏡５２の位置姿勢を計算できたか否かの判定結果を制御部１０Ｙに送る。
【００８６】
鏡位置姿勢変更部２５は、現在の拘束条件では、移動後の工具５０を映すことができるような鏡５２の位置姿勢を計算できない場合に、位置姿勢変更判定データ１８Ｂの値を「偽」を示す値とする。一方、鏡位置姿勢変更部２５は、現在の拘束条件で、移動後の工具５０を映すことができるような鏡５２の位置姿勢を計算できた場合に、位置姿勢変更判定データ１８Ｂを「真」を示す値とする。鏡位置姿勢変更部２５は、計算した鏡５２の位置姿勢を加工シミュレーションの進行状況に対応付けして記憶部３Ｙに送る。これにより、鏡５２の位置姿勢が加工シミュレーションの進行状況に対応付けされて鏡位置姿勢データ３１として記憶部３Ｙ内に格納される。
【００８７】
レンダリング部６は、制御部１０Ｙからレンダリング要求１６Ａが送られてくると、工具・素材情報を表示部７に描画する。レンダリング部６は、鏡位置姿勢データ３１、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を用いて、工具・素材情報を表示部７に描画する。なお、表示部７と加工シミュレーション表示装置１Ｙとを別構成としてもよい。
【００８８】
表示可否判定部４は、制御部１０Ｙから表示可否の判定要求１２Ａが送られてくると、鏡５２が移動後の工具５０を写すことのできる位置姿勢であるか否か（移動後工具鏡像の表示可否）を判定する。本実施の形態の表示可否判定部４は、鏡位置姿勢データ３１、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を用いて、移動後工具鏡像の表示可否を判定する。
【００８９】
なお、表示可否判定部４は、鏡位置姿勢データ３１と、工具移動前後の位置姿勢データ４２のうちの工具移動後の位置姿勢と、を用いて、移動後工具鏡像の表示可否を判定してもよい。換言すると、表示可否判定部４は、移動後工具鏡像の表示可否を判定する際に、工具移動前後の位置姿勢データ４２のうちの工具移動前の位置姿勢、素材位置姿勢データ４１、および工具・素材形状データ３３の少なくとも１つを用いてもよいし、用いなくてもよい。
【００９０】
表示可否判定部４は、表示可否の判定結果を表示可否の判定データ１３Ｂとして制御部１０Ｙに送る。本実施の形態における表示可否の判定データ１３Ｂは、移動後工具鏡像を表示できるか否かの判定結果を示す情報である。
【００９１】
表示可否判定部４は、鏡５２の位置姿勢は移動後の工具５０を映すことのできる位置姿勢であると判定した場合に、表示可否の判定データ１３Ｂを「真」を示す値とする。一方、表示可否判定部４は、鏡５２の位置姿勢は移動後の工具５０を映すことのできない位置姿勢であると判定した場合に、表示可否の判定データ１３Ｂを「偽」を示す値とする。
【００９２】
図７は、実施の形態２に係る加工シミュレーション表示装置内のデータの入出力を説明するための図である。工具５０による素材加工の加工シミュレーションを行う際には、制御部１０Ｙが、表示可否判定部４に表示可否の判定要求１２Ａを送る。これにより、表示可否判定部４は、工具鏡像の表示可否を判定する。
【００９３】
表示可否判定部４による判定結果である表示可否の判定データ１３Ｂが「真」を示す値である場合、制御部１０Ｙは、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、表示部７に工具・素材情報を描画する。そして、加工シミュレーション表示装置１Ｙは、加工シミュレーションを続行し、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を更新する。
【００９４】
一方、表示可否の判定データ１３Ｂが「偽」を示す値である場合、制御部１０Ｙは、鏡位置姿勢変更部２５に鏡位置姿勢の変更要求１７Ａを送る。これにより、鏡位置姿勢変更部２５は、工具５０の鏡像を映すことができる鏡５２の位置姿勢を計算する。
【００９５】
鏡位置姿勢変更部２５は、現在の鏡位置姿勢で、工具５０の鏡像を映す鏡位置姿勢を計算できた場合に、位置姿勢変更判定データ１８Ｂを「真」を示す値とする。位置姿勢変更判定データ１８Ｂが「真」を示す値である場合、制御部１０Ｙは、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、表示部７に工具・素材情報を描画する。そして、加工シミュレーション表示装置１Ｙは、加工シミュレーションを続行し、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を更新する。
【００９６】
表示可否の判定データ１３Ｂが「偽」を示す値であり、その後の判定結果である位置姿勢変更判定データ１８Ｂも「偽」を示す値であれば、制御部１０Ｙは、鏡位置拘束指示入力部２２に直線入力要求１９Ａを送る。これにより、鏡５２が移動可能な直線をユーザに変更させる。具体的には、ユーザに鏡位置拘束指示２０Ｂを入力させる。そして、鏡位置拘束指示２０Ｂが鏡位置姿勢変更部２５に送られる。
【００９７】
鏡位置姿勢変更部２５は、例えば、鏡位置拘束指示２０Ｂおよび工具移動前後の位置姿勢データ４２に基づいて、移動後の工具５０を映すことができるような鏡５２の位置姿勢を計算する。そして、鏡位置姿勢変更部２５は、移動後の工具５０を映すことができるような鏡５２の位置姿勢を計算できた場合には位置姿勢変更判定データ１８Ｂを「真」を示す値とする。また、鏡位置姿勢変更部２５は、計算結果（鏡５２の位置姿勢）を鏡位置姿勢データ３１として記憶部３Ｙに格納する。
【００９８】
この後、表示可否の判定データ１３Ｂおよび位置姿勢変更判定データ１８Ｂの何れか一方が「真」を示す値となるまで、加工シミュレーション表示装置１Ｙは、鏡５２が移動可能な直線をユーザに変更させる処理と、鏡位置拘束指示２０Ｂおよび工具移動前後の位置姿勢データ４２に基づいて移動後の工具５０を映すことができるような鏡５２の位置姿勢を計算する処理と、を繰り返す。
【００９９】
つぎに、加工シミュレーション表示装置１Ｙによる加工シミュレーションの表示処理手順について説明する。図８は、実施の形態２に係る加工シミュレーション表示装置による加工シミュレーションの表示処理手順を示すフローチャートである。なお、図３で説明した実施の形態１に係る加工シミュレーションの表示処理手順と同様の処理手順については、その説明を省略する。
【０１００】
制御部１０Ｙは、加工シミュレーションの実行を制御するとともに、加工シミュレーションの進行に伴って変化する素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を算出する。制御部１０Ｙは、加工シミュレーション中に算出した素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を、加工シミュレーションの進行状況に対応付けして記憶部３Ｙに記憶させる。
【０１０１】
また、加工シミュレーション表示装置１Ｙが加工シミュレーションを開始すると、制御部１０Ｙが、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を記憶部３Ｙから取得し、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を用いて、表示部７に工具・素材情報としての工具および素材を描画する（ステップＳ１１０）。加工シミュレーションを開始する前は、素材が加工されていないので、初期状態の工具・素材情報が表示部７に描画される。
【０１０２】
ついで、制御部１０Ｙは、鏡位置拘束指示入力部２２に直線入力要求１９Ａを送る。これにより、ユーザに鏡位置拘束指示２０Ｂを入力させる（ステップＳ１２０）。ユーザによって鏡位置拘束指示入力部２２に入力された鏡位置拘束指示２０Ｂは、鏡位置拘束指示入力部２２から鏡位置姿勢変更部２５に送られる。
【０１０３】
鏡位置姿勢変更部２５は、与えられた拘束条件下での鏡位置姿勢を計算する（ステップＳ１３０）。換言すると、鏡位置姿勢変更部２５は、鏡位置拘束指示２０Ｂおよび工具移動前後の位置姿勢データ４２に基づいて、移動後の工具５０を映すことができるような鏡５２の位置姿勢を計算する。具体的には、鏡位置姿勢変更部２５は、鏡位置拘束指示２０Ｂで指定された直線上で鏡５２を移動させるとともに鏡５２の姿勢を変化させることにより、鏡位置姿勢変更部２５は、移動後の工具５０を映すことができるような鏡５２の位置姿勢を計算する。これにより、工具５０の鏡像を映すことができる位置姿勢に鏡５２の位置姿勢を変更する。このとき、鏡位置姿勢変更部２５は、鏡５２の位置姿勢の変更に成功したか否かを判断する（ステップＳ１４０）。
【０１０４】
鏡位置姿勢変更部２５は、現在の鏡５２の位置姿勢で、工具５０の鏡像を映す鏡位置姿勢を計算できた場合（鏡５２の位置姿勢の変更に成功した場合）に、位置姿勢変更判定データ１８Ｂを「真」を示す値とする。鏡位置姿勢変更部２５は、現在の鏡５２の位置姿勢で、工具５０の鏡像を映す鏡位置姿勢を計算できなかった場合（鏡５２の位置姿勢の変更に失敗した場合）に、位置姿勢変更判定データ１８Ｂを「偽」を示す値とする。
【０１０５】
鏡位置姿勢変更部２５が鏡５２の位置姿勢の変更に失敗した場合（ステップＳ１４０、Ｎｏ）、加工シミュレーション表示装置１Ｙは、ステップＳ１２０の処理に戻り、ステップＳ１２０〜Ｓ１４０の処理を再度実行する。加工シミュレーション表示装置１Ｙは、鏡５２は工具５０を映せる位置姿勢であると判定されるまで、ステップＳ１２０〜Ｓ１４０の処理を繰り返す。
【０１０６】
鏡位置姿勢変更部２５が鏡５２の位置姿勢の変更に成功した場合（ステップＳ１４０、Ｙｅｓ）、位置姿勢変更判定データ１８Ｂとして「真」を示す値が鏡位置姿勢変更部２５から制御部１０Ｙに送られる。また、鏡位置姿勢変更部２５は、変更に成功した鏡５２の位置姿勢を加工シミュレーションの進行状況と対応付けして記憶部３Ｙに記憶させる。そして、制御部１０Ｙは、レンダリング部６にレンダリング要求１６Ａを送る。これにより、レンダリング部６は、表示部７に工具・素材情報を描画する（ステップＳ１５０）。
【０１０７】
さらに、制御部１０Ｙは、加工シミュレーションで、工具移動を全て実行済みであるか否かを判定する（ステップＳ１６０）。換言すると、制御部１０Ｙは、加工シミュレーションにおける素材の加工が完了したか否かを判定する。
【０１０８】
加工シミュレーションでの工具移動が一部でも実行済みでなければ（ステップＳ１６０、Ｎｏ）、制御部１０Ｙは、加工シミュレーションで、次の工具移動を実行する（ステップＳ１７０）。このとき、制御部１０Ｙは、加工シミュレーションの進行に伴って変化する素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を算出する。制御部１０Ｙは、加工シミュレーション中に算出した素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を、加工シミュレーションの進行状況に対応付けして記憶部３Ｙに記憶させる。
【０１０９】
そして、制御部１０Ｙは、表示可否判定部４に表示可否の判定要求１２Ａを送る。これにより、表示可否判定部４は、記憶部３Ｙから、素材位置姿勢データ４１、工具移動前後の位置姿勢データ４２、工具・素材形状データ３３を取得する（ステップＳ１８０）。そして、表示可否判定部４は、素材位置姿勢データ４１と、工具移動前後の位置姿勢データ４２と、工具・素材形状データ３３と、取得済みの鏡位置姿勢データ３１と、に基づいて、鏡５２が移動後の工具５０を映しているか否かを判定する（ステップＳ１９０）。
【０１１０】
表示可否判定部４が、鏡５２は移動後の工具５０を映せる位置姿勢でないと判定した場合（ステップＳ２００、Ｎｏ）、加工シミュレーション表示装置１Ｙは、ステップＳ１３０の処理に戻る。
【０１１１】
一方、表示可否判定部４が、鏡５２は移動後の工具５０を映せる位置姿勢であると判定した場合（ステップＳ２００、Ｙｅｓ）、加工シミュレーション表示装置１Ｙは、ステップＳ１５０の処理に戻る。
【０１１２】
加工シミュレーション表示装置１Ｙは、加工シミュレーションでの工具移動を全て実行するまで、ステップＳ１３０〜Ｓ２００の処理またはステップＳ１５０〜Ｓ２００の処理を繰り返す。そして、ステップＳ１３０〜Ｓ２００の処理において、鏡５２の位置姿勢の変更に失敗した場合（ステップＳ１４０、Ｎｏ）、加工シミュレーション表示装置１Ｙは、鏡５２は移動後の工具５０を映せる位置姿勢であると判定されるまで、ステップＳ１２０〜Ｓ１４０の処理を繰り返す。
【０１１３】
加工シミュレーションでの工具移動が全て実行済みであれば（ステップＳ１６０、Ｙｅｓ）、加工シミュレーション表示装置１Ｙは、加工シミュレーションの表示処理を終了する。
【０１１４】
つぎに、鏡５２の位置姿勢の計算方法例について説明する。図９は、鏡の位置姿勢の計算方法を説明するための図である。鏡位置姿勢変更部２５は、例えば、移動前の工具位置７１と移動後の工具位置７２とを結ぶ直線７３に垂直に交わりかつ移動後の工具位置７２を通る平面である平面７４と、鏡５２の位置を拘束する直線７５と、の交点を新たな鏡位置８１とする。
【０１１５】
また、鏡姿勢変更部５は、実施の形態１の場合と同様に、例えば、鏡位置８１から移動後の工具位置５２へ向かう単位ベクトルと、鏡位置８１から描画投影面５５に垂直に下ろしたベクトルの単位ベクトルと、の合成ベクトルを算出する。この合成ベクトルが鏡５２の法線であり、このような法線を有した姿勢が鏡５２の姿勢となる。これより、工具５０の鏡像を表示できるような鏡５２の位置姿勢を容易かつ正確に計算することが可能となる。
【０１１６】
ここで、上述した鏡５２の位置姿勢を計算できない場合（鏡５２の位置姿勢の変更に失敗した場合）としては、例えば、移動前の工具位置７１と移動後の工具位置７２とを結ぶ直線７３に垂直な平面７４と、鏡５２の位置を拘束する直線７５とが平行なために、交点を計算できない場合などがある。また、実施の形態１で鏡姿勢が求められなかった場合と同様に、工具５０が鏡５２よりも奥側に位置する場合も、鏡５２の位置姿勢を計算できない。
【０１１７】
なお、鏡５２の位置を拘束する条件として、直線の代わりに、複数の線分や曲線を用いてもよい。これにより、ユーザに拘束条件を変更させる処理を省略することが可能となる。例えば、鏡５２の位置を拘束する複数の線分を水平面内で素材を囲うようなコの字型に配置すればよい。例えば、３本の線分をコの字型に配置する場合、描画投影面５５に対して略垂直方向を向き且つ素材を挟むよう２本の線分を対向させて配置するとともに、描画投影面５５から見て素材よりも奥側に１本の線分を配置する。
【０１１８】
これにより、工具５０が水平方向に移動する限り、移動前後の工具５０を結ぶ直線（ベクトル）７３に垂直な平面７４と、コの字型に配置された何れかの線分とが交差する可能性が高くなる。
【０１１９】
平面７４が何れの線分とも交差しないのは、工具５０がコの字型で囲まれた領域の外側にあり、何れの線分からも離れている場合である。この場合、工具５０は素材からも離れており加工に影響を与えないので、表示する必要がないとみなせる。
【０１２０】
さらに、コの字型の線分のうち描画投影面５５から見て最も奥の線分を、描画投影面５５に平行な円弧状曲線や描画投影面５５に平行なコの字型の線分に置き換えれば、垂直方向の線分も配置できる。したがって、工具５０が垂直に動く場合であっても、平面７４が何れかの線分と交差する可能性が高くなる。
【０１２１】
なお、上述したように線分を配置した場合であっても、平面７４が何れの線分とも交差しない場合はある。このような場合は、工具５０が線分で囲まれている領域の外側にあって線分から離れている場合であるので、素材からも遠く離れている。そして、工具５０が素材から遠く離れている場合には、工具５０は加工に影響を与えないので、表示する必要はないとみなせる。工具５０の位置は計算できても、工具５０の姿勢を計算できない場合はあるが、この場合についても、実施の形態１で述べたように、工具５０が鏡５２の向こう側（奥側）に位置している場合なので、工具５０は線分に囲まれた領域の外側にあり、素材から離れている。そして、工具５０が素材から離れている場合には、工具５０は加工に影響を与えないので、表示する必要はないとみなせる。
【０１２２】
このように、実施の形態２によれば、工具５０の鏡像を映せない場合には、工具５０の鏡像を映せるようにユーザから与えられた直線上で鏡５２の位置を変化させるので、実施の形態１と同様に工具５０の鏡像を常に表示することが可能である。
【０１２３】
また、移動前後の工具位置７１，７２間を結ぶベクトル７３に垂直な平面７４上に鏡位置８１があるので、工具５０が移動前後で切削した箇所を描画投影面５５に映すことが可能となる。
【産業上の利用可能性】
【０１２４】
以上のように、本発明に係る加工シミュレーション表示装置は、コンピュータグラフィクスを用いた加工シミュレーションの表示に適している。
【符号の説明】
【０１２５】
１Ｘ，１Ｙ  加工シミュレーション表示装置
２  鏡位置姿勢入力部
３Ｘ，３Ｙ  記憶部
４  表示可否判定部
５  鏡姿勢変更部
６  レンダリング部
７  表示部
１０Ｘ，１０Ｙ  制御部
２２  鏡位置拘束指示入力部
２５  鏡位置姿勢変更部
５０  工具
５２  鏡
５５  描画投影面
７３  直線
【図１】
2014016667.tif 000003
【図２】
2014016667.tif 000004
【図３】
2014016667.tif 000005
【図４】
2014016667.tif 000006
【図５】
2014016667.tif 000007
【図６】
2014016667.tif 000008
【図７】
2014016667.tif 000009
【図８】
2014016667.tif 000010
【図９】
2014016667.tif 000011