[第1の実施の形態]
以下、図面を参照して、本発明にかかる第1の実施の形態について詳細に説明する。図1は、本実施の形態にかかる非接触測定機用プログラムの生成装置を適用した3次元測定システムの構成を示す模式図である。
本実施の形態にかかる3次元測定システム1は、被測定物を測定する非接触測定機2と、被測定物を設計する3次元CAD装置3と、非接触測定機用プログラムの生成装置(以下、プログラム生成装置という)4とから構成される。
図2は、非接触測定機の構成を示すブロック図である。非接触測定機2は、公知の非接触測定機から構成され、レーザ等の光ビームを照射するとともにその反射光を受光するセンサ21と、このセンサ21が一端に取り付けられ姿勢によって光ビームの照射方向を変化させるプローブヘッド22と、このプローブヘッド22の他端を支持しプローブヘッド22を3次元的に移動させるアーム(図示せず)等の移動機構の位置およびプローブヘッド22の姿勢をプログラム生成装置4により生成された測定プログラムに基づいて制御する制御部23と、センサ21から照射された光ビームの反射光から被測定物の表面形状を演算する演算部24と、プログラム生成装置4により生成された測定プログラム、測定した被測定物の形状に関するデータ、非接触測定機2を動作させるためのプログラム等を記憶する記憶部25とを有する。この記憶部25には、非接触測定機2の外形に関する測定機データ26、センサ21から出力される光ビームの光源の種類、光ビームの測定範囲等のセンサ21に関するセンサデータ27、後述するプローブヘッド22の各回動軸に関するプローブヘッドデータ28も記憶されている。
このような非接触測定機2は、CPU等の演算装置、メモリ、HDD等の記憶装置、ネットワークを介してプログラム生成装置4と各種情報の送受を行うI/F装置、キーボード、マウス等の入力装置、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、FED(Field Emission Display)または有機EL(Electro Luminescence)等の表示装置などを備えたコンピュータと、このコンピュータにインストールされたプログラムとを有しており、上記ハードウェア装置がプログラムによって制御されることによって、すなわちハードウェア資源とソフトウェアが協働することによって非接触測定機2の制御部23、演算部24および記憶部25を実現する。
図3は、光ビームの照射範囲を説明する図である。センサ21には、光ビームの光軸および光ビームの幅に対して垂直な方向から見ると、測定領域が、図3(a)に示す三角形のタイプと、図3(b)に示す矩形のタイプがある。この測定領域とは、光軸方向に所定の範囲を有する光ビームの焦点範囲と、光ビームの幅とに挟まれた領域(図3(a),(b)の斜線の領域)のことを意味する。センサ21と被測定物を正確に測定するためには、センサ21は、光ビームを測定領域内で被測定物に照射する必要がある。このため制御部23は、測定プログラムに基づいて、光ビームの測定領域内に被測定物の測定面が位置するようプローブヘッド22と非測定物との距離を制御する。なお、センサ21から出力される光ビームの光源の種類、光ビームの測定領域等のセンサ21に関するデータは、上述したセンサデータ27として記憶部25にプログラム生成装置4に出力可能な形態で記憶されている。
図4は、計測許容角度を説明する図である。上述したような非接触測定機2では、被測定物を正確に測定するためには、被測定物の測定面に対して垂直な軸と、光ビームの照射方向の軸とが作る角度(以下、計測許容角度という)が、所定範囲内になければならない。具体的には、図4に示すように、被測定物の測定面に垂直な軸nと、センサ21の光ビームの光軸21aとが作る計測許容角度αは、例えば○○度などの所定範囲内になければならない。このため、制御部23は、測定プログラムに基づいて、プローブヘッド22の姿勢を制御することにより、センサ21から出力される光ビームを被測定物の測定面に対して所定の範囲内の角度で照射する。
図5は、プローブヘッドの構成を示す模式図である。図5(a)に示すプローブヘッド22は、2軸回動式プローブヘッドである。このプローブヘッド22には、アーム側の端部の軸線方向に沿ったロール角回動軸と、このロール角回動軸に直交する方向に沿ったピッチ角回動軸とが設けられており、これらはそれぞれ図示しないモータにより制御部23の指示に基づいて回動する。これにより、プローブヘッド22の一端に指示されたセンサ21から出力される光ビームを、測定面に対して所定の角度で照射することが可能となる。
図5(b),(c)に示すプローブヘッド22は、3軸回動式プローブヘッドである。このプローブヘッド22には、アーム側の端部の軸線方向に沿ったロール角回動軸と、このロール角回動軸に直交するピッチ角回動軸と、このピッチ角回動軸に直交するヨー角回動軸とが設けられており、これらはそれぞれ図示しないモータにより制御部23の指示に基づいて回動する。これにより、センサ21から出力される光ビームを、測定面に対して所定の角度で照射することが可能となる。
このようなプローブヘッド22の各回動軸に関するデータは、上述したようにプローブヘッドデータ28として記憶部25にプログラム生成装置4に出力可能な形態で記憶されている。
図6は、センサ21による光ビームの照射動作を説明する図である。非接触測定機2において、測定領域をより広くして効率的に測定を行うためには、センサ21の光ビームの走査方向と、光ビームの幅方向とが直交するのが望ましい。例えば、図6に示すように、制御ポイントP1から制御ポイントP2まで光ビームを照射する場合、図6(a)のようにセンサ21の走査方向に対して光ビームの幅方向が直交すると、最も広い範囲で被測定物の測定を行うことができる。一方、センサ21の走査方向に対して光ビームの幅方向が直交しないと、図6(b)に示すように、被測定物の測定領域が狭くなる。このため、非接触測定機2は、測定プログラムに基づいて、センサ21の光ビームの幅方向がセンサ21の走査方向に対して直交するように、プローブヘッド22の各回動軸およびプローブヘッド22の進行方向を制御する。
3次元CAD装置3は、公知の3次元CAD装置から構成され、被測定物の3次元形状を示す設計データ(以下、被測定物データという)を生成する。また、3次元CAD装置3は、被測定物データから被測定物の3次元空間上における座標のデータ(以下、点座標データという)、その座標における法線ベクトルのデータ(以下、法線ベクトルデータ)を生成する。これらの3次元CAD装置3によって生成されたデータは、それぞれ被測定物データ31、点座標データ32および法線ベクトルデータ33としてプログラム生成装置4に出力可能な形態で3次元CAD装置3に記憶される。
このような3次元CAD装置3は、CPU等の演算装置、メモリ、HDD等の記憶装置、ネットワークを介してプログラム生成装置4と各種情報の送受を行うI/F装置、キーボード、マウス等の入力装置、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、FED(Field Emission Display)または有機EL(Electro Luminescence)等の表示装置などを備えたコンピュータと、このコンピュータにインストールされたプログラムとを有しており、上記ハードウェア装置がプログラムによって制御されることによって、すなわちハードウェア資源とソフトウェアが協働することによって3次元CAD装置3の各機能部を実現する。
プログラム生成装置4は、非接触測定機2および3次元CAD装置3から各種データを受信し、非接触測定機2の測定プログラムを生成する。このようなプログラム生成装置4の構成について図7を参照して説明する。図7は、本実施の形態にかかるプログラム生成装置4の構成を示すブロック図である。
プログラム生成装置4は、データ記憶部41と、仮想空間生成部42と、制御ポイント生成部43と、プローブヘッド姿勢リスト生成部44と、プローブヘッド姿勢リスト45と、プローブヘッド選択部46と、測定パス生成部47と、動作確認部48と、測定パスDB49と、対称プログラム生成部50と、測定プログラム生成部51と、測定プログラムDB52とから構成される。
データ記憶部41は、非接触測定機2から測定機データ26、センサデータ27、プローブヘッドデータ28を、3次元CAD装置3から被測定物データ31、点座標データ32、法線ベクトルデータ33等を受信し、記憶する。
仮想空間生成部42は、データ記憶部41から測定機データ26、センサデータ27およびプローブヘッドデータ28および被測定物データ31を取得し、これらのデータに基づいて3次元の仮想空間内に被測定物および非接触測定機2が実際に測定を行う際と同様に配置された状態を構築する。本実施の形態においては、このような仮想的な状態を表示装置に出力することにより、ユーザは、任意の視点方向から非接触測定機2と被測定物との位置関係を確認することができる。なお、仮想空間データには、絶対的なX、Y、Z座標が設定される。
図8は、制御ポイント生成部43の構成を示すブロック図である。本実施の形態における制御ポイント生成部43は、法線ベクトル生成部61と、制御ポイント作成部62と、制御ポイント設定部63とを有する。法線ベクトル生成部61は、点座標データ32に含まれる被測定物表面の各点座標における法線方向のベクトルを生成する。制御ポイント作成部62は、点座標データ32に含まれる被測定物の各点座標を制御ポイントとして設定する。この制御ポイントには、法線ベクトルに関する情報も含まれる。制御ポイント設定部63は、制御ポイント作成部62により生成された制御ポイントのうち、プローブヘッド22が同じ姿勢で測定可能な制御ポイントを統合する。ここで、制御ポイントとは、センサ21の進行方向やプローブヘッド22の姿勢等を変更する被測定物上の点を意味し、仮想空間内における座標により特定される。このような制御ポイントを測定順に結んだものが測定パスとなる。
このような制御ポイント生成部43の動作について図9を参照して説明する。図9は、制御ポイント生成部43による制御ポイントの生成動作を示すフローチャートである。まず、制御ポイント生成部43は、データ記憶部41から、被測定物の点座標データ32を読み込む(ステップS901)。
法線ベクトル生成部61は、受信した点座標データ32に基づいて、各点座標における法線ベクトルを生成する(ステップS902)。この法線ベクトルは、各点座標における被測定物の測定面に対する法線ベクトルである。
法線ベクトルが生成されると、制御ポイント作成部62は、各点座標と、この点座標における法線ベクトルとを対応付けた制御ポイントを生成する(ステップS903)。この制御ポイントは、仮想空間データ上の絶対的なX軸、Y軸およびZ軸における座標と、法線ベクトルとに関する情報を少なくとも有する。
制御ポイントが生成されると、制御ポイント設定部63は、各制御ポイントに相対的なx軸、y軸およびz軸を生成し、このz軸を法線ベクトルと一致させる(ステップS904)。この相対的なx軸、y軸およびz軸とは、仮想空間データにおける絶対的なX軸、Y軸およびZ軸とは異なるものであり、各制御ポイント毎に設けられるものである。後述するが、このような相対的なx軸、y軸およびz軸に基づいて、プローブヘッド22の姿勢を決定する。ここで、相対的なx軸、y軸およびz軸は、それぞれ互いに直交しており、この交点が制御ポイントの仮想空間データ上の位置、すなわち仮想空間データ上の絶対的なX軸、Y軸およびZ軸における座標に対応する。
相対的なz軸を法線ベクトルと一致させると、制御ポイント設定部63は、任意の制御ポイントを第1制御ポイントに設定し、この第1の制御ポイントに隣接する制御ポイントを第2制御ポイントに設定する(ステップS905)。点座標データ32から生成した制御ポイントには、プローブヘッド22が同じ姿勢で測定可能な制御ポイントが存在する場合がある。このような制御ポイントを統合するために、任意の第1、第2制御ポイントを設定して、後述する各制御ポイントの統合動作を行う。ここで、第1制御ポイントに隣接する制御ポイント、すなわち第2制御ポイントは、非接触測定機2により測定が行われる際、第1制御ポイントの次に測定が行われる箇所である。なお、第1制御ポイントの設定は、制御ポイント設定部63による最適な第1制御ポイント選定の演算やユーザの操作入力等により適宜自由に行うことができる。
第2制御ポイントが最後の制御ポイントではない場合、すなわち第2制御ポイントに設定されていない制御ポイントがまだ存在する場合(ステップS906:NO)、制御ポイント設定部63は、第1制御ポイントのz軸と、第2制御ポイントのz軸とを比較する(ステップS907)。
第1制御ポイントのz軸と第2制御ポイントのz軸とがなす角が計測許容角度α内の場合(ステップS907:YES)、制御ポイント設定部63は、第2制御ポイントに隣接する制御ポイントを新たに第2制御ポイントとして設定する(ステップS908)。これにより、第1制御ポイントと第2制御ポイントとは統合される。これは、第1制御ポイントのz軸と第2制御ポイントのz軸とがなす角が計測許容角度α内にあれば、第1制御ポイントと第2制御ポイントは、プローブヘッド22が同じ姿勢のままセンサ21の光ビームを照射することができるからである。新たに第2制御ポイントを設定すると、制御ポイント設定部63は、ステップS906の処理に戻る。
第1制御ポイントのz軸と第2制御ポイントのz軸とがなす角が計測許容角度α内ではない場合(ステップS907:NO)、制御ポイント設定部63は、第2制御ポイントを新たに第1制御ポイントに設定し、この新たな第1制御ポイントに隣接する制御ポイントを第2制御ポイントに設定する(ステップS909)。この場合、第1制御ポイントと第2制御ポイントとは統合されない。これは、第1制御ポイントのz軸と第2制御ポイントのz軸とがなす角が計測許容角度α内にない場合は、プローブヘッド22が同じ姿勢のままでセンサ21の光ビームを第1制御ポイントと第2制御ポイントに照射すると、精度良く計測を行うことができないからである。新たに第1、第2制御ポイントを設定すると、制御ポイント設定部63は、ステップS906の処理に戻る。
第2制御ポイントが最後の制御ポイントの場合、すなわち第2制御ポイントに設定されていない制御ポイントが存在しない場合(ステップS906:YES)、制御ポイント設定部63は、各制御ポイントのx軸を次の制御ポイントの方向に向けるとともに、最後の制御ポイントのx軸を1つ前の制御ポイントの方向に向ける(ステップS910)。これを図10を参照して説明する。図10は、各制御ポイントにおけるx軸の設定動作を説明する図である。
被測定物の測定面S上に設けられた制御ポイントP1〜P3には、それぞれ相対的なx軸、y軸およびz軸が設定されており、それぞれのz軸は各制御ポイントの測定面に対して垂直、すなわち各制御ポイントの測定面の法線と一致している。ここで、制御ポイントP1、P2、P3の順序で非接触測定機2により測定が行われる場合、制御ポイントP1のx軸は、次に測定が行われる制御ポイントP2の方向を向くように設定される。具体的には、z軸方向から見た場合、制御ポイントP1のx軸の延長線上に制御ポイントP2が位置するように、制御ポイントP1のx軸の方向を設定する。このとき、制御ポイントP1のy軸は、センサ21の光ビームの幅方向と一致する。これと同様に、制御ポイントP2のx軸は、次に測定が行われる制御ポイントP3の方向を向くように設定される。このように設定された各制御ポイントのx軸方向が、センサ21の走査方向となる。なお、最後の制御ポイント、すなわち測定パスの終点となる制御ポイントのx軸は、最後の制御ポイントであることを示すために1つ前の制御ポイントの方向を向くように設定される。
このようにして制御ポイント生成部43により制御ポイントが生成される。
プローブヘッド姿勢リスト生成部44は、非接触測定機2から受信するプローブヘッドデータ28に基づいて、プローブヘッドの姿勢に関するプローブヘッド姿勢リスト45を生成する。
図11は、プローブヘッド姿勢リスト45を示す図である。プローブヘッド姿勢リスト45とは、プローブヘッド22の各姿勢を識別番号で特定するものである。例えば、プローブヘッド22がロール角回動軸、ピッチ角回動軸およびヨー角回動軸の3つの回動軸を有する場合、プローブヘッド姿勢リスト45は、図11に示すように、識別番号、プローブヘッド22のロール回動軸の角度を示すロール角、プローブヘッド22のピッチ回動軸の角度を示すピッチ角およびプローブヘッド22のヨー回動軸の角度を示すヨー角のフィールドを有するテーブルから構成される。このテーブルのレコードは、各回動軸の全ての角度の組み合わせの数量分生成される。図11において、例えば、識別番号が722番のときのプローブヘッド22の姿勢は、ロール角が0.5度、ピッチ角が0.5度、ヨー角が0度であることを示す。
プローブヘッド選択部46は、制御ポイント生成部43で生成された各制御ポイントにおいて、最適なプローブヘッド22の姿勢をプローブヘッド姿勢リスト45から選択する。
測定パス生成部47は、制御ポイント生成部43で生成された制御ポイントと、プローブヘッド選択部46により選択された各制御ポイントにおけるプローブヘッド22の姿勢とに基づいて、制御ポイントを通過させる順序および各制御ポイントにおけるプローブヘッド22の姿勢とが対応付けられた測定パスを生成する。
動作確認部48は、測定パス生成部47により生成された測定パスの動作確認を行う。具体的には、仮想空間データ上において測定パス生成部47により生成された測定パスにより被測定物を測定し、センサ21やプローブヘッド22が被測定物や非接触測定機2に衝突するといった動作不良が発生するか否か等の動作確認を行う。
測定パスDB49は、動作確認部48により正常に測定動作が行われことが確認された測定パスを記憶する。
図12は、対称プログラム生成部50の構成を示すブロック図である。対称プログラム生成部50は、面設定部91と、符号変更部92と、プローブヘッド姿勢設定部93と、測定プログラム生成部94とを有する。面設定部91は、測定パスDB49に記憶されている測定パスと任意の平面に対称な測定パス(以下、対称パスという)を生成する際の、その平面を設定する。符号変更部92は、面設定部91により設定された平面に基づいて、測定パスの各制御ポイントの座標の符号を変更する。プローブヘッド姿勢設定部93は、符号変更部92により符号が変更された対称パスのプローブヘッド22の姿勢を再設定する。測定プログラム生成部94は、対称パスにより非接触測定機2が被測定物を測定するのに用いる例えばDMIS形式や使用する3次元CAD装置3の言語形式など所定のデータ形式の測定プログラムを生成し、測定プログラムDB52に記録する。このような対称プログラム生成部50の動作について、図の対称プログラム生成処理について、図13を参照して説明する。図13は、対称プログラム生成部50による対称プログラム生成処理の動作を示すフローチャートである。
まず、面設定部91は、対称プログラムを生成する測定パスを測定パスDB49から取得するとともに、対称基準面を設定する(ステップS1301)。この対称基準面とは、任意の被測定物の測定パスと対称な測定パス(以下、対称パスという)を生成するに際して、対称とする平面のことを意味する。本実施の形態では、対称基準面は、仮想空間データ上の絶対的なX軸、Y軸およびZ軸から構成されるXY平面、YZ平面およびZX平面のうちの何れか1つである。なお、対称基準面の設定は、ユーザによる操作入力に基づいて適宜自由に行われる。
対称基準面がXY平面に設定された場合(ステップS1301:XY)、符号変更部92は、対称パスを生成する測定パスの各制御ポイントのZ座標の符号を逆にする(ステップS1302)。対称基準面がYZ平面に設定された場合(ステップS1301:YZ)、符号変更部92は、対称パスを生成する測定パスの各制御ポイントのX座標の符号を逆にする(ステップS1303)。対称基準面がZX平面に設定された場合(ステップS1301:ZX)、符号変更部92は、対称パスを生成する測定パスの各制御ポイントのY座標の符号を逆にする(ステップS1304)。これらにより、測定パスの制御ポイントと対称基準面で対称な対称パスの制御ポイントが生成される。
対称パスの制御ポイントが生成されると、プローブヘッド姿勢設定部93は、全ての制御ポイントの数nを抽出し(ステップS1305)、i=1と設定し(ステップS1306)、iが全制御ポイント数nよりも大きいか否かの判断を行う(ステップS1307)。
iが全制御ポイント数nよりも大きくない場合(ステップS1307:NO)、プローブヘッド姿勢設定部93は、測定パスのi番目の制御ポイントに対応付けられたプローブヘッド22の姿勢に対して、2軸回動式プローブヘッドの場合はロール角、3軸回動式プローブヘッドの場合はロール角およびヨー角の符号が逆になるプローブヘッド22の姿勢をプローブヘッド姿勢リスト45から検索する(ステップS1308)。
符号が逆となるプローブヘッド22の姿勢が存在する場合(ステップS1309:YES)、プローブヘッド姿勢設定部93は、対称パスのi番目の制御ポイントに、検索されたプローブヘッド22の姿勢の識別番号を対応付ける(ステップS1310)。
符号が逆となるプローブヘッド22の姿勢が存在しない場合(ステップS1309:NO)、プローブヘッド姿勢設定部93は、最適なプローブヘッド22の姿勢をプローブヘッド姿勢リスト45から検索し、この検索したプローブヘッド22の姿勢の識別番号を対称パスのi番目の制御ポイントに対応付ける(ステップS1311)。具体的には、対称パスのi番目の制御ポイントの相対的なz軸と、センサ21の光ビームの照射方向の軸とが最も近似するプローブヘッド22の姿勢をプローブヘッド姿勢リスト45から検索する。
対称パスのi番目の制御ポイントにプローブヘッド22の姿勢の識別番号が対応付けられると、プローブヘッド姿勢設定部93は、i=i+1と設定し(ステップS1315)、ステップS1307の処理に戻る。
iが全制御ポイント数nよりも大きい場合(ステップS1307:YES)、測定プログラム生成部94は、対称パスの各制御ポイントにおけるプローブヘッド22の各回動軸の角度と光ビームの照射位置とのずれからセンサ21の位置を計算し(ステップS1312)、所定のデータ形式の対称パスの測定プログラムである対称プログラムを生成して(ステップS1313)、測定プログラムDB52に保存する(ステップS1314)。
これにより、本実施の形態によれば、例えば自動車のドアなど左右対称な被測定物の測定プログラムを生成する場合は、対となる被測定物のうち一方の被測定物の測定プログラムを生成すれば、他方の測定プログラムも容易に生成することが可能となる。
測定プログラム生成部51は、測定パスDB49に記憶された測定パスに基づいて、非接触測定機2が被測定物を測定するための測定プログラムを生成する。この測定プログラムは、例えばDMIS形式や使用する3次元CAD装置3の言語形式で生成される。
測定プログラムDB52は、対称プログラム生成部50および測定プログラム生成部51により生成された測定プログラムを記憶する。
このようなプログラム生成装置4は、CPU等の演算装置、メモリ、HDD等の記憶装置、ネットワークを介して非接触測定機2および3次元CAD装置3と各種情報の送受を行うI/F装置、キーボード、マウス等の入力装置、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、FED(Field Emission Display)または有機EL(Electro Luminescence)等の表示装置などを備えたコンピュータと、このコンピュータにインストールされたプログラムとからそれぞれ構成されており、上記ハードウェア装置がプログラムによって制御されることによって、すなわちハードウェア資源とソフトウェアが協働することによって、仮想空間生成部42、制御ポイント生成部43、プローブヘッド姿勢リスト生成部44、プローブヘッド姿勢リスト45、プローブヘッド選択部46、測定パス生成部47、動作確認部48、測定パスDB49、対称プログラム生成部50、測定プログラム生成部51および測定プログラムDB52の各機能部を実現する。
次に、プログラム生成装置4の動作について図14を参照して説明する。図14は、本実施の形態におけるプログラム生成装置4の動作を示すフローチャートである。まず、データ記憶部41は、非接触測定機2および3次元CAD装置3から各種データを受信し、記憶する(ステップS1401)。これらのデータから、仮想空間生成部42は、非接触測定機2と被測定物を仮想空間上に配置した仮想空間データを生成する。また、プローブヘッド姿勢リスト生成部44は、プローブヘッドデータ28に基づいて、プローブヘッド姿勢リスト45を生成する。
次に、制御ポイント生成部43は、図9、10を参照して説明した方法により、制御ポイントを生成する(ステップS1402)。
被測定物の制御ポイントが設定されると、プローブヘッド選択部46は、各制御ポイントにおいて最適なプローブヘッドの姿勢をプローブヘッド姿勢リスト45から選択する(ステップS1403)。具体的には、各制御ポイントに設定された相対的なz軸とセンサ21から出力される光ビームの照射方向とが一致するまたは近似し、かつ、後述する各制御ポイントに設定された相対的なY軸と光ビームの幅方向とが一致するまたは近似するプローブヘッド22の姿勢を、プローブヘッド姿勢リスト45から選択し、この選択されたプローブヘッド22の姿勢の識別番号を抽出する。
各制御ポイントのプローブヘッド22の姿勢が選択されると、測定パス生成部47は、抽出されたプローブヘッド22の姿勢の識別番号を制御ポイント毎に対応付け、このような制御ポイントに基づいて非接触測定機2により被測定物の測定面を測定する経路を示す測定パスを生成する(ステップS1404)。この測定パスとは、制御ポイント生成部43により設定された各制御ポイントを、非接触測定機2により測定する順番を示すものであり、制御ポイントの仮想空間上における絶対的な座標と、センサ21の走査方向と、プローブヘッド22の姿勢の識別番号とに関する情報が少なくとも含まれる。
生成された測定パスを編集する場合(ステップS1405:YES)、プログラム生成装置4は、ステップS1402の処理に戻る。測定パスを編集しない場合(ステップS1405:NO)、動作確認部48は、生成された測定パスの動作確認を行う(ステップS1406)。
生成された測定パスが正常に動作することが確認された場合(ステップS1407:YES)、動作確認部48は、その測定パスを測定パスDB49に記憶させる(ステップS1408)。生成された測定パスが正常に動作しない場合(ステップS1407:NO)、プログラム生成装置4は、ステップS1402の処理に戻る。
ここで、対称プログラムを生成する場合(ステップS1409:YES)、対称プログラム生成部50は、図13を参照して説明した方法により、対称プログラムを生成する(ステップS1411)。生成された対称プログラムは、測定プログラムDB52に記憶される(ステップS1412)。一方、対称プログラムを生成しない場合(ステップS1409:NO)、測定プログラム生成部51は、通常の測定プログラムを生成し(ステップS1410)、測定プログラムDB52に保存する(ステップS1412)。このような測定プログラムの生成処理が行われると、プログラム生成装置4は、ステップS1405の処理に戻る。
このようにして生成され、測定プログラムDB52に記憶された測定プログラムは、ネットワークを介して非接触測定機2に送信され、被測定物の測定に用いられる。なお、測定プログラムDB52に保存された測定プログラムは、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Video Disc)等の公知の記録媒体に記憶させ、被測定物の測定を行う非接触測定機2上に展開することにより、プログラム生成装置4とネットワークで接続されていない非接触測定機2でも用いることが可能となる。
図15は、本実施の形態にかかるプログラム生成装置4により生成された測定プログラムを仮想空間データ上でシミュレーションした一例を示す図である。図15の符号aは、制御ポイントに関するデータを示しており、プローブヘッド22の姿勢の識別番号、プローブヘッド22のピッチ回動軸およびロール回動軸の角度、制御ポイントの座標等から構成される。また、図15の符号bに示す矢印は、被測定物上の制御ポイントを示している。さらに、図15の符号cは、測定パスを示している。この測定パス上をセンサ21の光ビームが走査する。
このように、本実施の形態によれば、実際の被測定物ではなく、3次元CAD装置3により生成された被測定物の3次元形状を示す設計データに基づいて測定プログラムを生成するため、容易に制御プラグラムを生成することができる。
なお、測定プログラムDB52には、非接触測定機2で生成された測定プログラムを、公知の記録媒体やネットワークを介して受信して記憶するようにしてもよい。これにより、非接触測定機2で生成された測定プログラムを編集することが可能となる。この場合、非接触測定機2で生成された測定プログラムは、ネットワークや公知の記録媒体を介してプログラム生成装置4の測定プログラムDB52に記憶される。
[第2の実施の形態]
次に、本発明の第2の実施の形態について説明する。なお、本実施の形態は、第1の実施の形態と制御ポイント生成部43の構成が異なるものである。よって、第1の実施の形態と同等の構成要素には、同じ名称および符号を付し、適宜説明を省略する。
図16は、本実施の形態における制御ポイント生成部43の構成を示すブロック図である。制御ポイント生成部43は、制御ポイント作成部71と、制御ポイント設定部72とを有する。制御ポイント作成部71は、3次元CAD装置3の点座標データ32および法線ベクトルデータ33とに基づいて、被測定物の各点座標を制御ポイントとして設定する。この制御ポイントには、法線ベクトルに関する情報も含まれる。制御ポイント設定部72は、制御ポイント作成部71により生成された制御ポイントのうち、プローブヘッド22が同じ姿勢で測定可能な制御ポイントを統合する。
次に、図17を参照して、本実施の形態における制御ポイント生成部43の動作について説明する。図17は、本実施の形態による制御ポイント生成動作を示すフローチャートである。なお、図17に示すステップS1703〜S1709の動作は、図12に示した第1の実施の形態における制御ポイント生成部43のステップS904〜910の動作と同等であるので、説明を適宜省略する。
まず、制御ポイント作成部71は、データ記憶部41から、被測定物の点座標データ32と、この点座標における法線ベクトルを示す法線ベクトルデータ33とを読み込み(ステップS1701)、各点座標と、この点座標における法線ベクトルとを対応付けた制御ポイントを生成する(ステップS1702)。制御ポイント作成部71により制御ポイントが生成されると、制御ポイント設定部72は、続くステップS1703〜S1709の処理を行う。
このように本実施の形態によれば、点座標データ32とともに法線ベクトルデータ33が3次元CAD装置3により生成されている場合、その法線ベクトルデータ33を用いて制御ポイントを生成することが可能となる。このため、本実施の形態では、第1の実施の形態のような法線ベクトル生成部61が不要である。
[第3の実施の形態]
次に、本発明の第3の実施の形態について説明する。なお、本実施の形態は、第1の実施の形態と制御ポイント生成部43の構成が異なるものである。よって、第1の実施の形態と同等の構成要素には、同じ名称および符号を付し、適宜説明を省略する。
図18は、本実施の形態における制御ポイント生成部43の構成を示すブロック図である。制御ポイント生成部43は、スライス設定部81と、スライス曲線生成部82と、コントロールポイント設定部83と、法線ベクトル算出部84と、制御ポイント設定部85とを有する。スライス設定部81は、3次元CAD装置3の被測定物データ31に基づいて、被測定物を任意の平面で複数に切断する際の各種パラメータを設定する。スライス曲線生成部82は、スライス設定部81により設定されたパラメータに基づいて、被測定物を切断し、この切断面のスライス曲線を生成する。コントロールポイント設定部83は、スライス曲線生成部82により生成されたスライス曲線上にコントロールポイントを設定する。法線ベクトル算出部84は、そのコントロールポイントにおける法線ベクトルを算出する。制御ポイント設定部85は、コントロールポイント設定部83により設定されたコントロールポイントを制御ポイントとして設定する。
次に、図19を参照して、本実施の形態における制御ポイント生成部43の制御ポイント生成動作について説明する。図19は、本実施の形態における制御ポイント生成部43の動作を示すフローチャートである。
まず、スライス設定部81は、データ記憶部41から被測定物データ31を読み出すとともに、ユーザの操作入力に基づいて、スライス回数n、スライス方向、スライスの範囲、スライス間隔を設定する(ステップS1901)。ここで、スライス回数とは、仮想空間データ上で被測定物を所定の平面で切断する際、その切断回数のことを意味する。したがって、切断回数が多いほど、被測定物の切断面を多く得られる。また、スライス方向とは、例えばXY平面、YZ平面、ZX平面など、仮想空間データ上で被測定物を切断する平面の方向を意味する。そのXY平面、YZ平面、ZX平面とは、仮想空間データ上の絶対的なX軸、Y軸およびZ軸に対して生成されるものである。また、スライス範囲とは、仮想空間上で被測定物を所定の平面で切断する際、その被測定物を切断する範囲を意味する。被測定物に制御ポイントを設定したい箇所が含まれるように、スライス範囲は設定される。また、スライス間隔とは、仮想空間データ上で被測定物の所定の範囲を所定の平面で切断する際、この切断を行う間隔のことを意味する。したがって、スライス間隔を小さくするほど、被測定物の切断面を多く得られる。
スライスに関する各設定を行うと、スライス設定部81は、i=1と設定し(ステップS1902)、iがスライス回数nよりも大きいか否かの判断を行う(ステップS1904)。
iがスライス回数nよりも大きくない場合、スライス曲線生成部82は、所定の平面により被測定物を切断し、i番目のスライス曲線を生成する(ステップS1904)。
スライス曲線が生成されると、コントロールポイント設定部83は、そのスライス曲線上に複数のコントロールポイントを生成し、任意のコントロールポイントを第1コントロールポイントに設定し、この第1コントロールポイントに隣接するコントロールポイントを第2コントロールポイントに設定する(ステップS1905)。コントロールポイントには、プローブヘッド22が同じ姿勢で測定可能なコントロールポイントが存在する。このようなコントロールポイントを統合するために、任意の第1,第2コントロールポイントを設定し、後述するコントロールポイントの統合動作を行う。ここで、第1コントロールポイントに隣接するコントロールポイント、すなわち第2コントロールポイントは、非接触測定機2により測定が行われる際、第1コントロールポイントの次に測定が行われる箇所である。なお、第1コントロールポイントの設定は、コントロールポイント設定部83による最適な第1コントロールポイント選定の演算やユーザの操作入力等により適宜自由に行うことができる。また、スライス曲線上に設けるコントロールポイントの数量は、適宜自由に設定することができる。
第1、第2コントロールポイントが設定されると、法線ベクトル算出部84は、第1コントロールポイントにおける被測定物の測定面に対する法線ベクトルを算出する(ステップS1906)。
ここで、第2コントロールポイントが最後のコントロールポイントではない場合、すなわち第2コントロールポイントに設定されていないコントロールポイントがまだ存在する場合(ステップS1907:NO)、法線ベクトル算出部84は、第2コントロールポイントにおける被測定物の測定面に対する法線ベクトルを算出する(ステップS1908)。
第2コントロールポイントの法線ベクトルが算出されると、コントロールポイント設定部83は、第1コントロールポイントの法線ベクトルと第2コントロールポイントの法線ベクトルとを比較する(ステップS1909)。
第1コントロールポイントの法線ベクトルと第2コントロールポイントの法線ベクトルとがなす角が計測許容角度α内の場合(ステップS1909:YES)、コントロールポイント設定部83は、第2コントロールポイントに隣接するコントロールポイントを新たに第2コントロールポイントとして設定する(ステップS1910)。これにより、第1コントロールポイントと第2コントロールポイントとは統合される。これは、第1コントロールポイントの法線ベクトルと第2コントロールポイントの法線ベクトルとがなす角が計測許容角度α内にあれば、第1コントロールポイントと第2コントロールポイントは、プローブヘッド22が同じ姿勢のままセンサ21の光ビームを照射することができるからである。新たに第2コントロールポイントを設定すると、コントロールポイント設定部83は、ステップS1907の処理に戻る。
第1コントロールポイントの法線ベクトルと第2コントロールポイントの法線ベクトルとがなす角が計測許容角度α内ではない場合(ステップS1909:NO)、コントロールポイント設定部83は、第2コントロールポイントを新たに第1コントロールポイントに設定し、この新たな第1コントロールポイントに隣接するコントロールポイントを第2コントロールポイントに設定する(ステップS1911)。この場合、第1コントロールポイントと第2コントロールポイントとは統合されない。これは、第1コントロールポイントの法線ベクトルと第2コントロールポイントの法線ベクトルとがなす角が計測許容角度α内にない場合は、プローブヘッド22が同じ姿勢のままでセンサ21の光ビームを第1コントロールポイントと第2コントロールポイントに照射すると、精度良く計測を行うことができないからである。新たに第1、第2コントロールポイントを設定すると、コントロールポイント設定部83は、ステップS1907の処理に戻る。
第2コントロールポイントが最後のコントロールポイントの場合、すなわち第2コントロールポイントに設定されていないコントロールポイントが存在しない場合(ステップS1907:YES)、制御ポイント設定部85は、各コントロールポイントを制御ポイントとして設定し、各制御ポイントに相対的なx軸、y軸およびz軸を生成し、このz軸を法線ベクトルと一致させる。また、各制御ポイントのx軸を次の制御ポイントの方向に向けるとともに、最後の制御ポイントのx軸を1つ前の制御ポイントの方向に向ける(ステップS1912)。
制御ポイントが設定されると、スライス設定部81は、i=i+1と設定し(ステップS1913)、ステップS1903の処理に戻る。
iがスライス回数nよりも大きい場合、制御ポイント生成部43は、制御ポイントの設定動作を終了する。これにより制御ポイントが設定され、設定された制御ポイントに基づいて、プローブヘッド22の姿勢の選択や測定パスの生成等が行われる。
このように本実施の形態によれば、被測定物の3次元形状を所定の平面でスライスすることにより、被測定物の3次元形状から制御ポイントを生成することが可能となる。
なお、第1〜第3の実施の形態では、制御ポイント生成部43は、それぞれ点座標データ32、点座標データ32および法線ベクトルデータ33、被測定物のスライス形状に基づいて制御ポイントを生成したが、ユーザの操作入力により被測定物の測定面上に制御ポイントを設定するようにしてもよい。この場合、例えば、表示装置に表示された被測定物上の任意の箇所をマウス等でクリックしたり、制御ポイントとして設定する座標をキーボード等により入力することにより制御ポイントが設定される。
また、第1〜第3の実施の形態において、制御ポイント上でプローブヘッド22の姿勢を変更する際、場合によってはプローブヘッド22が被測定物と衝突する可能性がある。このような場合、測定パス生成部47は、当該制御ポイントからこの制御ポイントの法線ベクトルの方向に所定距離だけ離間した位置に待機点を生成するようにしてもよい。これにより、プローブヘッド22の姿勢を変更する場合、待機点を有する制御ポイントでは、プローブヘッド22を待機点まで移動させることにより、プローブヘッド22が被測定物と接触するのを防ぐことが可能となる。
1…3次元測定システム、2…非接触測定機、3…3次元CAD装置、4…プログラム生成装置、21…センサ、21a…光軸、22…プローブヘッド、23…制御部、24…演算部、25…記憶部、26…測定機データ、27…センサデータ、28…プローブヘッドデータ、31…被測定物データ、32…点座標データ、33…法線ベクトルデータ、41…データ記憶部、42…仮想空間生成部、43…制御ポイント生成部、44…プローブヘッド姿勢リスト生成部、45…プローブヘッド姿勢リスト、46…プローブヘッド選択部、47…測定パス生成部、48…動作確認部、49…測定パスDB、50…対称プログラム生成部、51…測定プログラム生成部、52…測定プログラムDB、61…法線ベクトル生成部、62…制御ポイント作成部、63…制御ポイント設定部、71…制御ポイント作成部、72…制御ポイント設定部、81…スライス設定部、82…スライス曲線生成部、83…コントロールポイント設定部、84…法線ベクトル算出部、85…制御ポイント設定部、91…面設定部、92…符号変更部、93…プローブヘッド姿勢設定部、94…測定プログラム生成部。