(57)【要約】【課題】  対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラムの作成において、簡便に駆動プログラムを作成すること。【解決手段】  対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラムを作成する駆動プログラム作成方法であって、対象物体に関わる三次元の設計値を含む表計算ファイルを取得する取得工程と、取得工程により取得した表計算ファイルの設計値に基づいて、装置を駆動するための駆動プログラムを作成する作成工程とを有する。【選択図】      図１
2006318406.tif 000002
【特許請求の範囲】
【請求項１】
対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラムを作成する駆動プログラム作成方法であって、
前記対象物体に関わる三次元の設計値を含む表計算ファイルを取得する取得工程と、
前記取得工程により取得した前記表計算ファイルの前記設計値に基づいて、前記装置を駆動するための駆動プログラムを作成する作成工程と
を有することを特徴とする駆動プログラム作成方法。
【請求項２】
請求項１に記載の駆動プログラム作成方法において、
前記取得工程では、三次元測定機による測定対象物体に関わる三次元の設計値を含む表計算ファイルを取得し、
前記作成工程では、前記取得工程により取得した前記表計算ファイルの前記設計値に基づいて、前記三次元測定機を駆動するためのオフラインティーチングプログラムを作成する
ことを特徴とする駆動プログラム作成方法。
【請求項３】
請求項２に記載の駆動プログラム作成方法において、
前記作成工程により作成した前記オフラインティーチングプログラムにしたがって、前記三次元測定機を駆動した際の測定結果を取得する第２取得工程と、
前記第２取得工程により取得した前記測定結果と、前記オフラインティーチングプログラムを作成した際に取得した前記表計算ファイルとに基づいて、測定結果および評価結果を含む表計算ファイルを作成する第２作成工程と
をさらに有することを特徴とする駆動プログラム作成方法。
【請求項４】
対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラムを作成する駆動プログラム作成装置であって、
前記対象物体に関わる三次元の設計値を含む表計算ファイルを取得する取得部と、
前記取得部により取得した前記表計算ファイルの前記設計値に基づいて、前記装置を駆動するための駆動プログラムを作成する作成部と
を有することを特徴とする駆動プログラム作成装置。
【請求項５】
コンピュータを、請求項４に記載の取得部、作成部として機能させるための駆動プログラム作成プログラム。                                                                                
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラム作成方法、駆動プログラム作成装置および駆動プログラム作成プログラムに関する。
【背景技術】
【０００２】
近年、各種装置の制御においては自動化が進められている。このような自動化を行うためには、装置を駆動するための駆動プログラムの作成が必要となる。駆動プログラムの作成には、装置を実際に手動で動かしながら、駆動手順をプログラム化する方法や、コンピュータに対象物体の３Ｄモデルを取り込み、この３Ｄモデルを基にしてコンピュータ上で駆動プログラムを作成するソフトウェアを利用する方法などがある（例えば、特許文献１参照）。
【特許文献１】特開２００４−２８６５７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、装置を実際に手動で動かしながら、駆動手順をプログラム化する方法では、シミュレーションしながら駆動プログラムを作成するために時間を要するとともに、駆動プログラム作成中にはその装置が占有され、占有中は他の測定ができない。また、駆動プログラムを作成するソフトウェアを利用する方法では、ソフトウェア自体が高価であり、また、基となる３Ｄモデルの信頼性や互換性に関して問題がある場合がある。
【０００４】
本発明は、対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラムの作成において、簡便に駆動プログラムを作成することができる駆動プログラム作成方法、駆動プログラム作成装置および駆動プログラム作成プログラムを実現することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の駆動プログラム作成方法は、対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラムを作成する駆動プログラム作成方法であって、前記対象物体に関わる三次元の設計値を含む表計算ファイルを取得する取得工程と、前記取得工程により取得した前記表計算ファイルの前記設計値に基づいて、前記装置を駆動するための駆動プログラムを作成する作成工程とを有する。
【０００６】
また、好ましくは、前記取得工程では、三次元測定機による測定対象物体に関わる三次元の設計値を含む表計算ファイルを取得し、前記作成工程では、前記取得工程により取得した前記表計算ファイルの前記設計値に基づいて、前記三次元測定機を駆動するためのオフラインティーチングプログラムを作成するようにしても良い。
また、好ましくは、前記作成工程により作成した前記オフラインティーチングプログラムにしたがって、前記三次元測定機を駆動した際の測定結果を取得する第２取得工程と、前記第２取得工程により取得した前記測定結果と、前記オフラインティーチングプログラムを作成した際に取得した前記表計算ファイルとに基づいて、測定結果および評価結果を含む表計算ファイルを作成する第２作成工程とをさらに有するようにしても良い。
【０００７】
本発明の駆動プログラム作成装置は、対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラムを作成する駆動プログラム作成装置であって、前記対象物体に関わる三次元の設計値を含む表計算ファイルを取得する取得部と、前記取得部により取得した前記表計算ファイルの前記設計値に基づいて、前記装置を駆動するための駆動プログラムを作成する作成部とを有する。
【０００８】
本発明の駆動プログラム作成プログラムは、コンピュータを、本発明の駆動プログラム作成装置に記載の取得部、作成部として機能させる。
【発明の効果】
【０００９】
本発明によれば、対象物体に対して、三次元で移動可能な可動部を備えた装置を駆動するための駆動プログラムの作成において、簡便に駆動プログラムを作成することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づいて、本発明の実施形態について詳細に説明する。なお、本実施形態では、コンピュータからなる駆動プログラム作成装置を例に挙げて説明する。また、本実施形態では、対象物体に対して、三次元で移動可能な可動部を備えた装置の一例として、三次元測定機を例に挙げ、さらに、この三次元測定機を駆動して自動測定を行うための駆動プログラム、いわゆるオフラインティーチングプログラムを作成する場合を例に挙げて説明する。また、オフラインティーチングプログラムの一例として、ＤＭＩＳ形式のプログラムを作成する場合を例に挙げて説明する。
【００１１】
駆動プログラム作成装置１は、図１の機能ブロック図に示すように、液晶モニタなどの画像表示部２、制御部３、マウスおよびキーボードなどを含む操作部４、後述する設計値や測定値などを記憶する記憶部５、ネットワークや外部機器などに接続して情報を取得する通信部６を備えたコンピュータ１０からなる。なお、制御部３は、不図示の内部メモリに、本発明の特徴である駆動プログラム作成プログラム、評価ファイル作成プログラムを含む各種プログラムを予め記憶しているものとする。また、制御部３は、不図示の内部メモリに、駆動プログラム作成に際して使用する各種命令文を予め記憶する。
【００１２】
本実施形態では、図２に示す被検査物Ｓを三次元測定機による測定対象として一連の説明を行う。被検査物Ｓは、図２の斜視図に示すように、直方体の形状からなる。また、図２中の丸囲みの数字１〜９で示す点は、三次元測定機による測定点である。
以下、図３および図４のフローチャートを用いて、三次元測定機により被検査物Ｓを測定するためのオフラインティーチングプログラムを、駆動プログラム作成装置１により作成する手順について説明する。
【００１３】
ステップＳ１において、制御部３は、駆動プログラム作成プログラムを起動する。
ステップＳ２において、制御部３は、表計算ファイルが指定されたか否かを判定する。この表計算ファイルは、駆動プログラムの基となる情報である。表計算ファイルは、被検査物ごとに予めユーザにより作成されたものであり、駆動プログラムの基となる情報として適切な内容（どの列にどのような情報を入力するかなど）に沿って作成される。
【００１４】
図５に表計算ファイルの例を示す。図５の表計算ファイルにおいては、図２の被検査物Ｓの測定点について、Ａ列にｘ方向の設計値、Ｂ列にｙ方向の設計値、Ｃ列にｚ方向の設計値、Ｄ列にｘ方向のプローブ接近方向、Ｅ列にｙ方向のプローブ接近方向、Ｆ列にｚ方向のプローブ接近方向、Ｇ列にアプローチ距離、Ｈ列にリトラクト距離、Ｉ列にｘ方向の下限公差、Ｊ列にｘ方向の上限公差、Ｋ列にｙ方向の下限公差、Ｌ列にｙ方向の上限公差、Ｍ列にｚ方向の下限公差、Ｎ列にｚ方向の上限公差が入力される。
【００１５】
Ｄ列、Ｅ列、Ｆ列のプローブ接近方向とは、各測定点へ、どちらの方向から接近するかを示す値であり、方向余弦の形式で定める。また、Ｇ列のアプローチ距離とは、各測定点と測定前待機位置との距離であり、Ｈ列のリトラクト距離とは、各測定点と測定後待機位置との距離を示す値である。また、Ｉ列からＮ列の下限・上限公差とは、各測定点において、設計値と実測値との間にどの程度の誤差を許容するかを示す値であり、下限と上限とを別々に定める。表計算ファイルは、少なくとも三次元の設計値を含んでいれば良く、プローブ接近方向、アプローチ距離、リトラクト距離、公差についての情報は必須ではない。本実施形態では、プローブ接近方向、アプローチ距離、リトラクト距離、公差については、必要な段階で、ユーザにより入力される構成である。なお、表計算ファイルは、既存のＣＡＤデータをもとに自動作成するようにしても良い。
【００１６】
そして、表計算ファイルが指定されると、その表計算ファイルを通信部６などを介して取得し、ステップＳ３に進む。本実施形態では、図５に示した表計算ファイルを取得したものとして、以下の説明を行う。
ステップＳ３において、制御部３は、ステップＳ２で指定された表計算ファイルの処理番号を設定する。図５に示す表計算ファイルは、９つの測定点における設計値を含むので、１行目の測定点を「処理番号１」、２行目の測定点を「処理番号２」、以下同様に、９行目の測定点を「処理番号９」と設定する。
【００１７】
ステップＳ４において、制御部３は、Ｎ＝（処理番号の最大値）とする。本実施形態では、処理番号の最大値は９であるため、Ｎ＝９とする。
ステップＳ５において、制御部３は、制御部３内の不図示のカウンタをｎ＝１とする。
ステップＳ６において、制御部３は、画像表示部２にメッセージを表示するなどして、作成する駆動プログラムの名称を入力するようユーザに促し、名称が入力されたか否かを判定する。そして、名称が入力されるまで待機し、名称が入力されると、ステップＳ７に進む。ここでは、”tokutest”という名称が入力されたものとして、以下の説明を行う。
【００１８】
ステップＳ７において、制御部３は、駆動プログラムの先頭に初期設定命令文を記述する。初期設定命令文は、以下の通りである。
【００１９】
【数１】
2006318406.tif 000003
【００２０】
図６に記述される駆動プログラムの例を示す。図６のステップＳ７の部分に示すように、上述した初期命令文は、駆動プログラムの先頭に記述される。制御部３は、初期命令文のうち、１行目（図６の枠ａの部分）には、ステップＳ６で入力された名称を記述する。
ステップＳ８において、制御部３は、ステップＳ２で指定された表計算ファイルから、処理番号ｎの座標を読み出す。図５に示す表計算ファイルには、上述したように、Ａ列にｘ座標、Ｂ列にｙ座標、Ｃ列にｚ座標が入力されているので、ｎ＝１の場合、１行目のＡ列、Ｂ列、Ｃ列から１００，１０，９０という座標を読み出す。
【００２１】
ステップＳ９において、制御部３は、ｎ行目にプローブ接近方向が入力されているか否かを判定する。図５に示す表計算ファイルには、上述したように、Ｄ列にｘ方向のプローブ接近方向、Ｅ列にｙ方向のプローブ接近方向、Ｆ列にｚ方向のプローブ接近方向が入力されるので、ｎ＝１の場合、１行目のＤ列、Ｅ列、Ｆ列に、何らかの数値が入力されているか否かを判定し、入力されている場合には、表計算ファイルから数値を読み出してステップＳ１１に進み、入力されていない場合には、ステップＳ１０に進む。
【００２２】
ステップＳ１０において、制御部３は、画像表示部２にメッセージを表示するなどして、プローブ接近方向を入力するようユーザに促し、プローブ接近方向が入力されたか否かを判定する。そして、プローブ接近方向が入力されるまで待機し、プローブ接近方向が入力されると、ステップＳ１１に進む。ここでは、ｘ方向＝１、ｙ方向＝０、Ｚ方向＝０が入力されたものとして、以下の説明を行う。
【００２３】
ステップＳ１１において、制御部３は、ｎ行目にアプローチ距離・リトラクト距離が入力されているか否かを判定する。図５に示す表計算ファイルには、上述したように、Ｇ列にアプローチ距離、Ｈ列にリトラクト距離が入力されるので、ｎ＝１の場合、１行目のＧ列、Ｈ列に、何らかの数値が入力されているか否かを判定し、入力されている場合には、表計算ファイルから数値を読み出してステップＳ１３に進み、入力されていない場合には、ステップＳ１２に進む。
【００２４】
ステップＳ１２において、制御部３は、画像表示部２にメッセージを表示するなどして、アプローチ距離・リトラクト距離を入力するようユーザに促し、アプローチ距離・リトラクト距離が入力されたか否かを判定する。そして、アプローチ距離・リトラクト距離が入力されるまで待機し、アプローチ距離・リトラクト距離が入力されると、ステップＳ１３に進む。ここでは、アプローチ距離＝３（ｍｍ）、リトラクト距離＝３（ｍｍ）が入力されたものとして、以下の説明を行う。
【００２５】
ステップＳ１３において、制御部３は、ｎ行目に公差が入力されているか否かを判定する。図５に示す表計算ファイルには、上述したように、Ｉ列、Ｊ列にｘ方向の下限・上限公差、Ｋ列、Ｌ列にｙ方向の下限・上限公差、Ｍ列、Ｎ列にｚ方向の下限・上限公差が入力されるので、ｎ＝１の場合、１行目のＩ列からＮ列に、何らかの数値が入力されているか否かを判定し、入力されている場合には、表計算ファイルから数値を読み出してステップＳ１５に進み、入力されていない場合には、ステップＳ１４に進む。
【００２６】
ステップＳ１４において、制御部３は、画像表示部２にメッセージを表示するなどして、公差を入力するようユーザに促し、公差が入力されたか否かを判定する。そして、公差が入力されるまで待機し、公差が入力されると、ステップＳ１５に進む。ここでは、ｘ方向の下限公差＝−０．５ｍｍ、ｘ方向の上限公差＝０．５ｍｍが入力されたものとして、以下の説明を行う。
【００２７】
ステップＳ１５において、制御部３は、処理番号ｎの設計値命令文を記述する。制御部３は、ステップＳ７で記述した初期設定命令文の後に、ステップＳ８で読み出した処理番号ｎの座標、アプローチ距離・リトラクト距離に基づいて設計値命令文を記述する。設計値命令文は、以下の通りである。
【００２８】
【数２】
2006318406.tif 000004
【００２９】
図６のステップＳ１５の部分に示すように、上述した設計値命令文は、初期命令文の後ろに記述される。制御部３は、設計値命令文のうち、図６の枠ｂの部分および枠ｅの部分には、現在のカウンタ数ｎに基づき、ｎ＝１の場合には（ＰＮＴ１）を記述する。また、図６の枠ｃの部分には、ステップＳ８で読み出した座標を記述し、枠ｄの部分には、ステップＳ９で読み出したプローブ接近方向またはステップＳ１０で入力されたプローブ接近方向を記述する。また、図６の枠ｆおよび枠ｇの部分には、それぞれ、ステップＳ１１で読み出したアプローチ距離とリトラクト距離またはステップＳ１２で入力されたアプローチ距離とリトラクト距離を記述する。
【００３０】
ステップＳ１６において、制御部３は、ステップＳ１５で記述した設計値命令文の後に、プローブ接近方向とアプローチ距離とに基づいて移動命令文を記述する。移動命令文は、以下の通りである。
GOTO/103.0000,10.0000,90.0000
図６のステップＳ１６の部分に示すように、上述した移動命令文は、設計値命令文の後ろに記述される。制御部３は、移動命令文のうち、図６の枠ｈの部分には、103.0000,10.0000,90.0000という座標を記述する。これは、ｘ方向（プローブ接近方向：ｘ方向＝１、ｙ方向＝０、Ｚ方向＝０、ステップＳ１０参照）において、アプローチ距離３ｍｍ（ステップＳ１２参照）の測定前待機位置に移動することを意味する。
【００３１】
ステップＳ１７において、制御部３は、ステップＳ１６で記述した移動命令文の後に、ステップＳ８で読み出した座標とプローブ接近方向とに基づいて測定命令文を記述する。測定命令文は、以下の通りである。
PTMEAS/CART,100.0000,10.0000,90.0000,1.0000,0.0000,0.0000
図６のステップＳ１７の部分に示すように、上述した測定命令文は、ステップＳ１６で記述した移動命令文の後ろに記述される。制御部３は、測定命令文のうち、図６の枠ｉの部分には、ステップＳ８で読み出した座標（100.0000,10.0000,90.0000）を記述し、枠ｊの部分には、プローブ接近方向を記述する。これは、ｘ方向（プローブ接近方向：ｘ方向＝１、ｙ方向＝０、Ｚ方向＝０、ステップＳ１０参照）から接近して、座標（100.0000,10.0000,90.0000）の測定点を測定することを意味する。
【００３２】
ステップＳ１８において、制御部３は、ステップＳ１７で記述した測定命令文の後に、プローブ接近方向とリトラクト距離とに基づいて、移動命令文を記述する。移動命令文は、以下の通りである。
GOTO/103.0000,10.0000,90.0000
図６のステップＳ１８の部分に示すように、上述した移動命令文は、測定命令文の後ろに記述される。制御部３は、移動命令文のうち、図６の枠ｋの部分には、103.0000,10.0000,90.0000という座標を記述する。これは、ｘ方向（プローブ接近方向：ｘ方向＝１、ｙ方向＝０、Ｚ方向＝０、ステップＳ１０参照）において、リトラクト距離３ｍｍ（ステップＳ１２参照）の測定後待機位置に移動することを意味する。
【００３３】
ステップＳ１９において、制御部３は、ステップＳ１８で記述した移動命令文の後に、測定終了命令文を記述する。測定終了命令文は、以下の通りである。
ENDMES（図６のステップＳ１９の部分参照）
ステップＳ２０において、制御部３は、ステップＳ１９で記述した測定終了命令文の後に、公差設定命令文を記述する。公差設定命令文は、以下の通りである。
【００３４】
T(TOL)=TOL/CORTOL,XAXIS,-0.5000,0.5000
図６のステップＳ２０の部分に示すように、上述した公差設定命令文は、測定終了命令文の後ろに記述される。制御部３は、公差設定命令文のうち、図６の枠ｌの部分には、ステップＳ１３で読み出した公差またはステップＳ１４で入力された公差を記述する。
ステップＳ２１において、制御部３は、ステップＳ２０で記述した公差設定命令文の後に、測定結果出力命令文を記述する。測定結果出力命令文は、以下の通りである。
【００３５】
OUTPUT/FA(PNT1),TA(TOL)
図６のステップＳ２１の部分に示すように、上述した測定結果出力命令文は、公差設定命令文の後ろに記述される。制御部３は、測定結果出力命令文のうち、図６の枠ｍの部分には、現在のカウンタ数ｎに基づき、ｎ＝１の場合には（ＰＮＴ１）を記述する。
ステップＳ２２において、制御部３は、（現在のカウンタ数ｎ）＝（処理番号の最大値Ｎ）であるか否かを判定する。（現在のカウンタ数ｎ）＝（処理番号の最大値Ｎ）である場合には、ステップＳ２４に進み、（現在のカウンタ数ｎ）が（処理番号の最大値Ｎ）に達しない場合には、ステップＳ２３に進む。
【００３６】
ステップＳ２３において、制御部３は、ｎ＝ｎ＋１として、ステップＳ８に戻り、ｎ＝Ｎとなるまで、ステップＳ８からステップＳ２２の処理を繰り返す。すなわち、駆動プログラムの記述を、処理番号（ｎ）の順に繰り返し行う。
そして、（現在のカウンタ数ｎ）＝（処理番号の最大値Ｎ）となると、ステップＳ２４において、制御部３は、駆動プログラムの最後に駆動プログラム終了命令文を記述する。駆動プログラム終了命令文は、以下の通りである。
【００３７】
ENDFIL
ステップＳ２５において、制御部３は、駆動プログラムをステップＳ６で入力された名称で記憶部５に保存し、一連の処理を終了する。制御部３は、駆動プログラムを、この駆動プログラムの基となったステップＳ２で指定された表計算ファイルと関連付けて記憶する。
【００３８】
なお、プローブ接近方向、アプローチ距離、リトラクト距離については、各測定点の設計値等から制御部３により算出するようにしても良い。例えば、プローブ接近方向は、各測定点の三次元の設計値からその測定点に対する法線方向を推定し、その方向余弦をプローブ接近方向とするようにしても良い。また、アプローチ距離およびリトラクト距離は、被検査物の大きさや使用するプローブの大きさを基に想定するようにしても良い。
【００３９】
以上説明した手順で作成した駆動プログラムを三次元測定機により実行すると、三次元測定機は、被検査物Ｓに対して、９つの測定点（図２参照）において自動測定を行い、結果ファイルを作成する。
図７に結果ファイルの例を示す。図７の結果ファイルは、図４のステップＳ２１で説明した測定結果出力命令文にしたがって作成される。結果出力の内容については、三次元測定機に応じて定められる。図７の例では、上部のａの部分に実測値が配置され、下部のｂの部分に公差との比較等の結果が配置される。図７のａの部分には１，２列目に測定点の通し番号、３列目にｘ方向の実測値、４列目にｙ方向の実測値、５列目にｚ方向の実測値が示されている。また、図７のｂの部分には、１，２列目に測定点の通し番号、３列目にｘ方向の設計値、４列目の１，２行目にｘ方向の上限・下限公差、５列目にｘ方向の実測値、６列目の１行目に設計値と実測値との差分、２行目に設計値および実測値の差分と公差との差分が示されている。そして、５列目の右側に、どちらの方向にどの程度誤差が発生しているかを示す記号が記されている。図７の例においては、右向きの矢印によりプラス方向の誤差であることを示すとともに、＋のマークの位置によりどの程度誤差が発生しているかを示している。
【００４０】
図７のｂの部分において、ｘ方向についてのみ各値が示されているのは、ｘ方向についてのみ公差が指定されているためである。ｙ方向、ｚ方向についても公差が指定されている場合には、ｙ方向、ｚ方向についても同様に各値を示す。
次に、図８および図９のフローチャートを用いて、図３および図４のフローチャートにより作成された駆動プログラムにしたがって三次元測定機により被検査物Ｓを自動測定した際の評価ファイルを、駆動プログラム作成装置１により作成する手順について説明する。
【００４１】
ステップＳ４１において、制御部３は、評価ファイル作成プログラムを起動する。
ステップＳ４２において、制御部３は、駆動プログラム作成時に使用した表計算ファイルを読み出す。本実施形態では、図５で示した表計算ファイルを記憶部５から読み出す。
ステップＳ４３において、制御部３は、図３のステップＳ３と同様に表計算ファイルの処理番号を設定する。
【００４２】
ステップＳ４４において、制御部３は、図３のステップＳ４と同様に、Ｎ＝（処理番号の最大値、本実施形態では９）とする。
ステップＳ４５において、制御部３は、図３のステップＳ５と同様に、制御部３内の不図示のカウンタをｎ＝１とする。
ステップＳ４６において、制御部３は、図３のステップＳ６と同様に、画像表示部２にメッセージを表示するなどして、作成する評価ファイルのファイル名を入力するようユーザに促し、ファイル名が入力されたか否かを判定する。そして、ファイル名が入力されるまで待機し、名称が入力されると、ステップＳ４７に進む。ここでは、”tokutestR1”という名称が入力されたものとして、以下の説明を行う。
【００４３】
ステップＳ４７において、制御部３は、ステップＳ４２で読み出した表計算ファイル中のプローブ接近方向、アプローチ距離・リトラクト距離を削除する。図５に示した表計算ファイルには、上述したように、Ｄ列にｘ方向のプローブ接近方向、Ｅ列にｙ方向のプローブ接近方向、Ｆ列にｚ方向のプローブ接近方向、Ｇ列にアプローチ距離、Ｈ列にリトラクト距離が入力されているため（図５の表計算ファイルには実際には値は入力されていない）Ｄ列からＨ列を削除する。この処理により、Ｉ列からＮ列の下限・上限公差が、Ｄ列からＩ列に移動する。
【００４４】
ステップＳ４８において、制御部３は、ステップＳ４２で読み出した表計算ファイル中の公差（Ｘ，Ｙ，Ｚ方向）の各々に実測値列、誤差列、判定列を挿入する。この処理により、まず、Ｆ列にｘ方向の実測値列、Ｇ列にｘ方向の誤差列、Ｈ列にｘ方向の判定列を挿入し、Ｆ列、Ｇ列のｙ方向の下限・上限公差が、Ｉ列、Ｊ列に移動し、Ｈ列、Ｉ列のｚ方向の下限・上限公差が、Ｋ列、Ｌ列に移動する。そして、Ｋ列にｙ方向の実測値列、Ｌ列にｙ方向の誤差列、Ｍ列にｙ方向の判定列を挿入し、Ｋ列、Ｌ列のｚ方向の下限・上限公差が、Ｎ列、Ｏ列に移動する。さらに、Ｐ列にｚ方向の実測値列、Ｑ列にｚ方向の誤差列、Ｒ列にｚ方向の判定列を挿入する。
【００４５】
ステップＳ４９において、制御部３は、図３および図４のフローチャートにより作成された駆動プログラムにしたがって三次元測定機により被検査物Ｓを自動測定した際の結果ファイルを読み出す。ここでは、図７で説明した結果ファイルを読み出す。なお、結果ファイルは、どの部分にどのような値が入力されているかが認識可能であれば、どのような形式であっても良い。以下では、ｘ方向に付いてのみ説明を行う。ｙ方向、ｚ方向についても同様である。
【００４６】
ステップＳ５０において、制御部３は、ステップＳ４９で読み出した結果ファイルのｎ番目の測定結果を読み出し、表計算ファイルの処理番号ｎの行の実測値列（Ｆ列）に記入する。
ステップＳ５１において、制御部３は、（実測値（Ｆ列）−設計値（Ａ列））を算出し、表計算ファイルの処理番号ｎの行の誤差列（Ｇ列）に入力する。
【００４７】
ステップＳ５２において、制御部３は、ステップＳ４９で読み出した結果ファイルのｎ番目に公差が入力されているか否かを判定する。図５に示す表計算ファイルには、上述したように、Ｉ列、Ｊ列にｘ方向の下限・上限公差が入力される。ステップＳ４７およびステップＳ４８の処理により、ｘ方向の下限・上限公差は、Ｄ列、Ｅ列に移動しているので、ｎ＝１の場合、ステップＳ４２で読み出した表計算ファイルの１行目のＤ列、Ｅ列に、何らかの数値が入力されているか否かを判定し、入力されている場合には、ステップＳ５４に進み、入力されていない場合には、ステップＳ５３に進む。
【００４８】
ステップＳ５３において、制御部３は、結果ファイルのｎ番目の公差を読み出し、ステップＳ４２で読み出した表計算ファイルの処理番号ｎの行の公差列（Ｄ列、Ｅ列）に入力する。
ステップＳ５４において、制御部３は、表計算ファイルの誤差列と公差とを比較し、許容外であれば、判定列（Ｈ列）に”否”を記入する。なお、判定結果を分かり易く表示できれば、許容内である場合に”可”を記入するなど、他の方法であっても良い。
【００４９】
ステップＳ５５において、制御部３は、（現在のカウンタ数ｎ）＝（処理番号の最大値Ｎ）であるか否かを判定する。（現在のカウンタ数ｎ）＝（処理番号の最大値Ｎ）である場合には、ステップＳ５７に進み、（現在のカウンタ数ｎ）が（処理番号の最大値Ｎ）に達しない場合には、ステップＳ５６に進む。
ステップＳ５６において、制御部３は、ｎ＝ｎ＋１として、ステップＳ５０に戻り、ｎ＝Ｎとなるまで、ステップＳ５０からステップＳ５５の処理を繰り返す。すなわち、評価ファイルの作成を、処理番号（ｎ）の順に繰り返し行う。
【００５０】
そして、（現在のカウンタ数ｎ）＝（処理番号の最大値Ｎ）となると、ステップＳ５７において、制御部３は、評価ファイルをステップＳ４６で入力された名称で記憶部５に保存し、一連の処理を終了する。なお、制御部３は、評価ファイルを、この評価ファイルの基となったステップＳ４２で読み出した表計算ファイルおよびステップＳ４９で読み出した結果ファイルと関連付けて記憶する。なお、評価ファイルを、表計算ファイルと別ファイルとして保存する代わりに、評価ファイルを、表計算ファイルの別シートの形式で保存するようにしても良い。
【００５１】
以上説明した手順で作成した評価ファイルの例を図１０に示す。図１０の評価ファイルにより、ユーザは、自動測定の結果と評価とを分かり易く把握することができる。
以上説明したように、本実施形態によれば、対象物体に対して、三次元で移動可能な可動部を備えた装置（三次元測定機）を駆動するための駆動プログラムを作成する際に、対象物体に関わる三次元の設計値を含む表計算ファイルを取得し、取得した表計算ファイルの設計値に基づいて、装置（三次元測定機）を駆動するための駆動プログラム（オフラインティーチングプログラム）を作成する。したがって、三次元の設計値を含む表計算ファイルを基に、簡便に駆動プログラムを作成することができる。特に、本実施形態によれば、装置を占有することなしに駆動プログラムの作成が可能であり、また、高価なソフトウェアを利用することなしに駆動プログラムの作成が可能である。
【００５２】
また、本実施形態によれば、作成したオフラインティーチングプログラムにしたがって、三次元測定機を駆動した際の測定結果を取得し、取得した測定結果と、オフラインティーチングプログラムを作成した際に取得した表計算ファイルとに基づいて、測定結果および評価結果を含む表計算ファイルを作成する。したがって、オフラインティーチングプログラムを作成した際に取得した表計算ファイルを基に、簡便に評価ファイルを作成することができる。特に、本実施形態によれば、汎用性の高い表計算ファイルの形式で評価ファイルを作成するので、保存・管理・他部門への伝達の面からも見ても有用である。また、評価ファイルを自動作成可能であるため、作業を軽減することができる。
【００５３】
なお、本実施形態では、対象物体に対して、三次元で移動可能な可動部を備えた装置の一例として、三次元測定機を例に挙げ説明を行ったが、他の装置の駆動プログラムも同様に作成することができる。例えば、産業用ロボットのアームの駆動プログラム、レーザスキャンニング装置の駆動プログラム、デジタイザーの駆動プログラム、削り出し加工機の駆動プログラムなども同様に作成することができる。
【００５４】
また、本実施形態では、三次元の設計値として直交座標系(Ｘ，Ｙ，Ｚ座標)における設計値を用いて説明を行ったが、円筒座標系(Ｒ，θ，Ｈ座標)や極座標系(Ｒ，θ，φ座標)における設計値を用いても同様に駆動プログラムを作成することができる。
また、本実施形態では、オフラインティーチングプログラムの一例として、ＤＭＩＳ形式のファイルを作成する場合を例に挙げて説明を行ったが、他の形式のファイルについても、同様に駆動プログラムを作成することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明の駆動プログラム作成装置１の機能ブロック図である。
【図２】被検査物Ｓを説明する図である。
【図３】駆動プログラム作成装置１により駆動プログラムを作成する際の動作を示すフローチャートである。
【図４】駆動プログラム作成装置１により駆動プログラムを作成する際の動作を示すフローチャートである（続き）。
【図５】駆動プログラムの基となる表計算ファイルの例である。
【図６】記述される駆動プログラムの例である。
【図７】結果ファイルの例である。
【図８】駆動プログラム作成装置１により評価ファイルを作成する際の動作を示すフローチャートである。
【図９】駆動プログラム作成装置１により評価ファイルを作成する際の動作を示すフローチャートである（続き）。
【図１０】評価ファイルの例である。
【符号の説明】
【００５６】
１，駆動プログラム作成装置  ２，画像表示部  ３，制御部  ４，操作部  ５，記憶部  ６，通信部  １０，コンピュータ                                                                              
【図１】
2006318406.tif 000005
【図２】
2006318406.tif 000006
【図３】
2006318406.tif 000007
【図４】
2006318406.tif 000008
【図５】
2006318406.tif 000009
【図６】
2006318406.tif 000010
【図７】
2006318406.tif 000011
【図８】
2006318406.tif 000012
【図９】
2006318406.tif 000013
【図１０】
2006318406.tif 000014