(57)【特許請求の範囲】
【請求項１】
先端に測定子を有するプローブと、前記プローブを移動させる移動機構と、を備え、前記測定子とワークの表面との接触を検知して前記ワークの形状を測定する形状測定装置の制御方法であって、
前記測定対象物の設計データに基づいて前記測定子を移動させる倣い経路を求め、
前記プローブの前記測定対象物への押込み量を基準押込み量に保つように制御しながら前記測定子を前記倣い経路に沿って移動させる倣い測定において、
一の測定箇所の倣い測定が終了したあと、プローブをワークから離間させる動作としてリトラクションを実行するものであって、
前記測定子と前記ワークとが接触した状態から前記測定子を前記ワークから離間させるリトラクションを実行させるにあたって、
前記リトラクション動作の一つ前の移動指令であって、前記一の測定箇所を測定するための最終の移動指令によって指令される位置を最終指令位置Ｐｎとし、
前記最終指令位置Ｐｎにおいて前記押込み量を前記基準押込み量に保つように制御したときに前記測定子が到達した位置を最終位置決め点Ｐｎ'とするとき、
前記最終指令位置Ｐｎと前記最終指令位置Ｐｎに対応する前記最終位置決め点Ｐｎ'とのズレ量Ｌｓを求め、
前記ズレ量Ｌｓと予め指定された指定リトラクション長ＬＲとを対比し、
Ｌｓ＜β・ＬＲを満たす場合には前記指定リトラクション長ＬＲでリトラクションを実行し、
Ｌｓ＜β・ＬＲを満たさない場合には、前記指定リトラクション長ＬＲよりも短い値に設定されたエラー回避用リトラクション長Ｌｒ'によりリトラクションを実行する
ことを特徴とする形状測定装置の制御方法。
βは、０＜β＜１である。
【請求項２】
請求項１に記載の形状測定装置の制御方法において、
エラー回避用リトラクション長Ｌｒ'によりリトラクションを実行した後、前記プローブとワークとの接触を検知した場合には、前記最終位置決め点Ｐｎ'に戻る
ことを特徴とする形状測定装置の制御方法。
【請求項３】
請求項２に記載の形状測定装置の制御方法において、
前記最終位置決め点Ｐｎ'に戻り、さらに、前記エラー回避用リトラクション長Ｌｒ'よりも短くしたリトラクション長Ｌｒ'によりリトラクションを実行する
ことを特徴とする形状測定装置の制御方法。
【請求項４】
請求項１から請求項３のいずれかに記載の形状測定装置の制御方法において、
前記エラー回避用リトラクション長Ｌｒ'でリトラクションを実行する際のリトラクションの方向は、プローブのセンサ出力に基づいて求められる被測定面の法線方向である
ことを特徴とする形状測定装置の制御方法。
【請求項５】
請求項１に記載の形状測定装置の制御方法において、
前記エラー回避用リトラクション長Ｌｒ'は、０．１ｍｍから０．５ｍｍの範囲から選択される値である
ことを特徴とする形状測定装置の制御方法。
【請求項６】
請求項１から請求項５のいずれかに記載の形状測定装置の制御方法をコンピュータに実行させる形状測定装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形状測定装置の制御方法に関する。
【背景技術】
【０００２】
被測定物の表面に沿って測定子を倣い移動させることで被測定物の形状を測定する形状測定装置が知られている（例えば、特許文献１参照）。特許文献１に記載の装置では、まず、ＣＡＤデータ等に基づいた設計値（例えばＮＵＲＢＳ（Ｎｏｎ−ＵｎｉｆｏｒｍＲａｔｉｏｎａｌＢ−Ｓｐｌｉｎｅ：非一様有理Ｂスプライン）データ）を所定次数の多項式曲線群に変換する。
ここでは、多項式として三次関数を用い、ＰＣＣ曲線群（ＰａｒａｍｅｔｒｉｃＣｕｂｉｃＣｕｒｖｅｓ）とする。このＰＣＣ曲線を元にワークを測定する経路を生成する。さらに、ＰＣＣ曲線を分割して分割ＰＣＣ曲線群とする。
分割ＰＣＣ曲線群から速度曲線を算出してプローブの移動速度（移動ベクトル）を算出する。（例えば分割ＰＣＣ曲線群の各セグメントの曲率などに基づいてプローブの移動速度（移動ベクトル）を設定する。）このように算出された移動速度に基づいてプローブを移動させ、被測定物の表面に倣って測定子を移動させる（パッシブ設計値倣い測定）。
【０００３】
さらに、プローブの押し込み量を一定にするように押込み修正ベクトルを時々刻々算出して、軌道修正しながら倣い測定する方法も知られている（特許文献２）。ここでは、このような設計値倣いを「アクティブ設計値倣い測定」と称することにする。
【０００４】
測定箇所を倣い測定した後、プローブをワークから離間させる。そして、全測定が終了であれば、プローブを初期の待機位置に戻す。あるいは、次の測定箇所があるならば、続けて、次の測定開始位置にプローブを移動させることになる。
プローブをワークから離間させる動作をリトラクションと称する。
【０００５】
まず、リトラクションの方向Ｄｒは、プローブのセンサ出力から求められる。つまり、プローブのセンサ出力に基づいて測定面の法線方向は分かる。この法線方向がリトラクションの方向Ｄｒとなる。
リトラクション長ＬＲは、指定リトラクション長ＬＲとして予め与えられている。例えば、指定リトラクション長ＬＲは４ｍｍというように与えられる。
指定リトラクション長ＬＲは、次の移動を行うにあたってプローブとワークとの安全が確保できる程度には十分な離間量になっていなければならない。その一方、リトラクション時にプローブがワークに接触するほどに大きな値になっていてもいけない。指定リトラクション長ＬＲが大きすぎると、リトラクション時にワークの対向面にプローブが接触する可能性がある。
指定リトラクション長ＬＲが適切かどうかは、例えば、ワークの設計データ（例えばＣＡＤデータ）に基づいて確認することができる。
【０００６】
倣い測定のパートプログラムにおいて、倣い測定の終点に達したら次の指令として「リトラクション」が指示（プログラミング）されている。したがって、倣い測定の終点に達したら、センサ出力からリトラクション方向Ｄｒを求め、指定されているリトラクション長ＬＲで測定面からリトラクションする。このリトラクションでプローブが測定面から離間したら、次に指定されている移動先の座標に移動する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２４１４２０号公報
【特許文献２】特開２０１３−２３８５７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のようにリトラクションが実行されるのであるが、リトラクション時にワークとプローブとが接触してエラーが発生することがしばしば生じていた。
この原因の一つとして、設計値と実際のワークとの間に誤差があることが挙げられる。
リトラクション時にワークとプローブとが接触した場合、プローブおよびワークが破損しないように、接触を検知した時点で即時に緊急停止し、ユーザに異常発生を報知するようにしていた。
しかし、このような緊急停止がしばしば発生すると、測定効率が低下してしまう。
緊急停止が発生すると、ユーザがマニュアルでエラーを解除し、さらに、プローブを安全な位置に退避させるという作業が必要になる。これにはかなりの専門技量も要求される。
【０００９】
さらには、同じエラーがでないようにするにはリトラクション長をマニュアルで設定し直す必要があるが、これにはさらに高度な専門技量を要する。ユーザにとってはかなり面倒な作業であり、測定効率も下がってしまう。
【００１０】
本発明の目的は、設計値からのずれがやや大きいワークに対しても測定動作を継続する形状測定装置の制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の形状測定装置の制御方法は、
先端に測定子を有するプローブと、前記プローブを移動させる移動機構と、を備え、前記測定子とワークの表面との接触を検知して前記ワークの形状を測定する形状測定装置の制御方法であって、
前記測定子と前記ワークとが接触した状態から前記測定子を前記ワークから離間させるリトラクションを実行させるにあたって、
最終指令位置Ｐｎと最終指令位置Ｐｎに対応する最終位置決め点Ｐｎ'とのズレ量Ｌｓを求め、
前記ズレ量Ｌｓと予め指定された指定リトラクション長ＬＲとを対比し、
Ｌｓ＜β・ＬＲを満たす場合には前記指定リトラクション長ＬＲでリトラクションを実行し、
Ｌｓ＜β・ＬＲを満たさない場合には、前記指定リトラクション長ＬＲよりも短い値に設定されたエラー回避用リトラクション長Ｌｒ'によりリトラクションを実行する
ことを特徴とする。
βは、０＜β＜１である。
【００１２】
本発明では、
エラー回避用リトラクション長Ｌｒ'によりリトラクションを実行した後、前記プローブとワークとの接触を検知した場合には、前記最終位置決め点Ｐｎ'に戻る
ことが好ましい。
【００１３】
本発明では、
前記最終位置決め点Ｐｎ'に戻り、さらに、前記エラー回避用リトラクション長Ｌｒ'よりも短くしたリトラクション長Ｌｒ'によりリトラクションを実行する
ことが好ましい。
【００１４】
本発明では、
前記エラー回避用リトラクション長Ｌｒ'でリトラクションを実行する際のリトラクションの方向は、プローブのセンサ出力に基づいて求められる被測定面の法線方向である
ことが好ましい。
【００１５】
本発明では、
前記エラー回避用リトラクション長Ｌｒ'は、０．１ｍｍから０．５ｍｍの範囲から選択される値である
ことが好ましい。
より好ましくは、前記エラー回避用リトラクション長Ｌｒ'は、０．１ｍｍから０．３ｍｍの範囲から選択される値とすることが好ましい。
【００１６】
本発明の形状測定装置の制御方法は、
先端に測定子を有するプローブと、前記プローブを移動させる移動機構と、を備え、前記測定子とワークの表面との接触を検知して前記ワークの形状を測定する形状測定装置の制御方法であって、
前記測定子と前記ワークとが接触した状態から前記測定子を前記ワークから離間させるリトラクション時に、前記測定子と前記ワークとの接触の有無を監視し、
前記リトラクション時に前記測定子と前記ワークとの接触を検知した場合には、前記測定子が前記ワークに接触しない位置に前記プローブを移動させる
ことを特徴とする。
【００１７】
本発明では、
前記リトラクション時に前記測定子と前記ワークとの接触を検知した場合には、この前記測定子と前記ワークとの接触点Ｐｃｏの座標をサンプリングする
ことが好ましい。
【００１８】
本発明では、
リトラクション開始点におけるワーク表面上の点Ｐｓｆと、前記測定子と前記ワークとの接触点Ｐｃｏと、の距離Ｌｍを求め、
この距離Ｌｍと前記測定子の径とに基づいて適正リトラクション量Ｌｒを設定し、
リトラクションの開始点からリトラクションの方向に前記適正リトラクション量Ｌｒだけ移動した点をリトラクション停止点Ｐｒとし、
前記測定子を前記リトラクション停止点Ｐｒに移動させる
ことが好ましい。
【００１９】
本発明では、
前記適正リトラクション量Ｌｒは、前記測定子の直径をｄとし、１未満の正の整数である所定の係数ｋ（０＜ｋ＜１）を用い、
Ｌｒ＝（Ｌｍ−ｄ）×ｋ
とする
ことが好ましい。
【００２０】
本発明の形状測定装置の制御プログラムは、
前記形状測定装置の制御方法をコンピュータに実行させる。
この形状測定装置の制御プログラムは、コンピュータ読取可能な不揮発性記録媒体に記録して配布するようにしてもよい。
【図面の簡単な説明】
【００２１】
【図１】形状測定システムの全体構成を示す図である。
【図２】モーションコントローラおよびホストコンピュータの機能ブロック図である。
【図３】エラー修正付き設計値倣い測定の動作を説明するための全体フローチャートである。
【図４】準備工程（ＳＴ１００）の手順を示すフローチャートである。
【図５】リカバリーモードのＯＮ／ＯＦＦをユーザに選択させる選択画面の例を示す図である。
【図６】細い孔を持つワークをアクティブ設計値倣い測定で測定する様子を示す図である。
【図７】実際のワークと設計データとの間にズレが生じている場合を例示する図である。
【図８】図７のワークをアクティブ設計値倣い測定で測定する様子を示す図である。
【図９】リカバリー処理（ＳＴ１５０）の動作手順を示すフローチャートである。
【図１０】リカバリー処理を説明するための図である。
【図１１】エラー処理（ＳＴ１７０）の手順を示すフローチャートである。
【図１２】第２実施形態「エラー回避機能付き設計値倣い測定」の動作を説明するためのフローチャートである。
【図１３】準備工程（ＳＴ２００）の手順を示すフローチャートである。
【図１４】エラー回避モードのＯＮ／ＯＦＦをユーザに選択させる選択画面の例を示す図である。
【図１５】設計データ通りに加工された細孔をアクティブ設計値倣い測定で測定する様子である。
【図１６】設計データから若干ズレたワークをアクティブ設計値倣い測定で測定する様子である。
【図１７】設計データからズレたワークをアクティブ設計値倣い測定で測定する様子である。
【図１８】エラー回避処理の前準備の手順を示すフローチャートである。
【図１９】エラー回避処理（ＳＴ３００）の具体的手順を説明するためのフローチャートである。
【図２０】Ｌｒ'＝１．７ｍｍでリトラクションした状態を示す図である。
【図２１】座標値Ｐｎ'から１．４ｍｍリトラクションした状態を例示する図である。
【図２２】エラー処理（ＳＴ２６０）の手順を示すフローチャートである。
【図２３】変形例２を示すフローチャートである。
【図２４】リトラクション長が短すぎる場合の問題を例示するための図である。
【発明を実施するための形態】
【００２２】
本発明の実施形態を図示するとともに図中の各要素に付した符号を参照して説明する。
（第１実施形態）
図１は、形状測定システム１００の全体構成を示す図である。
形状測定システム１００の基本的な構成は既に知られたものであるが、簡単に説明しておく。
形状測定システム１００は、三次元測定機２００と、三次元測定機２００の駆動を制御するモーションコントローラ３００と、モーションコントローラ３００を制御すると共に必要なデータ処理を実行するホストコンピュータ５００と、を備える。
【００２３】
三次元測定機２００は、定盤２１０と、移動機構２２０と、プローブ２３０と、を備える。
【００２４】
移動機構２２０は、定盤２１０上をＹ方向にスライド可能に設けられた門型のＹスライダ２２１と、Ｙスライダ２２１のＸ方向のビームに沿ってスライドするＸスライダ２２２と、Ｘスライダ２２２に固定されたＺ軸コラム２２３と、Ｚ軸コラム２２３内をＺ方向に昇降するＺスピンドル２２４と、を備える。
【００２５】
Ｙスライダ２２１、Ｘスライダ２２２およびＺスピンドル２２４には、それぞれ駆動モータ（不図示）とエンコーダ（不図示）とが付設されている。モーションコントローラ３００からの駆動制御信号によって各駆動モータが駆動制御される。エンコーダは、Ｙスライダ２２１、Ｘスライダ２２２およびＺスピンドル２２４それぞれの移動量を検出し、検出値をモーションコントローラ３００に出力する。Ｚスピンドル２２４の下端にプローブ２３０が取り付けられている。
【００２６】
プローブ２３０は、測定子２３２を先端側（−Ｚ軸方向側）に有するスタイラス２３１と、スタイラス２３１の基端側（＋Ｚ軸方向側）を支持する支持部２３３と、を備える。測定子２３２は、球状であって、被測定物Ｗに接触する。
【００２７】
支持部２３３は、スタイラス２３１に外力が加わった場合、すなわち測定子２３２が被測定物に当接した場合にはスタイラス２３１が一定の範囲内でＸ、Ｙ、Ｚ軸の各軸方向に移動可能となるようにスタイラス２３１を支持している。さらに、支持部２３３は、スタイラス２３１の各軸方向の位置をそれぞれ検出するためのプローブセンサー（不図示）を備える。プローブセンサは検出値をモーションコントローラ３００に出力する。
【００２８】
（モーションコントローラ３００の構成）
図２は、モーションコントローラ３００およびホストコンピュータ５００の機能ブロック図である。
モーションコントローラ３００は、ＰＣＣ取得部３１０と、カウンタ部３２０と、経路算出部３３０と、駆動制御部３４０と、を備える。
【００２９】
ＰＣＣ取得部３１０は、ホストコンピュータ５００からＰＣＣ曲線データを取得する。カウンタ部３２０は、エンコーダから出力される検出信号をカウントして各スライダの変位量を計測するとともに、各プローブセンサから出力される検出信号をカウントしてプローブ２３０（スタイラス２３１）の変位量を計測する。計測されたスライダおよびプローブ２３０の変位から測定子２３２の座標位置Ｐｐ（以下、プローブ位置Ｐｐ）が得られる。また、カウンタ部３２０にて計測されたスタイラス２３１の変位（プローブセンサの検出値（Ｐｘ，Ｐｙ，Ｐｚ））から、測定子２３２の押込み量（ベクトルＥｐの絶対値）が得られる。
【００３０】
経路算出部３３０は、プローブ２３０（測定子２３２）で被測定物表面を測定するためのプローブ２３０（測定子２３２）の移動経路を算出し、その移動経路に沿った速度成分ベクトル（経路速度ベクトル）を算出する。経路算出部３３０は、測定方式（測定モード）に応じた経路を算出する各機能部を具備している。具体的には、パッシブ設計値倣い測定、アクティブ設計値倣い測定、自律倣い測定、ポイント測定、の４つがある。各測定方式については、必要に応じて後述する。さらに、アクティブ設計値倣い測定の機能部にはリカバリー処理部が付設されている。リカバリー処理部の動作は後述する。
【００３１】
駆動制御部３４０は、経路算出部３３０にて算出された移動ベクトルに基づいて、各スライダを駆動制御する。
【００３２】
なお、モーションコントローラ３００には、手動コントローラ４００が接続されている。手動コントローラ４００は、ジョイスティックおよび各種ボタンを有し、ユーザからの手動入力操作を受け付け、ユーザの操作指令をモーションコントローラ３００に送る。この場合、モーションコントローラ３００（駆動制御部３４０）は、ユーザの操作指令に応じて各スライダを駆動制御する。
【００３３】
（ホストコンピュータ５００の構成）
ホストコンピュータ５００は、ＣＰＵ５１１（ＣｅｎｔｒａｌＰｒｏｃｅｓｓｉｎｇＵｎｉｔ）やメモリ等を備えて構成され、モーションコントローラ３００を介して三次元測定機２００を制御する。
ホストコンピュータ５００は、さらに、記憶部５２０と、形状解析部５３０と、を備える。
記憶部５２０は、被測定物（ワーク）Ｗの形状に関する設計データ（ＣＡＤデータやＮＵＲＢＳデータ等）、測定で得られた測定データ、および、測定動作全体を制御する測定制御プログラムを格納する。
【００３４】
形状解析部５３０は、モーションコントローラ３００から出力された測定データに基づいて被測定物の表面形状データを算出し、算出した被測定物の表面形状の誤差や歪み等を求める形状解析を行う。また、形状解析部５３０は、設計データ（ＣＡＤデータやＮＵＲＢＳデータ等）からＰＣＣ曲線への変換等の演算処理も担う。
【００３５】
ＣＰＵ５１１（中央処理装置）で測定制御プログラムを実行することにより本実施形態の測定動作が実現される。
【００３６】
ホストコンピュータ５００には、必要に応じて、出力装置（ディスプレイやプリンタ）および入力装置（キーボードやマウス）が接続されている。
【００３７】
（測定動作の説明）
順を追って測定動作を説明する。
本実施形態は、エラーを自動修正する機能が付いた設計値倣い測定であり、「エラー修正付き設計値倣い測定」と称することにする。
本実施形態の手順を図３に示し、順を追って説明する。
図３は、エラー修正付き設計値倣い測定の動作を説明するための全体フローチャートである。
【００３８】
まず、倣い測定に必要な準備を行う（準備工程ＳＴ１００）。
準備工程（ＳＴ１００）はホストコンピュータ５００により実行される。
（フローチャートのボックスに"Ｈ"と記したのはホストコンピュータ５００によって実行されると解釈されたい。
"Ｈ"を付していないボックスはモーションコントローラ３００によって実行されると解釈されたい。）
図４に、準備工程（ＳＴ１００）の手順を示した。
ユーザは、測定対象となるワークを定盤２１０上に設置するとともに、このワークの設計データを記憶部５２０に格納しておく。ワークの設計データは"オリジナルデータ"として記憶部５２０に格納される（ＳＴ１０１）。
【００３９】
次に、ホストコンピュータ５００は、ユーザの選択に応じて、モーションコントローラ３００に設計値倣い測定を指令する（ＳＴ１０２）。ここでは、アクティブ設計値倣い測定を指令することとする。
【００４０】
ホストコンピュータ５００は、ユーザによってアクティブ設計値倣い測定が選択された場合、ユーザにモードの選択を要求する（ＳＴ１０３）。例えば、図５のような選択画面をディスプレイに表示し、リカバリーモードのＯＮ／ＯＦＦをユーザに選択させる。リカバリーモードの選択の有無はホストコンピュータ５００からモーションコントローラ３００に送られる。リカバリーモードがＯＮのときには必要に応じてリカバリー処理（ＳＴ１５０）が実行されるようになる。リカバリー処理（ＳＴ１５０）については、後述する。ここまでで準備工程（ＳＴ１００）は終了である。
【００４１】
準備工程（ＳＴ１００）を受けてモーションコントローラ３００は、ワークをアクティブ設計値倣いで測定する（ＳＴ１１０）。アクティブ設計値倣い測定そのものは知られたものであり、例えば特開２０１３−２３８５７３号公報に詳しく開示されている。
【００４２】
詳細は割愛するが、アクティブ設計値倣い測定を簡単に説明しておく。
オリジナルデータは例えばＣＡＤデータ（例えばＮＵＲＢＳデータ）である。
まず、ＣＡＤデータ（例えばＮＵＲＢＳデータ）を点群のデータに変換する。
各点のデータは、座標値（ｘ、ｙ、ｚ）と法線方向（Ｐ、Ｑ、Ｒ）とを組み合わせたデータである。（つまり、（ｘ、ｙ、ｚ、Ｐ、Ｑ、Ｒ）である。）
各点の座標値を法線方向に所定量だけオフセットする。
（所定量とは、具体的には、測定子半径ｒ―基準押込み量Ｅ０である。）このようにして求めた点群データをＰＣＣ曲線群に変換する。ＰＣＣ曲線群をさらに複数の点でセグメント（分割ＰＣＣ曲線）に分割する。
ここまでの処理はホストコンピュータ５００内で演算処理される。
このようにして生成されたＰＣＣ曲線はモーションコントローラ３００に送られ、ＰＣＣ取得部３１０に一旦格納される。
【００４３】
経路算出部３３０は、取得されたＰＣＣ曲線を元に、ワークを測定するための経路を生成する。経路算出部３３０は、測定方式に応じた経路を生成する。
ここでは、アクティブ設計値倣い測定が選択されているので、アクティブ設計値倣い測定のための経路を生成する。
（ちなみに、アクティブ設計値倣い測定とパッシブ設計値倣い測定とでは、生成される経路は同じである。）
そして、経路算出部３３０は、分割ＰＣＣ曲線の曲率等に応じてプローブ２３０の移動速度を設定し、ＰＣＣ曲線上の各点における移動方向および移動速さ（速度ベクトル）を決定する。
この移動ベクトルに従ってプローブ２３０を移動させれば設計値倣い測定が実現される。
【００４４】
さらに、アクティブ設計値倣い測定の場合、押込み量Ｅｐが一定になるように法線方向のベクトル（押込み修正ベクトル）を生成するとともに、現在の測定子２３２の中心座標と経路とのずれを修正する軌道修正方向のベクトル（軌道修正ベクトル）を生成する。
そして、速度ベクトルと押込み修正ベクトルと軌道修正ベクトルとを合成した合成速度ベクトルを生成する。
駆動制御部３４０は、合成速度ベクトルに従って三次元測定機２００に駆動信号を与える。
これにより、三次元測定機２００は、ワークをアクティブ設計値倣い測定で測定する。
【００４５】
モーションコントローラ３００からの駆動信号によって三次元測定機２００が駆動され、アクティブ設計値倣い測定が実行される（ＳＴ１１０）。三次元測定機２００から検出値（プローブセンサ検出値およびエンコーダ検出値）がモーションコントローラ３００を介してホストコンピュータ５００にフィードバックされる。測定で得られたデータは記憶部５２０に記録されていく。
【００４６】
アクティブ設計値倣い測定を実行しつつ（ＳＴ１１０）、モーションコントローラ３００は、リトラクション動作中にプローブ２３０（測定子２３２）とワークとの想定外の接触がないか監視する（ＳＴ１２０）。接触がなければ（ＳＴ１２０：ＮＯ）、測定対象（例えばワーク全体）を全て測定するまでＳＴ１１０、ＳＴ１２０をループし、測定対象（例えばワーク全体）を全て測定できたら（ＳＴ１６０：ＹＥＳ）終了である。
【００４７】
ここで、アクティブ設計値倣い測定時の動作を例示する。
図６に、細い孔を持つワークＷをアクティブ設計値倣い測定で測定する様子を示す。
図６においては、設計データの通りにワークＷが加工されているとする。
設計値倣い測定の経路（ＰＣＣ曲線）は、設計データを元にして、設計データに所定のオフセットを加味したものになる。（アクティブ）設計値倣い測定を行うと、経路（ＰＣＣ曲線）上の補間点（ｉ）から次の補間点（ｉ＋１）へ測定子２３２が移動するように三次元測定機２００が駆動制御される。
【００４８】
いま、図６中の点Ｐｎで細孔部分の測定が終了し、次の測定対象箇所（例えば隣の細孔部分）にプローブ２３０が移動するとする。
このとき、点Ｐｎの地点でプローブ２３０がワークから離間するリトラクションを行う。
図６ではワークが設計データ通りに加工されている。
したがって、リトラクション時にプローブ２３０（測定子２３２）がプローブ２３０（測定子２３２）とワークとが接触するおそれはない。
ここで、図６中、ＬＲは、設計値に基づくリトラクション経路でリトラクションを行うときのリトラクション長である。
これを指令リトラクション長ＬＲとする。
【００４９】
次に、図７においては、設計データに従ってワークが加工されたのであるが、若干の加工誤差が生じた場合を例示している。
工作機械の精度の高低により、実際に出来上がったワークは設計データから多少ずれるのはやむ得ないことである。
この場合でも、（アクティブ）設計値倣い測定の経路は設計データを元にして生成される。
【００５０】
図８は、図７のワークをアクティブ設計値倣い測定で測定する様子を示す図である。
アクティブ設計値倣い測定では、押込み量Ｅｐを一定とする軌道修正により、測定子２３２がワーク表面に沿って倣い移動する。
したがって、図７（図８）のように設計データと実際のワークとの間にズレがあってもプローブ２３０は倣い測定を継続する。
【００５１】
アクティブ設計値倣い測定が継続された結果、点Ｐｎ'にプローブ２３０（測定子２３２）が到達したとする。
点Ｐｎ'は、押し込み量Ｅｐを一定にすべく点Ｐｎを軌道修正した点に相当する。
点Ｐｎ'に到達したら、リトラクションを行う。
このとき、指定リトラクション長ＬＲでリトラクションを行うと、プローブ２３０（測定子２３２）とワークとが接触してしまう場合がある（ＳＴ１２０：ＹＥＳ）。
【００５２】
なお、アクティブ設計値倣い測定ではなくてパッシブ設計値倣い測定を実行する場合、設計データと実際のワークとの間にズレ（例えば０．数ｍｍ程度のズレ）があると、プローブ２３０（測定子２３２）とワークとが離れてしまったり、プローブ２３０が押し込み過ぎになったりしてエラーが発生する。
このようなエラーが発生した場合、設計値倣い測定自体が不能となって三次元測定機２００は動作を停止する。
すなわち、図７（図８）のように設計値とワークとのズレがあると、パッシブ設計値倣い測定ではプローブ２３０（測定子２３２）が細孔の奥まで入ることがない。
【００５３】
ちなみに、アクティブ設計値倣い測定であっても許容できるズレの大きさは予め設定されていることが多い。
設計値倣い測定の経路と実際の測定子２３２の位置とのズレを軌道誤差ΔＬと称する。
軌道誤差ΔＬの許容値は、例えば、１．５ｍｍ程度に設定される。
軌道誤差ΔＬが１．５ｍｍを超えてしまっていると、アクティブ設計値倣い測定といえども軌道修正不可能となり、アクティブ設計値倣い測定自体がエラーとなる。
この場合、エラーにより、三次元測定機２００は動作を停止する。
【００５４】
一方、軌道誤差ΔＬが１．５ｍｍ以内であればアクティブ設計値倣い測定が継続されることになる。
アクティブ設計値倣い測定により、設計データからのズレが大きいワークであってもエラー無しで倣い測定を継続できるようになった。
これ自体はユーザにとって便利になったと言えるが、パッシブ設計値倣い測定では極まれにしか起こり得なかったリトラクション時の接触がしばしば生じる可能性がでてきたわけである。
しかも、細い孔のなかでプローブが停止した場合、マニュアルでの復帰は若干の困難を伴うかもしれない。孔の中は直接目視できないことも有り得る。
【００５５】
さて、リトラクション時の接触が発生した場合（ＳＴ１２０：ＹＥＳ）の動作を説明する。
モーションコントローラ３００は、リトラクション時にプローブ２３０（測定子２３２）がワークに接触したことを検知した場合、すぐにプローブ２３０の移動を停止させる（ＳＴ１３０）。すなわち、リトラクション時にプローブ２３０が押し込まれたことを検知したら、三次元測定機２００の動作を一時停止させる。
【００５６】
そして、リカバリーモードが選択されているかを確認する。リカバリーモードが選択されている場合（ＳＴ１４０：ＹＥＳ）、リカバリー処理（ＳＴ１５０）に移行する。
【００５７】
リカバリー処理（ＳＴ１５０）を具体的に説明する。
図９は、リカバリー処理（ＳＴ１５０）の動作手順を示すフローチャートである。
リカバリー処理にあたって、モーションコントローラ３００は、まず、リカバリー処理に移行したことをホストコンピュータ５００に通知する（ＳＴ１５１）。ホストコンピュータ５００は、リカバリー処理に移行したことをユーザに通知する（例えばディスプレイに表示する）とともに、測定データの記録等の測定動作を一時待機状態にする。
【００５８】
続いて、モーションコントローラ３００は、接触位置の算出を行う（ＳＴ１５２）。すなわち、エンコーダから出力される検出信号により各スライダの位置を求め、さらに、プローブセンサから出力される検出信号をカウントしてプローブ２３０（スタイラス２３１）の変位量を求める。これにより測定子２３２の中心座標Ｐｐ（プローブ位置Ｐｐ）が得られるので、さらに、押し込み方向に測定子２３２の半径分のオフセットを加味して、ワークと測定子２３２との接触点Ｐｃｏを求める（図１０参照）。
【００５９】
これは、いわゆるポイント測定と同じであり、所定の押し込み量（例えば０．３ｍｍ）になったときに座標をサンプリングすることで接触点Ｐｃｏの正確な座標を得る。
【００６０】
次に、最終指令位置（Ｐｎ）に対応する最終位置決め位置（Ｐｎ´）のワーク表面上の点（Ｐｓｆ）を求めて、ＰｓｆとＰｃｏとの距離Ｌｍを求める（ＳＴ１５３）。
この距離Ｌｍは、例えば細孔の幅に相当する。
測定子２３２の径ｄを考慮にいれると、リトラクション開始点（Ｐｎ´）からワークとの接触点（Ｐｃｏ）に達するまでの最大可動距離はＬｍ−ｄ（ｄは測定子直径）となる（ＳＴ１５４）。つまり、この最大可動距離（Ｌｍ−ｄ）未満であれば、ワークと接触せずにリトラクションできるはずである。
【００６１】
そこで、次に、適正リトラクション量Ｌｒを算出する（ＳＴ１５５）。
適正リトラクション量Ｌｒは、最大可動距離Ｌｍ−ｄに１未満の係数ｋ（０＜ｋ＜１）を乗算することによって求められる。
ここでは、一例として、ｋ＝０．５とする。
このようにして求まった適正リトラクション量Ｌｒの範囲内であれば、測定子２３２とワークとが接触せずにリトラクションできることになる。
【００６２】
ここで、細かい点であるが大事なことでもあるので、若干補足説明しておく。
倣い測定中の所定押込み量を０．３ｍｍに設定したとすると、点Ｐｎ´の位置でプローブ２３０はワークに向けて０．３ｍｍ押し込まれていることになる。
ただし、測定子中心の座標値（Ｐｎ´）は、三次元測定機２００の各エンコーダ出力とプローブセンサ出力との和に基づいて求められ、測定子２３２がワークに接触している間は同一の座標値となる。三次元測定機２００がプローブ２３０をワークに押し込んだ分だけプローブセンサは押込み量を出力するのであるから、差し引きゼロである。
【００６３】
さて、プローブ２３０をワークに押し込んだ状態からプローブ２３０をバックさせる動作を詳細に考える。
三次元測定機２００がプローブ２３０のバックを開始させたとしても、押込み分（０．３ｍｍ）を戻している間は、測定子２３２の移動はない（測定子中心も不動）。測定子２３２が移動しないのであるから、この間に測定子２３２がワークと意図しない衝突をするなどということもない。
プローブ２３０の押込みがゼロになると、測定子２３２がワークから離れ始める。
【００６４】
本明細書では、リトラクション動作は、測定子２３２がワークから離れた瞬間（押込み量がゼロ）から開始するものと考え、リトラクション動作とは、測定子２３２がワークから離れた瞬間（押込み量がゼロ）から停止するまでのことをいうとする。
【００６５】
適正リトラクション量Ｌｒに基づいて、リトラクション停止点Ｐｒを算出する（ＳＴ１５６）。
リトラクション停止点Ｐｒは、リトラクション開始点（Ｐｎ'）からリトラクションの方向に適正リトラクション量Ｌｒを加算した位置である。
【００６６】
リトラクション停止点Ｐｒが求まったら、モーションコントローラ３００はプローブ２３０（測定子２３２）をこのリトラクション停止点Ｐｒに移動させる（ＳＴ１５７）。
これにより、プローブ２３０（測定子２３２）とワークとの接触状態が解消され、リカバリーに成功したことになる。
【００６７】
モーションコントローラ３００は、先に求めた接触点Ｐｃｏの座標値をホストコンピュータ５００に通知する（ＳＴ１５８）。これでリカバリー処理（ＳＴ１５０）は終了である。
【００６８】
ホストコンピュータ５００は、接触点Ｐｃｏの通知を受けると、リカバリーの待機状態を解除する。ホストコンピュータ５００は、通知された接触点Ｐｃｏを記憶部５２０に記憶しておく。そして、接触点Ｐｃｏの情報に基づいて、設計データの補正を行っておく。
【００６９】
例えば、最終位置決め位置（Ｐｎ´）のワーク表面上の点（Ｐｓｆ）と接触点Ｐｃｏとの距離Ｌｍから細孔の幅と中心軸とが判明する。
この情報を元に細孔の位置を形状解析によって補正しておく。
このように補正した設計データをモーションコントローラ３００（ＰＣＣ取得部３１０）に戻せば、ワークに接触しない移動経路が得られるであろう。
したがって、このあと（リトラクション停止点Ｐｒ後の測定）の適切な経路を生成でき、このあとの倣い測定を継続できることはもちろんである。
また、同じ設計データを元にして同じ工作機械で加工したワーク（製品）であれば、二個目以降は設計値倣い測定でエラー無く測定できると期待できる。
【００７０】
念のため補足しておく。設計データの補正を行うといってもオリジナルの設計データからズレたワークを作りたいわけではない。実際に出来たワークを設計値倣い測定で測定するにあたって好適な経路を生成するのが主眼であることはいうまでもない。
【００７１】
リカバリーに成功したらモーションコントローラ３００はアクティブ設計値倣い測定を継続し（ＳＴ１１０）、測定対象（例えばワーク全体）を全て測定できたら（ＳＴ１６０：ＹＥＳ）終了である。
【００７２】
準備工程（ＳＴ１００）中のリカバリーモードの選択（ＳＴ１０３）でユーザがリカバリーモードを選択しなかった場合について補足しておく。リカバリーモードが選択されていない状態でリトラクション時にプローブ２３０（測定子２３２）とワークとが接触する場合も有り得る。この場合、エラー終了してしまってもよいが、ユーザに再度選択のチャンスを与えてもよい。
【００７３】
リトラクション時にプローブ２３０（測定子２３２）とワークとが接触したが（ＳＴ１２０：ＹＥＳ）、リカバリーモードの選択がないとする（ＳＴ１４０：ＮＯ）。この場合、次のようなエラー処理（ＳＴ１７０）を実行する。図１１にエラー処理（ＳＴ１７０）の手順を示す。モーションコントローラ３００は、ホストコンピュータ５００に対してエラーを通知する（ＳＴ１７１）。つまり、リカバリーモードの選択がない状態でプローブ２３０（測定子２３２）とワークとが接触したことをホストコンピュータ５００に通知する。ホストコンピュータ５００は、エラー通知を受けると、エラー表示を行う（例えばディスプレイに表示する）。このとき、合わせて、ホストコンピュータ５００は図５に示したような選択画面をディスプレイに表示し、リカバリーモードのＯＮ／ＯＦＦをユーザに選択させる。
【００７４】
ユーザがリカバリーモードをＯＮ（選択）したら（ＳＴ１７３：ＹＥＳ）、リカバリー処理（ＳＴ１５０）へ移行する。この場合、先に説明したリカバリー処理（図９）が実行される。
【００７５】
ユーザがリカバリーモードを選択しなかったら（例えばリカバリーモードを選択せずにキャンセルするなど）、そのまま終了となる。（このあとは、ユーザの判断でマニュアル操作が行われることになる。）
【００７６】
このような本実施形態−「エラー修正付き設計値倣い測定」−によれば次の効果を奏する。
（１）アクティブ設計値倣い測定は、設計データからのズレがやや大きいワークに対しても設計値倣い測定ができるので、測定効率の点で多大な利点がある。例えば、パッシブ設計値倣い測定は、設計データからのズレが大きいワークには適用できない。また、自律倣い測定では時間がかかる。ただ、設計データからのズレがやや大きいワークに対してアクティブ設計値倣い測定を行うと、リトラクション時に予期しない接触が発生することがある。リトラクション時の接触で逐一エラー終了していては、測定効率を特長としているアクティブ設計値倣い測定の効果がかなり減殺されてしまう。
この点、本実施形態では、リトラクション時の接触を自動的にリカバーするリカバリーモードを有し、リカバリー処理によって自動復帰できる。このことは、アクティブ設計値倣い測定の利便性をさらに向上させ、測定の高速化、測定作業の簡易化、効率化など種々の格別な効果に繋がる。
【００７７】
（２）リカバリー処理にあたり、接触点Ｐｃｏの座標を求め（ＳＴ１５２）、接触点Ｐｃｏの位置をホストコンピュータ５００に通知して記憶させるようにしている（ＳＴ１５８）。ホストコンピュータ５００に記憶された接触点Ｐｃｏの情報に基づいて、その後の測定の継続、および、二個目以降の効率的測定を可能とする。単に接触状態（エラー状態）を解消するだけであれば、接触（衝突）を検知した時点で単純に逆方向に少し引き返せばエラーから復帰はできる。（その後、ユーザがマニュアル操作で次の測定箇所までプローブ２３０を移動させるという考え方もあるかもしれない。）エラー状態が自動解消されることで多少は使い易くなるかもしれないが、ユーザが逐一マニュアル操作しなければならないとするとやはり面倒であることに違いはない。
この点、本実施形態では、接触点Ｐｃｏの座標を正確に求め（ＳＴ１５２）、これを記録することとした（ＳＴ１５８）。これにより、ユーザのマニュアル操作はほぼ不要となり、測定作業が格段に簡便になる。
【００７８】
（変形例１）
上記実施形態では、リトラクション量として、Ｌｒ＝（Ｌｍ−ｄ）×ｋ、を例示した。
プローブ（測定子）がワークに衝突しない範囲でリトラクションできればよいので、この他にもリトラクション量の設定方法は考えられ得る。
例えば、（１）Ｌｒ＝Ｌｍ×ｋ'とし、このとき、ｋ'を０．１や０．２程度の小さい値に設定してもよい。
Ｌｍから測定子の径ｄを引いておかなくても、ｋ'を小さくしておけば、適正なリトラクション量を設定できると考えられる。
あるいは、（２）Ｌｒ＝Ｌｍ−ｄ−α  （０．５ｍｍ＜α＜２．０ｍｍ）、とする考え方もある。ワークから距離αだけ離れていれば安全なリトラクションが可能と考えられる。
なお、Ｌｒ（＝Ｌｍ−ｄ−α）からリトラクション停止点Ｐｒを求めたときに、リトラクション停止点Ｐｒがワークの内部に入ってしまうような場合はエラー終了してもよいし、αをより小さい値に再設定してもよいだろう。
【００７９】
（第２実施形態）
次に本発明の第２実施形態を説明する。
上記第１実施形態においては、指定された通りにリトラクション動作を行ってみて、リトラクション時にプローブとワークとが接触したら復帰処理（リカバリー処理）を行うというものであった。
これに対し、第２実施形態では、できる限りリトラクション時にプローブとワークとが接触（衝突）しないように配慮している点に特徴を有する。
第２実施形態は、エラー回避機能がついた設計値倣い測定であり、「エラー回避機能付き設計値倣い測定」と称することにする。
以下、順に説明する。
【００８０】
図１２は、「エラー回避機能付き設計値倣い測定」（第２実施形態）の動作を説明するためのフローチャートである。
まず、倣い測定に必要な準備を行う（準備工程ＳＴ２００）。
準備工程ＳＴ２００は図１３のフローチャートに示す通り、基本的には第１実施形態と同様であり、ステップごとの詳しい説明は割愛する。
第２実施形態にあっては、図１４の選択画面においてエラー回避モードを選択する（ＳＴ２０３）。
【００８１】
準備工程（ＳＴ２００）を受けてモーションコントローラ３００は、ワークをアクティブ設計値倣いで測定する（ＳＴ２１０）。
アクティブ設計値倣い測定も第１実施形態で説明したので重複する説明は割愛する。
【００８２】
第２実施形態を説明するにあたっては数値を例示した方がわかりやすいと考えるので、図１５、図１６、図１７に、アクティブ設計値倣い測定で細孔を測定する様子を例示する。
図１５は、設計データ通りに加工された細孔をアクティブ設計値倣い測定で測定する様子である。
ここで、細孔の幅が８ｍｍであり、測定子２３２の直径が４ｍｍであるとする。
図１６は、設計データから若干ズレたワークをアクティブ設計値倣い測定で測定する様子である。
設計データの孔が８ｍｍだとして、実際のワークでは孔の側面が０．５ｍｍ程度ずつ内側にズレてしまっており、孔が約７ｍｍ程度になっているとする。
図１７については後述する。
【００８３】
なお、分かりやすい典型例として「孔」を例示するのであるが、文字通りの「孔」でなくてもよいのであって、測定対象の面と僅かなギャップを隔ててワークの別の部位が存在しているような場合を想定していただいてももちろんよい。
【００８４】
設計値倣い測定の経路（ＰＣＣ曲線）は、設計データを元にして、設計データに所定のオフセットを加味したものになる。
（アクティブ）設計値倣い測定を行うと、経路（ＰＣＣ曲線）上の補間点（ｉ）から次の補間点（ｉ＋１）へ測定子２３２が移動するように三次元測定機２００が駆動制御される。
いま、図１５（図１６）中の点Ｐｎが細孔部分の測定の最終指令位置であるとする。
モーションコントローラ３００は、移動指令がその測定箇所の最終指令位置Ｐｎに達したか否かを判断する（ＳＴ２２０）。
（「移動指令がその測定箇所の最終指令位置Ｐｎに達したか否か」というのは、別の言葉でいうと、動作指令がリトラクション動作の１つ手前に達したどうか、ということである。）
【００８５】
移動指令がその測定箇所の最終指令位置Ｐｎに達した場合（ＳＴ２２０：ＹＥＳ）、（リトラクションの指令に移行せずに、）最終指令位置Ｐｎに対応するワーク表面上の点に測定子２３２を位置決めする（ＳＴ２３０）。
アクティブ設計値倣い測定をＯＮにしているので、最終指令位置Ｐｎへの移動指令（速度ベクトル）に押込み修正ベクトルと軌道修正ベクトルとが加わり、自動的に最終指令位置Ｐｎに対応するワーク表面上の点Ｐｎ'にプローブ２３０が位置決め制御される（図１６参照）。
（Ｐｎ'は測定子中心の座標値（Ｐｎ´）を表わすとする。
【００８６】
アクティブ制御によってプローブ２３０は所定押込み量（０．３ｍｍ）だけワーク表面に押し込まれるが、測定子中心の座標値（Ｐｎ´）は、三次元測定機２００の各エンコーダ出力とプローブセンサ出力との和に基づいて求められ、測定子２３２がワークに接触している間は同一の座標値となる。
（三次元測定機２００がプローブ２３０をワークに押し込んだ分だけプローブセンサは押込み量を出力するのであるから、差し引きゼロである。）
なお、図１５では、設計データと実際のワークとにズレがないので、最終指令位置Ｐｎが最終位置Ｐｎ'に一致していると解釈されたい。
【００８７】
最終位置Ｐｎ'への位置決めが完了したら（ＳＴ２３０）、次に、最終指令位置Ｐｎと最終位置Ｐｎ'とのズレ量Ｌｓを求める（ＳＴ２４０）。
Ｌｓ＝｜Ｐｎ−Ｐｎ'｜
【００８８】
このようにして求められたズレ量Ｌｓを指定リトラクション長ＬＲと対比する（ＳＴ２５０）。
ここではＬＲに所定の係数βを乗じて、Ｌｓとβ・ＬＲとの大きさを対比する。
例として、βは０．５であるとする。
【００８９】
ここで、指定リトラクション長ＬＲは、予め設定されているリトラクション長である。
例えば、孔幅８ｍｍ、測定子２３２の直径が４ｍｍなので、指定リトラクション長ＬＲが２ｍｍに設定されているとする。
図１５を参照していただいて、測定子２３２が実線（測定子が孔の側面に当接している）から破線で示した位置に指定リトラクション長ＬＲ（２ｍｍ）だけリトラクションすると、測定子２３２の中心座標Ｐｐは孔の真ん中にくる。
なお、リトラクションの方向Ｄｒは、プローブ２３０のセンサ出力から求められる。つまり、プローブ２３０のセンサ出力に基づいて点Ｐｓｆにおける測定面の法線方向は分かる。この法線方向がリトラクションの方向Ｄｒとして設定される。
図１５では、リトラクション後、測定子２３２の外面と孔の側面と間には約２ｍｍのギャップがある。
（ここでは、測定子２３２は、測定面からも対向面からも２ｍｍ離間している。）
約２ｍｍのギャップがあれば、この後、次の移動先に移動する際にプローブ２３０（測定子２３２）とワーク（孔）とが接触（衝突）する可能性は低い。
【００９０】
図１５では、設計データと実際のワークとにズレが無いという理想形を想定しているのであるから当然にＬｓ＜β・ＬＲを満たしているのであり（ＳＴ２５０：ＹＥＳ）、指定された通りのリトラクションを行えばよい。
つまり、指定リトラクション長ＬＲ（＝２ｍｍ）でリトラクションを行えばよい。
そして、次に測定すべき箇所があれば（ＳＴ２８０：ＮＯ）、アクティブ設計値倣い測定を継続する（ＳＴ２１０）。
【００９１】
次に図１６を参照していただきたい。
図１６では、実際のワークが設計データからズレており、孔の側面が０．５ｍｍ程度ずつ内側にズレている。
アクティブ設計値倣い測定であるから実際のワークが設計データからズレていても倣い測定が可能であり、最終指令位置Ｐｎへの移動指令（速度ベクトル）に押込み修正ベクトルと軌道修正ベクトルとが加わり、自動的に最終指令位置Ｐｎに対応するワーク表面上の点Ｐｎ'にプローブが位置決め制御される（図１６参照）。
【００９２】
そして、最終位置Ｐｎ'への位置決めが完了したら（ＳＴ２３０）、最終指令位置Ｐｎと最終位置Ｐｎ'とのズレ量Ｌｓを求める（ＳＴ２４０）。
Ｌｓ＝｜Ｐｎ−Ｐｎ'｜
ここでは、Ｌｓ≒０．５ｍｍである。
【００９３】
さて、図１６の場合においてＬｓ（≒０．５）とβ・ＬＲ（＝１．０ｍｍ）とを対比すると、Ｌｓ＜β・ＬＲを満たす（ＳＴ２５０：ＹＥＳ）。
安全判定条件（Ｌｓ＜β・ＬＲ）を満たしているので（ＳＴ２５０：ＹＥＳ）、設定された通りのリトラクションを行う（ＳＴ２７０）。
つまり、指定リトラクション長ＬＲ（＝２ｍｍ）でリトラクションを行えばよい。
【００９４】
実際に図１６において指定リトラクション長ＬＲ（＝２ｍｍ）でリトラクションしてみる。すると、図１６に作図するように、孔の対向面と測定子２３２の間に１ｍｍ程度のギャップが確保される。１ｍｍ程度のギャップがあれば、安全にリトラクションできると考えられる。
【００９５】
ここで、ズレ量Ｌｓが０．５ｍｍだからといって孔幅が１．０ｍｍ狭くなるというのは最悪のケースを想定してのことである。
一般的にズレ（Ｌｓ）の方向が面に垂直とは限らないのであるから、孔幅が２×Ｌｓだけ狭くなるというのは考え得る最悪のケースである。
図１６のように設計データと実際のワークとがズレている場合であっても、指定リトラクション長ＬＲに比べてズレ量Ｌｓが十分に小さければ指定リトラクション長ＬＲで安全にリトラクションできると考えてよいであろう。
【００９６】
さて、図１７の場合を説明する。
図１７では、実際のワークが設計データからズレていて、孔の側面が１．２ｍｍ程度ずつ内側にズレてしまっているとする。
アクティブ設計値倣い測定であるから実際のワークが設計データからズレていても倣い測定が可能である。
軌道誤差ΔＬの許容値は例えば１．５ｍｍ程度まで許容できるから、前記１．２ｍｍ程度の加工誤差であればアクティブ設計値倣い測定による軌道修正で倣い測定が可能である。
【００９７】
図１７のケースにおいて、最終指令位置Ｐｎに対応する最終位置Ｐｎ'に位置決めが完了したとする（ＳＴ２３０）。
最終指令位置Ｐｎと最終位置Ｐｎ'とのズレ量Ｌｓを求める（ＳＴ２４０）。
Ｌｓ＝｜Ｐｎ−Ｐｎ'｜
ここでは、Ｌｓ≒１．２ｍｍである。
【００９８】
図１７のケースにおいてＬｓ（≒１．２）とβ・ＬＲ（＝１．０ｍｍ）とを対比すると、Ｌｓ＜β・ＬＲを満たさない（ＳＴ２５０：ＮＯ）。つまり、安全判定条件（Ｌｓ＜β・ＬＲ）を満たしていない。
この場合、設定された通りのリトラクション長ＬＲでリトラクションを行うと測定子２３２が対向面に衝突する可能性がでてくる。
【００９９】
図１７においては孔の側面が１．２ｍｍ程度ずつ内側にズレているとすると、孔幅は５．６ｍｍ程度になっている可能性がある。
仮に、指定リトラクション長ＬＲ（＝２ｍｍ）でリトラクションしたとすると、測定子２３２の直径４ｍｍにリトラクション長ＬＲ（＝２ｍｍ）が加算されると６ｍｍに達する。
押し込み量が０．３ｍｍに達するまではエラー信号がでないとして、ギャップ５．６ｍｍに押し込みの余裕０．３ｍｍを見込んでも、やはり、測定子が対向面に基準押込み量（０．３ｍｍ）を超えて押し込まれてしまうことになる。
リトラクション時の移動速度が速いと、基準押込み量（０．３ｍｍ）を超えて対向面に衝突してしまうことになる。
【０１００】
そこで、安全判定条件（Ｌｓ＜β・ＬＲ）を満たしていない場合には（ＳＴ２５０：ＮＯ）、エラー回避処理（ＳＴ３００、図１８）に切り替えてリトラクションを行うこととする。
【０１０１】
安全判定条件（Ｌｓ＜β・ＬＲ）を満たしていない場合には（ＳＴ２５０：ＮＯ）、エラー回避モードが選択されているかを確認する（ＳＴ２５１）。
エラー回避モードが選択されている場合には（ＳＴ２５１：ＹＥＳ）、エラー回避処理（ＳＴ３００）に移行することになるが、エラー回避処理（ＳＴ３００）に移行する前に、モーションコントローラ３００はエラー回避処理に移行したことをホストコンピュータ５００に通知する（ＳＴ２５２）。
ホストコンピュータ５００は、エラー回避処理に移行したことをユーザに通知する（例えばディスプレイに表示する）とともに、測定データの記録等の測定動作を一時待機状態にする。
【０１０２】
続いて、モーションコントローラ３００は、最終位置Ｐｎ'の座標を取得し、ホストコンピュータ５００にも通知しておく（ＳＴ２５３）。
この最終位置Ｐｎ'は、指定リトラクション長ＬＲでリトラクションできない点を意味する。
ホストコンピュータ５００は、この最終位置Ｐｎ'の座標値を記録しておき、二個目以降のワークについては設計値倣い測定でエラー無く測定できるように設計データの補正および指定リトラクション長ＬＲの再設定をしておく。
【０１０３】
その後、エラー回避処理（ＳＴ３００）を行う。
図１９は、エラー回避処理（ＳＴ３００）の具体的手順を説明するためのフローチャートである。
まず、リトラクション長をエラー回避処理用に予め設定された短い長さに設定変更する（ＳＴ３０１）。
ここでは、エラー回避用リトラクション長Ｌｒ'として１．７ｍｍが予め設定されているとする。これは、指定リトラクション長ＬＲよりも０．３ｍｍ短い値である。
【０１０４】
なお、エラー回避用リトラクション長Ｌｒ'としては、１．７ｍｍに限定されるというわけではなく、０．１ｍｍから１．９ｍｍ程度の間、で適宜設定されればよい。
【０１０５】
エラー回避用リトラクション長Ｌｒ'（＝１．７ｍｍ）でリトラクションを実行する（ＳＴ３０２）。（リトラクションの方向は、プローブ３００のセンサ出力から求められる被測定面の法線方向である。）
また、後の処理のため、エラー回避用リトラクション長を用いたリトラクションの回数を記憶しておく。
ここでは、一回目のトライであるから，パラメータｊを１に初期化する（ＳＴ３０３）。
【０１０６】
図２０は、Ｌｒ'＝１．７ｍｍでリトラクションした状態を示す図である。
【０１０７】
いま、孔の両側面が１．２ｍｍずつ内側にずれているケースを考えているので、孔幅は５．６ｍｍしかない。
直径４ｍｍの測定子を１．７ｍｍリトラクションしようとすると、１．６ｍｍリトラクションした時点で測定子が対向面に接触し、さらに、プローブが０．１ｍｍ対向面に押し込まれることになる。
ちなみに、もし指定リトラクション長ＬＲである２．０ｍｍでリトラクションを行っていたとすると、プローブが０．４ｍｍ対向面に押し込まれていたことになる。
つまり、指定リトラクション長ＬＲ（＝２．０ｍｍ）のままだと、基準押込み量（＝０．３ｍｍ）を超えてプローブが対向面に押し込まれていた可能性があるわけであり、この点、エラー回避用の短いリトラクション長Ｌｒ'（＝１．７ｍｍ）に設定変更していた意味がある。
【０１０８】
ただし、エラー回避用の短いリトラクション長Ｌｒ'であっても必ずリトラクションに成功するとは限らない。
対向面に過大な押込み量で衝突する可能性は低くなるが、やはり、今回のように、測定子が対向面に接触する可能性がある。
【０１０９】
測定子２３２とワークとの接触を検知した場合（ＳＴ３０６：ＹＥＳ）、モーションコントローラ３００は、パラメータｊの値を確認する（ＳＴ３０８）。
パラメータｊが５以下であれば（ＳＴ３０８：ＹＥＳ）、記憶していた座標値Ｐｎ'を読み出し、この座標値Ｐｎ'に戻る。
【０１１０】
座標値Ｐｎ'に戻ったら、リトラクション長Ｌｒ'を再設定する（ＳＴ３１０）。つまり、リトラクション長Ｌｒ'をさらに０．３ｍｍ短くするようにする（ＳＴ３１０）。
そして、パラメータｊに"１"を加算したのち（ＳＴ３１１）、再設定したリトラクション長Ｌｒ'（＝１．４）でリトラクションを実行する（ＳＴ３１２）。
【０１１１】
座標値Ｐｎ'から１．４ｍｍリトラクションした状態を図２１に例示する。
今度は、対向面に接触せずにリトラクションすることに成功した（ＳＴ３０６：ＮＯ）。
したがって、この後、ＳＴ２８０（図１２）に戻って、全測定が終了するまでメインのフロー（ＳＴ２１０−ＳＴ２８０）を継続すればよい。すなわち、次の測定箇所があれば、リトラクション後の位置（Ｐｒ２）から次の移動先に移動すればよい。
【０１１２】
このように、ワークが設計値からズレており、安全判定条件（Ｌｓ＜β・ＬＲ）を満たさないような場合には（ＳＴ２５０：ＮＯ）、エラー回避用のリトラクション長Ｌｒ'に設定変更し、さらに徐々にリトラクション長Ｌｒ'を短くしていくことで、安全なリトラクションを成功させることができる。
【０１１３】
なお、リトラクション長Ｌｒ'を短くしながら繰り返しリトラクションを実行してもワークとの接触が解消しない場合（ＳＴ３０６：ＹＥＳ）、今回であればパラメータｊが５に達したところで（ＳＴ３０８：ＮＯ）、エラー回避処理（図１９）のループを抜けることとする。もはやリトラクション長Ｌｒ'をそれ以上短くすることはできないのであり、何か予期しない理由のエラーが生じていると考えられる。
したがって、パラメータｊが５に達したら（ＳＴ３０８：ＮＯ）、モーションコントローラ３００からホストコンピュータ５００にエラー通知を行い（ＳＴ３１３）、その後、終了する。
【０１１４】
準備工程（ＳＴ２００）中のエラー回避モードの選択（ＳＴ２０３）でユーザがエラー回避モードを選択しなかった場合について補足しておく。
エラー回避モードが選択されていない状態でズレ量Ｌｓがβ・ＬＲ以上（ＳＴ２５０：ＮＯ）になってしまう場合も有り得る。
この場合、エラー終了してしまってもよいが、ユーザに再度選択のチャンスを与えてもよい。
【０１１５】
プローブ２３０（測定子２３２）が最終指令位置Ｐｎに達したところでズレ量Ｌｓがβ・ＬＲ以上（ＳＴ２５０：ＮＯ）になっているが、エラー回避モードの選択がないとする（ＳＴ２５１：ＮＯ）。
この場合、次のようなエラー処理（ＳＴ２６０）を実行する。
図２２にエラー処理（ＳＴ２６０）の手順を示す。
モーションコントローラ３００は、ホストコンピュータ５００に対してエラーを通知する（ＳＴ２６１）。
つまり、エラー回避モードの選択がない状態でズレ量Ｌｓが指定リトラクション長ＬＲに比してある程度の大きさになっている（ＳＴ２５０：ＮＯ）ことをホストコンピュータ５００に通知する。
ホストコンピュータ５００は、エラー通知を受けると、エラー表示を行う（例えばディスプレイに表示する）。
このとき、合わせて、ホストコンピュータ５００は図１４に示したような選択画面をディスプレイに表示し、エラー回避モードのＯＮ／ＯＦＦをユーザに選択させる。
【０１１６】
ユーザがエラー回避モードをＯＮ（選択）したら（ＳＴ２６３：ＹＥＳ）、エラー回避処理（ＳＴ３００）へ移行する（図１８中のＦ）。
この場合、先に説明したエラー回避処理（図１９）が実行される。
【０１１７】
ユーザがエラー回避モードを選択しなかったら（例えばエラー回避モードを選択せずにキャンセルするなど）、そのまま終了となる。
（このあとは、ユーザの判断でマニュアル操作が行われることになる。）
【０１１８】
第２実施形態によれば次の効果を奏する。
本第２実施形態では、最終指令位置Ｐｎと最終指令位置Ｐｎに対応する最終位置決め点Ｐｎ'とのズレ量Ｌｓを求めている。
このズレ量Ｌｓが大きいと、設計値とワークとのズレが大きいということであるので、指定リトラクション長ＬＲでリトラクションすると、予期せず対向面に衝突するおそれがでてくる。
この点、第２実施形態では、ズレ量Ｌｓと指定リトラクション長ＬＲとを対比し、指定リトラクション長ＬＲがズレ量Ｌｓよりも（十分に）大きいか否か、すなわち、安全にリトラクションできるか否かを判定することとしている。そして、指定リトラクション長ＬＲで安全にリトラクションできないと判断される場合には、短めに設定されたエラー回避用リトラクション長Ｌｒ'でリトラクションを実行する。
したがって、指定リトラクション長ＬＲでリトラクションして対向面に衝突するというような事態を極力避けることができる。これにより、プローブの負担が軽減すると期待できる。
設計値からのズレがやや大きいワークをアクティブ制御倣い測定しても、リトラクション時にエラー中断することはなく、測定効率の向上に繋がる。
【０１１９】
（変形例２）
上記第２実施形態では、安全判定条件（Ｌｓ＜β・ＬＲ）を満たしていない場合（ＳＴ２５０：ＮＯ）、徐々にリトラクション長Ｌｒ'を短くしていくとした。
この点、変形例２としては、図２３に示すフローチャートのように、エラー回避用のリトラクション長Ｌｒ'を極めて短い値、例えば、０．１ｍｍに設定するようにしてもよい（ＳＴ３０１Ａ）。このように極めて短いリトラクション長Ｌｒ'（＝０．１ｍｍ）であれば、リトラクション時にプローブが対向面に接触するという事態は確実に回避できる。
【０１２０】
ちなみに、それならば、指定リトラクション長ＬＲを初めから極めて短い値（＝０．１ｍｍ）に設定しておけばよいようにも感じられるだろうが、それは好ましくない。リトラクション長ＬＲが極めて短い値であればプローブが対向面に接触する可能性は極めて低くなるのであるが、短か過ぎる指定リトラクション長ＬＲには別の問題が生じる可能性が極僅かながらある。
【０１２１】
例えば、図２４に示すように、湾曲したワークの外側面を倣い測定し、一つの終点としてＰｎ'に到達したとする。そして、次の移動先が例えば点Ｐｋのような位置にあるとする。
もし、リトラクション長ＬＲが短か過ぎてプローブとワークとが十分な離間距離をもっていないと、次の移動先Ｐｋに移動する際にプローブとワークとが接触するおそれがある（図２４中の経路Ｒ１を参照）。
一方、プローブとワークとが十分な離間距離をもっていれば、次の移動先Ｐｋに移動する際にプローブとワークとが接触するといった可能性は低くなるのであり（図２４中の経路Ｒ２）、したがって、指定リトラクション長ＬＲとしては、安全を確保できる十分な離間距離として設定されている必要がある。
短いリトラクション長Ｌｒ'に設定変更するのは、安全判定条件（Ｌｓ＜β・ＬＲ）を満たしていない場合（ＳＴ２５０：ＮＯ）のようなエラー回避の特例に留めておくのが適切である。
なお、エラー回避用のリトラクション長Ｌｒ'は０．１ｍｍに限定されるものではなく、例えば、０．１ｍｍ〜０．５ｍｍ、より好ましくは、０．１ｍｍ〜０．３ｍｍの範囲から選択される適切な値とすればよい。
【０１２２】
なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
上記実施形態では、アクティブ設計値倣い測定を中心に説明したが、"アクティブ設計値倣い測定"を"ポイント測定"に読み替えてもよい。
すなわち、本発明はポイント測定にも適用できる。ポイント測定（あるいはタッチ測定ともいう）自体は、よく知られているものである。ポイント測定では、一旦、プローブ２３０をワークから離間させる。そして、プローブ２３０（測定子２３２）をワークに接近させ、押し込み量が所定値（例えば０．３ｍｍ）になったところで座標値を取り込む、といった測定方式である。ある一つの測定点（ポイント）から次の測定点（ポイント）に移動するのにリトラクションが必要であるから、本発明が有効となる。
【符号の説明】
【０１２３】
１００…形状測定システム、２００…三次元測定機、２１０…定盤、
２２０…移動機構、２２１…Ｙスライダ、２２２…Ｘスライダ、２２３…Ｚ軸コラム、２２４…Ｚスピンドル、
２３０…プローブ、２３１…スタイラス、２３２…測定子、２３３…支持部、
３００…モーションコントローラ、３１０…ＰＣＣ取得部、３２０…カウンタ部、３３０…経路算出部、３４０…駆動制御部、
４００…手動コントローラ、
５００…ホストコンピュータ、５２０…記憶部、５３０…形状解析部。
【図１】
0006630535.tif 000002
【図２】
0006630535.tif 000003
【図３】
0006630535.tif 000004
【図４】
0006630535.tif 000005
【図５】
0006630535.tif 000006
【図６】
0006630535.tif 000007
【図７】
0006630535.tif 000008
【図８】
0006630535.tif 000009
【図９】
0006630535.tif 000010
【図１０】
0006630535.tif 000011
【図１１】
0006630535.tif 000012
【図１２】
0006630535.tif 000013
【図１３】
0006630535.tif 000014
【図１４】
0006630535.tif 000015
【図１５】
0006630535.tif 000016
【図１６】
0006630535.tif 000017
【図１７】
0006630535.tif 000018
【図１８】
0006630535.tif 000019
【図１９】
0006630535.tif 000020
【図２０】
0006630535.tif 000021
【図２１】
0006630535.tif 000022
【図２２】
0006630535.tif 000023
【図２３】
0006630535.tif 000024
【図２４】
0006630535.tif 000025