(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024024336
(43)【公開日】2024-02-22
(54)【発明の名称】リバースエンジニアリング支援装置
(51)【国際特許分類】
G06T 17/30 20060101AFI20240215BHJP
【FI】
G06T17/30
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022127108
(22)【出願日】2022-08-09
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】末永 剛
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA19
5B080DA01
5B080DA06
5B080FA02
5B080FA08
(57)【要約】
【課題】所望の穴埋め処理を、人によるばらつきが生じることなく、短時間で行えるようにする。
【解決手段】リバースエンジニアリング支援装置1は、メッシュデータを取得するデータ取得部291と、取得したメッシュデータから補正基準面を抽出するためのユーザ入力を受け付ける受付部271aと、ユーザ入力に基づいて、データ取得部291で取得したメッシュデータから補正基準面を抽出する基準面抽出部271fと、抽出された補正基準面に基づいてメッシュデータを補正する補正部275とを備えている。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ワークの形状を測定することで得られたメッシュデータをCADデータに変換して出力するリバースエンジニアリング支援装置であって、
メッシュデータを取得するデータ取得部と、
前記データ取得部で取得したメッシュデータから補正基準面を抽出するためのユーザ入力を受け付ける受付部と、
前記受付部で受け付けたユーザ入力に基づいて、前記データ取得部で取得したメッシュデータから前記補正基準面を抽出する基準面抽出部と、
前記基準面抽出部により抽出された補正基準面に基づいて、前記メッシュデータを補正する補正部と、
を備えることを特徴とするリバースエンジニアリング支援装置。
【請求項2】
請求項1に記載のリバースエンジニアリング支援装置において、
前記補正部は、前記データ取得部により取得されたメッシュデータと前記補正基準面との乖離を検出し、乖離が検出された領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、前記データ取得部で取得したメッシュデータを補正することを特徴とするリバースエンジニアリング支援装置。
【請求項3】
請求項2に記載のリバースエンジニアリング支援装置において、
前記補正部は、前記データ取得部により取得されたメッシュデータと前記補正基準面との距離を検出し、検出した距離が所定のしきい値以上の領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、前記データ取得部で取得したメッシュデータを補正することを特徴とするリバースエンジニアリング支援装置。
【請求項4】
請求項2に記載のリバースエンジニアリング支援装置において、
前記補正部は、前記データ取得部により取得されたメッシュデータと前記補正基準面との法線変化量を検出し、検出した法線変化量が所定のしきい値以上の領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、前記データ取得部で取得したメッシュデータを補正することを特徴とするリバースエンジニアリング支援装置。
【請求項5】
請求項1に記載のリバースエンジニアリング支援装置において、
前記受付部は、前記データ取得部により取得されたメッシュデータに含まれる不要領域の指定を受け付け、
前記補正部は、前記受付部で受け付けた不要領域に含まれ、かつ、前記データ取得部により取得されたメッシュデータと前記補正基準面との乖離が存在する領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、前記データ取得部で取得したメッシュデータを補正することを特徴とするリバースエンジニアリング支援装置。
【請求項6】
請求項5に記載のリバースエンジニアリング支援装置において、
前記受付部は、前記不要領域として穴領域または凸領域の指定を受け付け可能に構成されていることを特徴とするリバースエンジニアリング支援装置。
【請求項7】
請求項5に記載のリバースエンジニアリング支援装置において、
前記補正部は、前記受付部により不要領域として受け付けた領域にメッシュデータが含まれるか否かを判定し、前記受付部が不要領域として受け付けた領域にメッシュデータが含まれないと判定した場合、前記データ取得部で取得したメッシュデータの補正を中止することを特徴とするリバースエンジニアリング支援装置。
【請求項8】
請求項5に記載のリバースエンジニアリング支援装置において、
前記補正部は、前記受付部により不要領域として受け付けた領域に存在するポリゴンの向きを判定し、前記受付部が不要領域としてとして受け付けた領域のポリゴンの向きと、前記補正基準面の法線の向きとの乖離が所定の角度以上と判定した場合、前記データ取得部で取得したメッシュデータの補正を中止することを特徴とするリバースエンジニアリング支援装置。
【請求項9】
請求項1に記載のリバースエンジニアリング支援装置において、
前記受付部は、第1の面を第1の補正基準面として抽出するための第1のユーザ入力と、前記第1の面に対向する第2の面を第2の補正基準面として抽出するための第2のユーザ入力と、前記第1の面および前記第2の面との間に存在する貫通穴領域の指定を受け付け、
前記基準面抽出部は、前記第1のユーザ入力に基づいて、前記データ取得部で取得したメッシュデータから前記第1の補正基準面を抽出し、前記第2のユーザ入力に基づいて、前記データ取得部で取得したメッシュデータから前記第2の補正基準面を抽出し、前記データ取得部により取得されたメッシュデータと前記第1の補正基準面および前記第2の補正基準面との乖離を各々検出し、前記受付部で受け付けた貫通穴領域に含まれ、かつ、乖離が検出された領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、前記データ取得部で取得したメッシュデータを補正することを特徴とするリバースエンジニアリング支援装置。
【請求項10】
請求項5に記載のリバースエンジニアリング支援装置において、
前記補正部は、前記補正基準面に基づいて、該補正基準面の理想的な形状を表す幾何形状ポリゴンを生成し、前記補正基準面に含まれるポリゴンを削除して、前記幾何形状ポリゴンで置換することを特徴とするリバースエンジニアリング支援装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、現物の形状を取得して設計データ化し、ものづくりに活かすリバースエンジニアリングを支援するリバースエンジニアリング支援装置に関する。
【背景技術】
【0002】
近年、リバースエンジニアリングがものづくりの多方面で利用されている。例えば既存製品の形状をスキャン、CADデータ化して次期種展開や形状解析をCAD・CAE上で実施したり、製品デザインにおけるモデルやモックの形状をスキャン、CADデータ化して製品設計に反映したり、勘合する相手部品の形状をスキャン、CADデータ化して勘合元となる製品を設計したり、試作品の形状をスキャン、CADデータ化して改良設計に繋げるといった用途がリバースエンジニアリングで存在しており、その用途は拡大傾向にある。
【0003】
非特許文献1には、既存の形状をレーザー距離スキャナでスキャンし、このスキャナによって生成された密な点群を幾何学的モデルに変換する際に、点群から表面を特定することが開示されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】ECK, Matthias; HOPPE, Hugues. Automatic reconstruction of B-spline surfaces of arbitrary topological type. In: Proceedings of the 23rd annual conference on Computer graphics and interactive techniques. 1996. p. 325-334.
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、既存製品の形状をスキャンして得られたメッシュデータは複数のポリゴンを含んでいる。このメッシュデータの中で例えば穴などのように不要な領域がある場合、ユーザは不要な領域を埋める穴埋め処理と呼ばれる処理を行うことがある。穴埋め処理はメッシュデータ中の欠けのある部分を繋ぐ処理であるため、欠け周辺の形状が残ってしまう。ポリゴンを削除しつつ、穴埋めを行う場合、不要な領域を削除してから穴埋めを行う必要があるが、不要な領域の判断はユーザの操作に委ねられているのが一般的である。不要な領域を削除した後、削除した縁に形状が残ったり、削除した縁でポリゴンの密度がばらついてしまうことがある。
【0006】
また、ポリゴン表面の凹凸を除去するための機能としてスムージング機能があるが、この機能はユーザが作業するものであることから時間がかかり、仕上がり品質には属人性もある。また、表面が例えば厳密な平面だと分かっていても、データ上、微小な凹凸が残ってしまうこともある。
【0007】
本開示は、かかる点に鑑みたものであり、その目的とするところは、所望の穴埋め処理を、人によるばらつきが生じることなく、短時間で行えるようにすることにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本態様では、ワークの形状を測定することで得られたメッシュデータをCADデータに変換して出力するリバースエンジニアリング支援装置を対象とすることができる。リバースエンジニアリング支援装置は、メッシュデータを取得するデータ取得部と、前記データ取得部で取得したメッシュデータから補正基準面を抽出するためのユーザ入力を受け付ける受付部と、前記受付部で受け付けたユーザ入力に基づいて、前記データ取得部で取得したメッシュデータから前記補正基準面を抽出する基準面抽出部と、前記基準面抽出部により抽出された補正基準面に基づいて、前記メッシュデータを補正する補正部とを備えている。
【0009】
すなわち、ユーザがメッシュデータを見ると、正常な領域であって穴埋め処理が不要な領域と、不完全な領域であって穴埋め処理が必要な領域とを区別できる。従来の穴埋め処理やスムージング機能の場合、不完全な領域を補正するものであるが、本態様では、正常な領域が補正基準面として抽出されるように、補正基準面を抽出するためのユーザ入力をユーザが行うと、メッシュデータから正常な領域が補正基準面として自動的に抽出される。例えば、抽出された補正基準面を基準とすることで、メッシュデータ中の不完全な領域を特定することが可能になる。この不完全な領域を補正部によって自動的に補正することで、属人性が無く、仕上がり品質の良好な穴埋め処理が短時間で行われる。
【0010】
別の態様では、メッシュデータと補正基準面との乖離が存在する領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、データ取得部で取得したメッシュデータを補正できる。また、データ取得部により取得されたメッシュデータと補正基準面との距離を検出し、検出した距離が所定のしきい値以上の領域のメッシュデータを除去してもよいし、データ取得部により取得されたメッシュデータと補正基準面との法線変化量を検出し、検出した法線変化量が所定のしきい値以上の領域のメッシュデータを除去してもよい。
【0011】
また、受付部は、データ取得部により取得されたメッシュデータに含まれる不要領域の指定を受け付けることができ、不要領域としては、例えば穴領域または凸領域等である。
【0012】
また、補正部は、受付部により不要領域として受け付けた領域にメッシュデータが含まれるか否かを判定し、受付部が不要領域として受け付けた領域にメッシュデータが含まれないと判定した場合、メッシュデータの補正を中止することができる。
【0013】
また、受付部は、第1の面を補正基準面として抽出するための第1のユーザ入力と、第1の面に対向する第2の面を補正基準面として抽出するための第2のユーザ入力と、第1の面および第2の面との間に存在する貫通穴領域の指定を受け付けることもできる。この場合、基準面抽出部は、第1のユーザ入力に基づいて第1の補正基準面を抽出し、第2のユーザ入力に基づいて第2の補正基準面を抽出するとともに、メッシュデータと第1の補正基準面および第2の補正基準面との乖離を各々検出する。受付部で受け付けた貫通穴領域に含まれ、かつ、乖離が検出された領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することもできる。
【0014】
また、補正部は、補正基準面に基づいて、該補正基準面の理想的な形状を表す幾何形状ポリゴンを生成することもできる。この場合、補正基準面に含まれるポリゴンを削除して、幾何形状ポリゴンで置換することで、メッシュデータを補正できる。
【発明の効果】
【0015】
以上説明したように、ユーザ入力によってメッシュデータから抽出した補正基準面に基づいてメッシュデータを補正するので、所望の穴埋め処理を、人によるばらつきが生じることなく、短時間で行うことができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施形態に係るリバースエンジニアリングシステムの全体構成を示す図である。
【
図2】リバースエンジニアリングシステムのブロック図である。
【
図6】変形例1に係るモジュールの構成例を示す図である。
【
図7】変形例2に係るモジュールの構成例を示す図である。
【
図8】リバースエンジニアリングシステムの動作を示すフローチャートの前半部分を示す図である。
【
図9】リバースエンジニアリングシステムの動作を示すフローチャートの後半部分を示す図である。
【
図10】処理パラメータを設定する際に使用されるパラメータテーブルの一例を示す図である。
【
図11】データセットのデータ構造の例を示す図である。
【
図12】測定データに含まれる各データを示す図である。
【
図13】変換領域指定用ユーザインタフェース画面の一例を示す図である。
【
図14】サーフェス変換用ユーザインタフェース画面の一例を示す図である。
【
図15】メッシュ編集用ユーザインタフェース画面の一例を示す図である。
【
図16】結果表示用ユーザインタフェース画面の一例を示す図である。
【
図17】解析モジュールの詳細を示すブロック図である。
【
図18】解析モジュールの処理手順の一例を示すフローチャートである。
【
図19】測定処理手順の一例を示すフローチャートである。
【
図20】幾何要素の抽出処理手順の一例を示すフローチャートである。
【
図21】メッシュ選択処理手順の一例を示すフローチャートである。
【
図22】寸法測定処理手順の一例を示すフローチャートである。
【
図23】CAD変換指示手順の一例を示すフローチャートである。
【
図24】CAD変換対象の指定手順の一例を示すフローチャートである。
【
図25】メッシュ編集手順の一例を示すフローチャートである。
【
図26】CADデータへの変換処理手順の一例を示すフローチャートである。
【
図27】解析曲面作成用ユーザインタフェース画面の一例を示す図である。
【
図29】対象要素を選択するためのウインドウの一例を示す図である。
【
図30】複数の変換モジュールを備えた形態を説明する図である。
【
図31】形状属性を反映させたCADデータを生成する場合の機能ブロック図である。
【
図32】形状属性を反映させたCADデータを生成する手順の一例を示すフローチャートである。
【
図33】ユーザ領域指定の手順の一例を示すフローチャートである。
【
図34】プレビュー表示がある場合のユーザ領域指定の手順の一例を示すフローチャートである。
【
図35】プレビュー表示の手順の一例を示すフローチャートである。
【
図36】メッシュ選択処理の手順の一例を示すフローチャートである。
【
図37】ユーザ指定領域と自動生成領域の合成処理の手順と、合成処理の例を示す図である。
【
図38】領域指定用ユーザインタフェース画面の一例を示す図である。
【
図39】付加情報を付与する場合の処理手順の一例を示すフローチャートである。
【
図40】色指定用ウインドウの一例を示す図である。
【
図41】付加情報を持つ測定データの構成例を示す図である。
【
図42】補正処理の手順の一例を示すフローチャートである。
【
図43】補正基準面の抽出処理の手順の一例を示すフローチャートである。
【
図44】修正候補領域の抽出処理の手順の一例を示すフローチャートである。
【
図45】穴位置の特定処理の手順の一例を示すフローチャートである。
【
図46】メッシュデータの置換処理の手順の一例を示すフローチャートである。
【
図49】座標系割り当て処理の手順の一例を示すフローチャートである。
【
図50】座標系の選択処理の手順の一例を示すフローチャートである。
【
図51】座標系の作成処理の手順の一例を示すフローチャートである。
【
図52】変換領域の選択処理の手順の一例を示すフローチャートである。
【
図53】基準平面、基準軸、原点を設定するための画面を示す図である。
【
図54】測定データと基準データを表示するユーザインタフェース画面の例を示す図である。
【
図55】測定データと基準データの位置合わせが完了した状態を示すユーザインタフェース画面の例を示す図である。
【
図56】変形例に係るリバースエンジニアリングシステムの動作を示すフローチャートの前半部分を示す図である。
【
図57】変形例に係るリバースエンジニアリングシステムの動作を示すフローチャートの後半部分を示す図である。
【
図58】変換結果表示用ユーザインタフェース画面の例を示す図である。
【
図59】マニュアル変換設定画面の例を示す図である。
【
図60】球形状の領域を1つのサーフェスデータとしてCADデータに変換した場合の表示画面の例を示す図である。
【
図61】複数の幾何要素が選択された場合のサーフェス変換用ユーザインタフェース画面の例を示す図である。
【
図62】サーフェスデータと3D要素を組み合わせて表示した場合の変換結果表示用ユーザインタフェース画面の例を示す図である。
【
図63】3D要素のみを表示した場合の変換結果表示用ユーザインタフェース画面の例を示す図である。
【
図64】データ合成を起動した場合のユーザインタフェース画面の例を示す図である。
【
図65】合成データ選択ウインドウの例を示す図である。
【
図66】向きを変えたワークの測定データを取得するユーザインタフェース画面の例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0018】
図1は、本発明の実施形態に係るリバースエンジニアリングシステム1の全体構成を示す図である。リバースエンジニアリングシステム1は、ワーク(測定対象物)Wの形状を測定することによって取得したワークWのメッシュデータをCADデータに変換して出力するシステムである。リバースエンジニアリングシステム1は、例えば既存製品のCADデータを取得して次期種展開や形状解析をCAD・CAE上で実施したり、製品デザインにおけるモデルやモックの形状を製品設計に反映したり、勘合する相手部品の形状に基づいて勘合元となる製品を設計したり、試作品の形状に基づいて改良設計を行う場合等に利用される。したがって、ワークWは、例えば既存製品、モデル、モック、試作品等である。
【0019】
また、リバースエンジニアリングシステム1は、ワークWのメッシュデータをサーフェスデータに変換して出力することが可能な装置である。ワークWのメッシュデータをサーフェスデータに変換して出力することで、ユーザのリバースエンジニアリング工程、リバースエンジニアリング作業を支援することができるので、リバースエンジニアリングシステム1は、リバースエンジニアリング支援装置1と呼ぶこともできる。
【0020】
以下の説明では、ワークWの形状を測定する際に、ワークW表面の座標情報を取得するにあたり、所定のパターンの測定光をワークWに対して照射して、ワークWの表面で反射された反射光から得られる信号を用いて、座標情報を取得している。例えば、所定のパターンの測定光として、構造化照明を用いて、ワークWに投影し、その反射光から得られる縞投影画像を用いた三角測距を用いた計測方法を用いることができる。ただ、本発明では、ワークWの座標情報を取得するための原理や構成は、これに限らず、他の方法も適用することができる。
【0021】
リバースエンジニアリングシステム1は、測定部100、台座部600と、コントローラ200、光源部300及び表示部400を備えている。リバースエンジニアリングシステム1は、光源部300で構造化照明をワークWに対して行い、縞投影画像を撮像して座標情報を有する深度画像を生成し、これに基づいてワークWの三次元寸法や形状を計測することができる。このような縞投影を用いた測定は、ワークWやレンズ等の光学系をZ方向(高さ方向)に移動させることなく三次元測定ができるため、測定時間を短くできるという利点がある。
【0022】
図2は、本発明の実施形態に係るリバースエンジニアリングシステム1のブロック図を示す。この図に示すように、測定部100は、投光部110と、受光部120と、測定制御部150と、照明光出力部130とを備えている。投光部110は、後述する載置部140に載置されたワークWに所定のパターンを有する測定光を照射する部分である。受光部120は、後述する載置面142に対して傾斜した姿勢で固定されている。投光部110により照射され、ワークWにて反射された測定光を受光部120が受光する。受光部120は、ワークWからの反射光を受光すると、受光量を表す受光信号を出力する。受光部120は、載置部140に載置されたワークWを撮像することによりワークWの全体形状を観察するための観察画像を生成することができる。
【0023】
本実施形態に係る受光部120は、高倍受光部と低倍受光部とを含んでいる。高倍受光部は、ワークWを低倍受光部に比べて拡大して撮像可能な部分である。一方、低倍受光部は、高倍受光部に比べて視野範囲が広い受光部である。
【0024】
台座部600は、ベースプレート602と載置部140と移動制御部144とを備えている。この台座部600のベースプレート602上に載置部140が支持されている。移動制御部144は、載置部140を移動させる部材である。移動制御部144は、台座部600側に設ける他、コントローラ200側に設けてもよい。
【0025】
光源部300は、測定部100と接続されている。光源部300は、測定光を生成して測定部100に供給する部分である。コントローラ200は、測定部100等を制御する部分である。表示部400は、コントローラ200と接続され、測定部100により生成された画像を表示し、また必要な設定、入力、選択等を行うことが可能に構成されている。
【0026】
載置部140は、ワークWが載置される載置面142を有する。
図4に示すように、載置面142内で互いに直交する2方向をX方向及びY方向と定義し、それぞれ矢印X、Yで示す。載置部140の載置面142に対して直交する方向をZ方向と定義し、矢印Zで示す。Z方向に平行な軸を中心に回転する方向をθ方向と定義し、矢印θで示す。
【0027】
載置部140は、載置面142をZ方向に延びる軸周りに回転させる回転ステージ143と、載置面142を水平方向(X方向、Y方向)に移動させる並進ステージ141とを含んでいる。並進ステージ141は、X方向移動機構及びY方向移動機構を有する。回転ステージ143は、θ方向回転機構を有する。載置部140は、載置面142にワークWを固定する固定部材(クランプ)を含めてもよい。さらに載置部140は、載置面142に平行な軸を中心に回転可能な機構を有するチルトステージを含んでもよい。
【0028】
移動制御部144は、後述する測定条件設定部261により設定された測定条件に従って、回転ステージ143の回転移動及び並進ステージ141の平行移動を制御する。また移動制御部144は、後述する測定条件設定部261により設定された測定領域に基づいて、載置移動部による載置部140の移動動作を制御する。
【0029】
コントローラ200は、CPU(中央演算処理装置)210、ROM(リードオンリメモリ)220、作業用メモリ230、記憶装置(記憶部)240及び操作部250等を含んでいる。コントローラ200には、PC(パーソナルコンピュータ)等が利用できる。
【0030】
測定部100の構成を
図4のブロック図に示す。測定部100は、投光部110、受光部120、照明光出力部130、測定制御部150、及びこれらを収納する本体ケース101を備えている。投光部110は、測定光源111、パターン生成部112及び複数のレンズ113、114、115を含む。受光部120は、カメラ121及び複数のレンズ122、123を含んでいる。複数の受光部を設けることで異なる倍率での測定を行う場合、低倍用のカメラ121と低倍用のレンズを含む受光部120aと、高倍用のカメラ121と高倍用のレンズを含む受光部120bとが装着されてもよい。なお、この構成に限らず、1つのカメラ121に対し複数のレンズを切り替えることで倍率を可変としたり、1つのカメラ121に対しズームレンズを設けることで倍率を可変としてもよい。
【0031】
投光部110は、載置部140の斜め上方に配置されている。
図4に示す例においては、測定部100が2つの投光部110を含んでいるが、測定部100は、複数の投光部110を含んでもよい。ここでは、第一の方向から測定対象物WKに対して第一測定光ML1を照射可能な第一測定光投光部110A(
図4において右側)と、第一の方向とは異なる第二の方向から測定対象物WKに対して第二測定光ML2を照射可能な第二測定光投光部110B(
図4において左側)がそれぞれ設けられている。第一測定光投光部110A、第二測定光投光部110Bは受光部120の光軸を対称の中心として対称に配置される。なお、図示しないが、投光部110を3以上備えたり、あるいは投光部110と載置部140を相対移動させて、共通の投光部110を用いつつも、照明の方向を異ならせてワークWに投光させることも可能である。また以上の例では投光部110を複数用意し、共通の受光部120で受光する構成としているが、逆に共通の投光部110に対して、複数の受光部120を用意して受光するように構成してもよい。さらにこの例では投光部110が投光する照明光のZ方向に対する照射角度を固定としているが、これを可変とすることもできる。
【0032】
各第一測定光投光部110A、第二測定光投光部110Bは、測定光源111としてそれぞれ第一測定光源、第二測定光源を備える。これら測定光源111は、例えば白色光を出射するハロゲンランプである。測定光源111は、単色光を発光する光源、例えば青色光を出射する青色LED(発光ダイオード)や有機EL等の他の光源であってもよい。測定光源111から出射された光(以下、「測定光」と呼ぶ。)は、レンズ113により適切に集光された後、パターン生成部112に入射される。
【0033】
投光部110A、110Bの中心軸と受光部120の中心軸とは、載置部140上のワークWの配置と投光部110、受光部120の被写界深度が適切となる位置において交差するように、受光部120、投光部110A、110B、載置部140の相対的な位置関係が定められている。また、θ方向の回転軸の中心は、受光部120の中心軸と一致しているため、θ方向に載置部140が回転した際に、ワークWが視野から外れることなく、回転軸を中心に視野内で回転するようになっている。
【0034】
パターン生成部112は、測定光をワークWに対して投光させるよう、測定光源111から出射された光を反射させる。パターン生成部112に入射した測定光は、予め設定されたパターン及び予め設定された強度(明るさ)に変換されて出射される。パターン生成部112により出射された測定光は、複数のレンズ114、115により受光部120の観察・測定可能な視野よりも大きい径を有する光に変換された後、載置部140上のワークWに照射される。
【0035】
パターン生成部112は、測定光をワークWに投光させる投光状態と、測定光をワークWに投光させない非投光状態とに切り替え可能な部材である。このようなパターン生成部112には、例えばDMD(デジタルマイクロミラーデバイス)等を利用できる。DMDを用いたパターン生成部112は、投光状態として測定光を光路上に反射させる反射状態と、非投光状態として測定光を遮光させる遮光状態とを切り替え可能に、測定制御部150により制御できる。
【0036】
DMDは多数のマイクロミラー(微小鏡面)を平面上に配列した素子である。各マイクロミラーは、測定制御部150により個別にON状態、OFF状態を切り替えることができるので、多数のマイクロミラーのON状態、OFF状態を組み合わせて、所望の投影パターンを構成できる。これによって、三角測距に必要なパターンを生成して、ワークWの形状の測定が可能となる。このようにDMDは、測定時には測定用の周期的な投影パターンをワークWに投光する投影パターン光学系として機能する。またDMDは応答速度にも優れ、シャッターなどに比べ高速に動作させることができる利点も得られる。
【0037】
なお以上の例では、パターン生成部112にDMDを用いた例を説明したが、本発明はパターン生成部112をDMDに限定するものでなく、他の部材を用いることもできる。例えば、パターン生成部112として、LCOS(Liquid Crystal on Silicon:反射型液晶素子)を用いてもよい。あるいは反射型の部材に代えて透過型の部材を用いて、測定光の透過量を調整してもよい。この場合は、パターン生成部112を測定光の光路上に配置して、測定光を透過させる投光状態と、測定光を遮光させる遮光状態とを切り替える。このようなパターン生成部112には、例えばLCD(液晶ディスプレイ)が利用できる。あるいは、複数ラインLEDを用いた投影方法、複数光路を用いた投影方法、レーザとガルバノミラー等で構成される光スキャナ方式、ビームスプリッタで分割したビームを重ね合わせることによって発生された干渉縞を用いるAFI(Accordion fringe interferometry)方式、ピエゾステージと高分解能エンコーダ等で構成される実体格子と移動機構を用いた投影方法等でパターン生成部112を構成してもよい。
【0038】
受光部120は、載置部140の上方に配置される。ワークWにより載置部140の上方へ向けて反射された測定光は、受光部120の複数のレンズ122、123により集光、結像された後、カメラ121により受光される。
【0039】
カメラ121は、例えば撮像素子121aを含むCCD(電荷結合素子)カメラである。撮像素子121aは、例えばモノクロCCD(電荷結合素子)である。撮像素子121aは、CMOS(相補性金属酸化膜半導体)イメージセンサ等の他の撮像素子であってもよい。カラーの撮像素子は各画素を赤色用、緑色用、青色用の受光に対応させる必要があるため、モノクロの撮像素子と比較すると計測分解能が低く、また各画素にカラーフィルタを設ける必要があるため感度が低下する。そのため、本実施の形態では、撮像素子としてモノクロのCCDを採用し、後述する照明光出力部130をRGBにそれぞれ対応した照明を時分割で照射して撮像することにより、カラー画像を取得している。このような構成にすることにより、計測精度を低下させずに測定物のカラー画像を取得することができる。
【0040】
なお、撮像素子121aとして、カラーの撮像素子を用いても良い。この場合、計測精度や感度はモノクロの撮像素子に比べて低下するが、照明光出力部130からRGBにそれぞれ対応した照明を時分割で照射する必要がなくなり、白色光を照射するだけで、カラー画像を取得できるため、照明光学系をシンプルに構成できる。撮像素子121aの各画素からは、受光量に対応するアナログの電気信号(以下、「受光信号」と呼ぶ。)が測定制御部150に出力される。
【0041】
測定制御部150には、図示しないA/D変換器(アナログ/デジタル変換器)及びFIFO(First In First Out)メモリが実装されている。カメラ121から出力される受光信号は、光源部300による制御に基づいて、測定制御部150のA/D変換器により一定のサンプリング周期でサンプリングされると共にデジタル信号に変換される。A/D変換器から出力されるデジタル信号は、FIFOメモリに順次蓄積される。FIFOメモリに蓄積されたデジタル信号は画素データとして順次コントローラ200に転送される。
【0042】
コントローラ200の操作部250は、例えばキーボードやポインティングデバイス等を含むことができる。ポインティングデバイスとしては、例えばマウスやジョイスティック等が用いられる。
【0043】
コントローラ200のROM220には、システムプログラム等が記憶される。コントローラ200の作業用メモリ230は、例えばRAM(ランダムアクセスメモリ)からなり、種々のデータの処理のために用いられる。記憶装置240は、ソリッドステートドライブや、ハードディスクドライブ等からなる。記憶装置240には、リバースエンジニアリングプログラムが記憶される。また、記憶装置240は、測定制御部150から与えられる画素データ(画像データ)、設定情報、測定条件等の種々のデータを保存するために用いられる。測定条件としては、例えば投光部110の設定(パターン周波数、パターン種類)や、受光部120の種別(低倍受光部、高倍受光部)など、ワークWの形状を測定する際に後述するスキャナモジュール260で設定される各種の設定が含まれる。さらに記憶装置240は、測定画像を構成する画素毎に、輝度情報、座標情報、属性情報を記憶することもできる。
【0044】
CPU210は、与えられた信号やデータを処理して各種の演算を行い、演算結果を出力する制御回路や制御素子である。本明細書においてCPUとは、演算を行う素子や回路を意味し、その名称によらず、汎用PC向けのCPUやMPU、GPU、TPU等のプロセッサに限定するものでなく、FPGA、ASIC、LSI等のプロセッサやマイコン、あるいはSoC等のチップセットを含む意味で使用する。
【0045】
CPU210は、測定制御部150から与えられる画素データに基づいて画像データを生成する。また、CPU210は、生成した画像データに作業用メモリ230を用いて各種処理を行う。例えば、CPU210は、受光部120から出力される受光信号に基づいて、載置部140の特定の位置において受光部120の視野内に含まれるワークWの立体形状を表す測定データを生成する。測定データは、受光部120で取得された画像そのものであり、例えば位相シフト方式でワークWの形状を測定する場合、複数枚の画像が1つの測定データを構成することになる。なお、測定データは、三次元位置情報を有する点の集合である点群データであってもよく、この点群データにより、ワークWの測定データを取得できる。点群データは、三次元座標を有する複数の点の集合体で表現されるデータである。
【0046】
ワークWの形状を測定する際、ワークWの少なくとも一部の測定データを上述したように取得した場合、取得した一部の測定データの周囲に位置するワークWの他の部位の測定データを取得するように移動制御部144で載置部140を移動させて、当該位置でのワークWの他の部位の測定データを生成することを繰り返し、得られた複数の測定データを合成することでワークWの全体の形状を含む合成測定データを生成することができる。合成測定データを生成するモードを連結モードと呼ぶことができ、連結モードを選択することで、単一視野で撮像した場合に比べて広視野の画像を取得できる。
【0047】
移動制御部144は、ワークWの少なくとも一部の測定データに基づいて、回転ステージ143の回転動作のみを実行するか、回転ステージ143の回転動作と並進ステージ141の平行移動動作の両方を実行するかを決定する。これにより、ワークWの外形に応じて、撮像範囲をユーザが意識することなく自動判定することにより、三次元計測が容易となる。なお、移動制御部144は、並進ステージ141をXY方向に移動させた後に、XY方向の移動を停止させた状態で、回転ステージ143を回転させるよう制御でき、これにより、ワークWの周囲の形状も取得できる。
【0048】
表示部400は、測定部100で取得された縞投影画像や、縞投影画像に基づいて生成した深度画像、あるいは測定部100で撮像されたテクスチャ画像、各種ユーザインタフェース画面等を表示させるための部材である。表示部400は、例えばLCDパネル又は有機EL(エレクトロルミネッセンス)パネルにより構成される。さらに表示部400にタッチパネルを利用することで、操作部250と兼用することができる。また表示部400は、受光部120により生成された画像も表示可能である。
【0049】
光源部300は、制御基板310及び観察用照明光源320を含む。制御基板310には、図示しないCPUが実装される。制御基板310のCPUは、コントローラ200のCPU210からの指令に基づいて、投光部110、受光部120及び測定制御部150を制御する。なお、この構成は一例であり、他の構成としてもよい。例えば測定制御部150で投光部110や受光部120を制御したり、又はコントローラ200で投光部110や受光部120を制御することとして、制御基板を省略してもよい。あるいはこの光源部300に、測定部100を駆動するための電源回路を設けることもできる。
【0050】
観察用照明光源320は、例えば赤色光、緑色光及び青色光を出射する3色のLEDを含む。各LEDから出射される光の輝度を制御することにより、観察用照明光源320から任意の色の光を発生することができる。観察用照明光源320から発生される照明光ILは、導光部材(ライトガイド)を通して測定部100の照明光出力部130から出力される。なお観察用照明光源には、LEDの他、半導体レーザ(LD)やハロゲンライト、HIDなど、他の光源を適宜利用することもできる。特に撮像素子としてカラーで撮像可能な素子を用いた場合は、観察用照明光源に白色光源を利用できる。
【0051】
照明光出力部130から出力される照明光ILは、赤色光、緑色光及び青色光を時分割で切り替えてワークWに照射する。これにより、これらのRGB光でそれぞれ撮像されたテクスチャ画像を合成して、カラーのテクスチャ画像を得て、表示部400に表示させることができる。
【0052】
コントローラ200は、CPU210、ROM220、作業用メモリ230、記憶装置240等により、
図5に示すスキャナモジュール260と変換モジュール270と統合モジュール280と解析モジュール290とを構成している。これらモジュール260、270、290の動作の詳細は、後述するが、
図8、
図9に示すフローチャートに基づいて説明する。
【0053】
概略について説明すると、スキャナモジュール260は、ワークWの形状を測定することによって当該ワークWの画像データを取得し、当該画像データに基づいてワークWのメッシュデータを作成する部分である。変換モジュール270は、スキャナモジュール260により作成されたメッシュデータをCADデータに変換する部分である。CADデータは、解析曲面、自由曲面で構成される三次元形状情報であり、サーフェスデータ、ソリッドデータ、設計に用いるデータなどを含んでいる。サーフェスデータは、円筒の側面データ、平面データなど、自由曲面・解析曲面で構成される形状表面のデータである。
【0054】
解析モジュール290は、メッシュデータを取得し、取得したメッシュデータから複数の幾何要素を抽出し、抽出された複数の幾何要素間の寸法を算出する部分である。
【0055】
統合モジュール280は、スキャナモジュール260から変換モジュール270や解析モジュール290への信号やデータの送信、変換モジュール270からスキャナモジュール260への信号やデータの送信を行う部分である。本例において、モジュールとは、複数の演算処理を1つの単位で実行し得るものであり、例えば機能単位、機能ブロック等の呼ぶこともできる。
【0056】
詳細は後述するが、スキャナモジュール260は、例えば、測定条件設定部261、スキャナ制御部262、メッシュデータ作成部263、スキャナ出力部264等を有している。測定条件設定部261は、ワークの形状の測定条件を設定する部分である。スキャナ制御部262は、測定条件設定部261で設定された測定条件に従って測定部100を制御して画像データを生成し、生成した画像データに基づいてワークWの測定データを取得する部分である。メッシュデータ作成部263は、スキャナ制御部262で取得されたワークWの画像データに基づいてメッシュデータを作成する部分である。スキャナ出力部264は、メッシュデータ作成部263で作成されたメッシュデータと、付加データとを変換モジュール270に出力する部分である。付加データは、測定条件とワークWの測定データから算出されたデータとの少なくとも一方を含むデータである。
【0057】
つまり、スキャナモジュール260は、測定部100の制御を行うとともに、ワークWの形状測定を実施した諸条件(測定機種、測定倍率、解像度など)および測定時のRawデータ(例えば画像データ等)を3次元データとともに生成する。3次元データは、複数のポリゴンを含むメッシュデータであり、ポリゴンデータとも呼ぶことができる。ポリゴンは、複数の点を特定する情報と、それらの点を結んで形成される多角形面を示す情報とで構成されるデータであり、例えば3つの点を特定する情報と、それら3つの点を結んで形成される三角形の面を示す情報とで構成することができる。メッシュデータおよびポリゴンデータは、複数のポリゴンの集合体で表現されるデータと定義することも可能である。
【0058】
変換モジュール270では、メッシュデータをCADデータに変換するとともに、その変換処理について、測定条件・Rawデータをもとにして決定する。具体的には、変換モジュール270は、例えば、データ入力部271、処理パラメータ決定部272、CAD変換部273、CAD出力部274、補正部275等を有している。データ入力部271は、スキャナ出力部264から出力されたメッシュデータと、付加データの入力を受け付ける部分である。処理パラメータ決定部272は、データ入力部271で受け付けた付加データに従って、メッシュデータをCADデータに変換する際の処理パラメータを決定する部分であり、
図10に示すようなパラメータテーブルに基づいて処理パラメータの決定が可能に構成されている。CAD変換部273は、処理パラメータ決定部272により決定された処理パラメータに従ってメッシュデータをCADデータに変換する部分である。CAD出力部274は、CAD変換部273で変換されたCADデータを出力する部分である。また、メッシュデータの情報は、
図11、
図12に示すような形態で情報を保持しておくことが可能になっている。これについては後述する。
【0059】
変換モジュール270では、CAD変換処理における変換パラメータ、変換アルゴリズムおよびその組み合わせ・処理順序・繰り返し回数などを決定することができ、例えば、測定条件:倍率に基づいてポリゴンから曲率計算を行う際の探索半径を変更する、などが可能である。また、測定部100の機種に応じて、CAD変換時の平滑化フィルタの実施可否を決定したり、Rawデータ中の画像輝度データに応じてポリゴン処理における重みを決定することも可能である。
【0060】
解析モジュール290は、例えば、メッシュデータを取得するデータ取得部291、取得したメッシュデータから複数の幾何要素を抽出する要素抽出部292、抽出された複数の幾何要素間の寸法を算出する算出部293、設定部294、データ抽出部295、変換データ出力部296、近似化処理部297等を有している。
【0061】
解析モジュール290は、さらに、データ取得部291で取得したメッシュデータの内、CAD変換を実行する変換領域を設定する設定部294と、設定部294で設定された変換領域に基づいて、変換モジュール270に出力するメッシュデータを抽出するデータ抽出部295と、データ抽出部295で抽出されたメッシュデータを変換モジュール270に出力するスキャナ出力部(変換データ出力部)264とを有している。変換データ出力部は、スキャナモジュール260のスキャナ出力部264で代用してもよいし、スキャナ出力部264とは別に設けてもよい。
【0062】
本リバースエンジニアリングシステム1は、測定・処理決定・変換の各モジュール260、270をすべて内包したオールインワン形態であり、各モジュール260、270間のデータ送受信は自動化することも可能となる。
【0063】
各モジュール260、270間のデータ送受信を自動化する場合、これらモジュール260、270を統合する統合モジュール280を設ける。これにより、各モジュール260、270は統合モジュール280から指定された処理を進める形態となる。統合モジュール280の役割は測定・処理決定・CAD変換等を実行する各モジュール260、270のいずれかに集約することも可能である。また、解析モジュール290の各機能をスキャナモジュール260に統合することも可能である。
【0064】
図6は、変形例1に係るモジュールの構成例を示す図である。この変形例1では、データ入力部271および処理パラメータ決定部272により処理決定モジュール270Aが構成され、またCAD変換部273およびCAD出力部274により処理実行モジュール270Bが構成されている。処理決定モジュール270Aと処理実行モジュール270Bとで変換モジュール270が構成されている。変形例1の場合、全てのデータの送受信が統合モジュール280を介して行われる。
【0065】
図7は、変形例2に係るモジュールの構成例を示す図である。この変形例2では、統合モジュールを省略しており、スキャナモジュール260、処理決定モジュール270A、処理実行モジュール270Bが直列に構成されている。
【0066】
(リバースエンジニアリングシステムの動作)
図8および
図9は、リバースエンジニアリングシステム1の動作を示すフローチャートである。スタート後のステップSA1では、コントローラ200上でメインアプリケーションである解析アプリケーションを起動する。ステップSA2では、スキャナモジュール260を起動する。ステップSA3では、測定倍率(低倍か高倍)を選択する。ステップSA1~SA3は、ユーザによる操作である。ユーザによる操作は、操作部250等を利用して行うことができ、操作部250の操作状態はCPU210で検出されて各制御に反映される。
【0067】
ステップSA4では、ステップSA3で選択された測定倍率が低倍か高倍かをスキャナモジュール260で判定する。ステップSA3で選択された測定倍率が高倍である場合には、ステップSA5に進み、受光部120を高倍用に切り替える。一方、ステップSA3で選択された測定倍率が低倍である場合には、ステップSA6に進み、受光部120を低倍用に切り替える。ステップSA5、SA6は、スキャナモジュール260が実行する。
【0068】
ステップSA7では、照明の明るさや露光時間、ゲイン等の露光条件を調整する。ステップSA8では、測定モード(解像度/多重撮り回数)を選択する。ステップSA9では別の測定モード(カラー有無、測定範囲)を選択する。ステップSA10では、測定ショット数を指定する。ステップSA11では、測定実行ボタンを押下する。ステップSA7~SA11は、ユーザによる操作であり、解像度の設定、多重撮り回数の設定、カラー有無の設定、測定範囲の設定は、全て測定条件設定部261で受け付けられる。解像度は、測定部(撮像部)100の解像度である。
【0069】
ステップSA12は、スキャナモジュール260が測定を実行する。すなわち、測定実行ボタンが押下されたことをスキャナモジュール260が検出すると、スキャナ制御部262が、測定条件設定部261で設定された測定条件に従って測定部100を制御して画像データを生成し、生成した画像データに基づいてワークWの測定データを取得する。スキャナ制御部262がワークWの測定データを取得すると、メッシュデータ作成部263が、その測定データに基づいてメッシュデータを作成する。このとき、ポリゴン各頂点の信頼度の情報も作成される。
【0070】
ステップSA13では、測定結果を表示部400に表示させる。ステップSA14では、測定が完了したか否かを判定する。完了していなければステップSA3に戻る一方、完了していればステップSA15に進む。ステップSA15では、測定結果合成を実行する。ステップSA16では、ステップSA15で実行した測定結果合成を表示部400に表示させる。
【0071】
ステップSA17では、測定が完了したか否かを再度判定する。完了していなければステップSA3に戻る一方、完了していればステップSA18に進んで測定終了処理を実行する。
【0072】
ステップSA19では、メッシュデータ作成部263で作成されたメッシュデータと、付加データとを、スキャナ出力部264が変換モジュール270に出力する。これにより、測定データと、測定データを取得したときの倍率、解像度の情報、多重取り回数の情報、カラー有無の情報、測定範囲の情報が第1の付加データとしてメインアプリに転送されるとともに、ポリゴン各頂点の信頼度の情報等が第2の付加データとしてメインアプリに転送される。さらに、メッシュデータに基づくワークWの画像が表示部400に表示される。
【0073】
ステップSA20では、座標系を設定・選択し、その後、ステップSA21で、CADデータに変換する変換領域を指定ないし選択する。次いで、ステップSA22では、コントローラ200上でユーザが変換モジュール270を起動する。変換モジュール270が起動されると、スキャナ出力部264から出力されたメッシュデータと、付加データの入力がデータ入力部271で受け付けられる。尚、本実施例では、メインアプリ(解析モジュール290)で座標系や変換領域を決定しているが、変換モジュール270で座標系や変換領域を決定しても良い。
【0074】
すなわち、変換モジュール270は、
図13に示すような変換領域指定用ユーザインタフェース画面700を生成して表示部400に表示させる。変換領域指定用ユーザインタフェース画面700には、ワークWの画像を表示する画像表示領域701と、変換領域指定領域702とが設けられている。変換領域指定領域702では、全指定ボタン702aと、操作部250の操作によって囲んだ領域を指定する際に操作する第1領域指定ボタン702bと、所定の面によって2つに分割して一方の領域を指定する際に操作する第2領域指定ボタン702cと、操作部250の操作によって描いた多角形で囲んだ領域を指定する際に操作する第3領域指定ボタン702dと、指定を解除する際に操作する解除ボタン702eとが設けられている。全指定ボタン702aが操作されると、ワークWの全領域が指定される。第1領域指定ボタン702b、第2領域指定ボタン702cおよび第3領域指定ボタン702dが操作されると、ワークWの一部の領域が指定される。また、変換領域指定用ユーザインタフェース画面700には、出力指示ボタン(変換指示ボタン)704が設けられている。出力指示ボタン704が操作されると、メッシュデータが変換モジュール270に出力される。
【0075】
その後、
図9に示すフローチャートのステップSB1に進む。ステップSB1では、CADデータに変換する変換領域がワークWの全領域であるか、ワークWの一部の領域(部分領域)であるかを判定する。全領域である場合にはステップSB2に進み、スキャナ出力部264から出力されたメッシュデータのポリゴン全体を抽出する一方、部分領域である場合にはステップSB3に進み、スキャナ出力部264から出力されたメッシュデータのポリゴンのうち、指定された領域のみ抽出する。
【0076】
ステップSB4では、ユーザが変換モードを選択する。変換モードとしては、ユーザの設定・調整操作が不要なフルオートモードと、ユーザが設定・調整操作を行うマニュアルモードとがある。ステップSB5では、ユーザが選択したモードがフルオートモードであるか、マニュアルモードであるかを判定する。マニュアルモードである場合には、ステップSB6に進み、
図14に示すように、サーフェス変換GUI(グラフィカルユーザインタフェース)を起動し、変換モジュール270が、サーフェス変換用ユーザインタフェース画面710を表示部400に表示させる。サーフェス変換GUIは、CADデータに変換するためのGUIと呼ぶこともできる。
【0077】
サーフェス変換用ユーザインタフェース画面710には、ワークWの画像を表示する画像表示領域711と、詳細設定領域712とが設けられている。詳細設定領域712には、サーフェス変換前に行われる処理を設定する前処理設定領域712aと、出力形式選択領域712bと、変換方法設定領域712cとが設けられている。出力形式選択領域712bでは、STEPファイルとIGESファイルの中から選択可能になっている。なお、選択可能な出力形式はこれらに限らず、CADネイティブ形式やParasolid形式などから選択できてもよい。
【0078】
ステップSB7では、メッシュデータをサーフェス変換(CADデータに変換)する前に、当該メッシュデータに対して例えば穴埋め処理等を実施するか否かを判定する。ここで、前処理とは、穴埋め処理や不要部除去処理、ヒーリング処理、リメッシュ処理等が挙げられる。穴埋め処理とは、メッシュデータ上で開放エッジ(隣接ポリゴンが存在しないエッジ)を特定し、連続した開放エッジで構成されるループを特定した後、そのループ内に新たなメッシュデータを作成して当該ループを補正する。具体的には、変換モジュール270の補正部275が、データ入力部271で受け付けたメッシュデータにポリゴンが存在しないループが含まれている場合に当該ループ内に新たなメッシュデータを作成してループを補正する。要するに、ステップSB7では、ループ内をポリゴンで埋め、穴の無いデータを生成する。これにより、完全に穴が埋まった閉じたメッシュデータをCADデータに変換することが可能になるので、変換後のデータもソリッドデータにできる。また、リメッシュ処理とは、メッシュの三角形を正三角形に近づける処理である。
【0079】
メッシュデータに対し前処理を実行する場合には、ステップSB8に進んで前処理をユーザが実行する。この処理は自動処理であるため、リバースエンジニアリング工程の中で適切なタイミングで実施すればよい。
【0080】
ステップSB8において、変換モジュール270は、
図15に示すようなメッシュ編集用ユーザインタフェース画面720を生成して表示部400に表示する。メッシュ編集用ユーザインタフェース画面720には、メッシュデータに基づく画像が表示される画像表示領域721と、操作領域722とが設けられている。操作領域722には、画像表示領域721に表示されているメッシュデータの一部を選択するための選択操作ボタン722a、および、選択した領域を削除するための削除ボタン722b等が設けられている。ユーザは選択操作ボタン722aおよび削除ボタン722bを操作して穴埋め処理、不要部除去処理、ヒーリング処理、リメッシュ処理等を実行する。
【0081】
ステップSB9では、サーフェス領域指定を実行するか否かを判定する。YESであればステップSB10に進む一方、NOであればステップSB11に進む。また、ステップSB7でメッシュ前処理を実施しないと判定された場合もステップSB11に進む。
【0082】
ステップSB10でサーフェス領域(CADデータへの変換領域)の指定を実行した後、ステップSB12ではサーフェス領域指定が完了したか否かを判定する。サーフェス領域指定が完了していない場合にはステップSB10に戻る一方、サーフェス領域指定が完了した場合にはステップSB13に進む。
【0083】
ステップSB14では受光部120の倍率が低倍であるか高倍であるかを判定する。低倍の場合には、ステップSB15に進み、低倍パラメータ、低倍アルゴリズム、低倍処理フローを選択する一方、高倍の場合には、ステップSB16に進み、高倍パラメータ、高倍アルゴリズム、高倍処理フローを選択する。ステップSB14~SB16は、処理パラメータ決定部272によって実行されるステップであり、ステップSB14~SB16を経ることで、ステップSA19で受け付けた付加データに従って、メッシュデータをCADデータに変換する際の処理パラメータを決定できる。
【0084】
例えば低倍と高倍では1つのポリゴン辺長が3倍異なることがある。この場合、ポリゴンの各頂点からの周囲探索条件を1/3にしたパラメータセットを利用するなど、倍率に応じた条件設定が可能となる。また、測定部100の機種によっては倍率に応じて固有のノイズが発生するおそれもあり、この場合には、処理パラメータの一つとして平滑化強度を倍率に応じて変化させてもよい。
【0085】
図8に示すステップSA8で選択した解像度は、処理パラメータの一つとして平滑化カーネルサイズと関連付けることができる。ステップSA8で選択した多重撮り回数は、処理パラメータの一つとして平滑化処理強度と関連付けることができる。ステップSA9で選択したカラー有無は、処理パラメータの一つとして、表面色情報をもとにしたCAD面色処理判定と関連付けることができる。ステップSA9で選択した測定範囲は、処理パラメータの一つとして、間引き処理強度と関連付けることができる。これら処理パラメータは、低倍用と高倍用とで異なっており、ステップSB14~SB16を処理を経ることで、適切な処理パラメータに自動的に設定される。
【0086】
Rawデータからの各頂点の輝度や、形状情報(ポリゴン頂点)に紐づいた信頼度パラメータを参照することで、ワークWの表面に本来存在しないノイズ形状を判定することができる。ノイズ形状を変換領域から無視して周囲形状から曲面推定を行うことで、ワークWの現物により近いCADデータへの変換が可能になる。
【0087】
ワークWの形状を測定する際の測定条件には、上述した倍率、視野(単一視野か広視野か)、露光条件(露光時間、ゲイン、照明の明るさ)、解像度設定(低解像度測定、標準測定、高解像度測定)、カラーの有無等が含まれる。
【0088】
ステップSB15を経てステップSB17に進んだ場合には、低倍パラメータ、低倍アルゴリズム、低倍処理フローを適用してサーフェス変換を実行する。ステップSB16を経てステップSB17に進んだ場合には、高倍パラメータ、高倍アルゴリズム、高倍処理フローを適用してサーフェス変換を実行する。つまり、CAD変換部273は、処理パラメータ決定部272により決定された処理パラメータに従ってメッシュデータをCADデータに変換する。
【0089】
より詳細には、ワークWの測定条件は、ワークWの形状情報とともにスキャナモジュール260から変換モジュール270に転送される。処理パラメータ決定部272は、
図10に示すようなパラメータテーブルに基づき、処理パラメータを決定する。パラメータテーブルは、例えば測定条件等の付加データの項目と、各々の項目に応じた処理パラメータとを対応付けたものであり、記憶装置240に記憶されている。したがって、処理パラメータ決定部272は、付加データの項目とパラメータテーブルとに基づいて処理パラメータを決定することができる。
【0090】
本例では、パラメータテーブルの付加データの項目として解像度の情報が割り当てられている。よって、パラメータテーブルは、解像度の情報と当該解像度の情報に応じた処理パラメータとを対応付けたものとなっている。
【0091】
例えば倍率の場合は、レンズの光学倍率と撮像素子121aの画素ピッチに応じて空間分解能が決定されるため、倍率の変化に起因して形状情報の分解能が変化することになる。よって、CAD変換部273で実施する演算処理では、例えば曲率計算のための周辺探索半径や、フィルタを適用する際の強度の適切な値が異なる。
図10に示すように、各測定条件に対して各処理パラメータを予めテーブル化しておくことで、CAD変換アルゴリズムで適用する処理パラメータを受光部120の倍率条件に基づき自動的に決定可能となる。
【0092】
別の例として、視野の場合、ワークWのサイズが大きくなる傾向に基づいて、測定データのサンプリングを粗くしてもよい条件が存在し、また一定の倍率において設定した処理パラメータのうち一部の設定に係数を乗じて、より大きなワークWでは細かい部分を無視するような処理パラメータを設定可能にすることもできる。
図10に示す例では、低倍かつ広視野であれば、微小穴判定サイズ=0.2かつ形状検知比率=2.0であり、トータルの微小穴判定サイズ=0.2×2.0=0.4と設定できる。
【0093】
一方、ステップSB14~SB16を経た処理パラメータの決定とは独立して、CAD変換部273がCADデータに変換する場合に、ワークWの画像データから算出されたデータであり、形状情報に付帯されている付加データ(例えば信頼度、有効フラグ、色情報など)を用いてCADデータへの変換時の処理パラメータを決定することもできる。具体的には、信頼度が所定の値以上の場合にのみCADデータを構成するデータとして採用したり、有効フラグが所定の値の場合にのみCADデータを構成するデータとして採用するなど、ワークWの画像データから算出されたデータに基づいて、CADデータへの変換時に一定のルールを適用することもできる。本リバースエンジニアリングシステム1では、ワークWの形状情報だけでなく、メッシュデータに含まれるポリゴン・頂点に個別付与された情報をCAD変換部273が予め決められたルールに基づき把握できる。データセットのデータ構造の例は、
図11に示している。
【0094】
例えばデータ1として頂点情報、データ2として法線情報、データ3として信頼度が割り当てられるというルールが定められた配列設定テーブルが存在していた場合、これに基づいてデータセットを解釈することで、
図11に示すようなデータ構造を再現できる。この配列設定テーブルは、記憶装置240に記憶されている。配設設定テーブルには、メッシュデータに対して割り当てられる付加データ(第1の付加データ)として測定条件が含まれるとともに、メッシュデータを構成する頂点情報が含まれており、さらに、頂点情報ごとに割り当てられる付加データ(第2の付加データ)も含まれている。第2の付加データには、頂点の信頼度、有効フラグ、テクスチャ情報等が含まれている。配設設定テーブルでは、第1の付加データと、頂点情報と、第2の付加データとの配列が定められている。
【0095】
スキャナ出力部264は、
図11に示す配列設定テーブルに基づいて、メッシュデータを構成する頂点情報と、第1の付加データおよび第2の付加データとの配列を特定することができる。スキャナ出力部264は、特定した配列に従って、メッシュデータを構成する頂点情報と、第1の付加データおよび第2の付加データとを配列したデータセットを変換モジュール270に出力する。
【0096】
データ入力部271は、スキャナ出力部264から出力されたデータセットの入力を受け付け、処理パラメータ決定部272は、
図11に示す配列設定テーブルに基づいて、データ入力部271で受け付けたデータセットからメッシュデータを構成する頂点情報と、第1の付加データおよび第2の付加データを特定する。処理パラメータ決定部272は、記憶装置240に記憶された配列設定テーブルに基づいて特定した第1の付加データに基づいて、メッシュデータをCADデータに変換する際の処理パラメータを決定する。つまり、配列設定テーブルを記憶させておくことで、スキャナモジュール260と変換モジュール270とに同じルールを共有させることができるので、スキャナモジュール260から出力される付加データを変換モジュール270で解釈できる。また、第1の付加データに基づいて、メッシュデータをCADデータに変換する際の処理パラメータを決定することにより、メッシュデータ全体に適用するパラメータを事前に決定でき、処理時間の短縮を図ることができる。
【0097】
また、処理パラメータ決定部272は、記憶装置240に記憶された配列設定テーブルに基づいて特定した第2の付加データに基づいて、メッシュデータを構成する各頂点情報をCADデータへの変換に用いるか否かを決定することも可能である。すなわち、第2の付加データに頂点の信頼度が含まれている場合、信頼度に基づいて各頂点情報をCADデータへの変換に用いるか否かを決定でき、例えば信頼度が所定以下である場合には当該頂点情報をCADデータへの変換に用いないようにすることができる。
【0098】
図11に示す配列テーブルにおいて、第2の付加データは、ポリゴン情報ごとに割り当てられるデータであってもよい。この場合、配列テーブルは、第1の付加データと、ポリゴン情報と、該ポリゴン情報ごとに割り当てられる第2の付加データとの配列を定めたものになる。スキャナ出力部264は、配列設定テーブルに基づいて、ポリゴン情報と、第1の付加データおよび第2の付加データとの配列を特定し、特定した配列に従って、ポリゴン情報と、第1の付加データおよび第2の付加データとを配列したデータセットを変換モジュール270に出力する。データ入力部271は、ポリゴン情報と、第1の付加データおよび第2の付加データとの配列が特定されたデータセットの入力を受け付ける。そして、処理パラメータ決定部272は、配列設定テーブルに基づいて、データ入力部271で受け付けたデータセットから、ポリゴン情報と、第1の付加データおよび第2の付加データを特定し、特定した第1の付加データに基づいてメッシュデータをCADデータに変換する際の処理パラメータを決定する。この場合も、特定した第2の付加データに基づいて、メッシュデータを構成する各ポリゴン情報をCADデータへの変換に用いるか否かを決定してもよい。
【0099】
より具体的には、
図11に示すように、形状情報に付帯されている信頼度に関する情報に基づいて、例えば「信頼度r1値をもとに各頂点・ポリゴンの処理時の重みを決定する(信頼度=重みの場合を含む)」としたり、「有効フラグf1が1のポリゴンのみ処理に利用する」などの形状部分ごとに処理を変えることができる。この際、信頼度-重み設定テーブルなどを予め保有しておく。また、測定部100の機種に応じて付帯情報の配列設定テーブルを予め保有することで、機種ごとのデータフォーマットが異なる場合でもCAD変換部273で把握可能となり、CADデータへの変換が適切になされる。
【0100】
また、
図12に示すように、測定データには、測定モード、測定範囲、測定機種ID、プローブタイプ(プローブでワークWを測定した場合)等で構成された条件ヘッダが含まれていてもよい。
【0101】
ステップSB18では、変換モジュール270が、
図16に示すような結果表示用ユーザインタフェース画面730を生成して表示部400に表示させる。結果表示用ユーザインタフェース画面730には、メッシュデータに基づくワークWの画像が表示されるメッシュデータ表示領域731と、サーフェス変換後のワークWの画像が表示される変換後画像表示領域732とが設けられている。メッシュデータ表示領域731と変換後画像表示領域732とは表示部400に同時に表示されるとともに、並ぶように配置されている。これにより、ユーザはサーフェス変換前の画像とサーフェス変換後の画像とを容易に見比べることができる。
【0102】
ステップSB19では、サーフェス変換が完了したか否かを判定する。サーフェス変換が完了していない場合にはステップSB6に戻り、再びサーフェス変換GUIを起動する。サーフェス変換が完了した場合にはステップSB20に進んでサーフェス変換終了処理を実行する。ステップSB21では、CAD変換部273で変換されたCADデータをCAD出力部274が出力し、出力されたCADデータを記憶装置240に保存する。保存操作は、
図16に示す結果表示用ユーザインタフェース画面730のCADファイル保存ボタン733の操作によって実行される。また、結果表示用ユーザインタフェース画面730の設定ファイル保存ボタン734の操作がなされると、設定ファイルが記憶装置240に保存される。
【0103】
出力されたCADデータは、3次元CADソフト等に読み込んでリバースエンジニアリングに利用することができる。例えば、CADデータに基づいて製品を作成すること、製品を成形するための金型を作成すること等が可能である。
【0104】
(メッシュデータの合成)
リバースエンジニアリングシステム1では、解像度の異なる複数のメッシュデータを合成することが可能に構成されている。具体的には、メッシュデータ作成部263は、解像度が第1の解像度で取得された測定データに基づく第1のメッシュデータと、解像度が第1の解像度よりも大きな第2の解像度で取得された測定データに基づく第2のメッシュデータとを作成する。その後、メッシュデータ作成部263は、解像度が相対的に小さな第1のメッシュデータと、解像度が相対的に大きな第2のメッシュデータとを合成し、合成メッシュデータを作成する。第1の解像度と第2の解像度との差は任意に設定できる。
【0105】
処理パラメータ決定部272は、メッシュデータ作成部263で作成された合成メッシュデータから、解像度が相対的に小さな第1の解像度で取得された測定データに基づいて作成された第1のメッシュデータを特定し、該特定した第1のメッシュデータをCADデータに変換する際の処理パラメータを、
図10に示すようなパラメータテーブルに基づいて決定する。
【0106】
また、処理パラメータ決定部272は、メッシュデータ作成部263で作成された合成メッシュデータから、解像度が相対的に大きな第2の解像度で取得された測定データに基づいて作成された第2のメッシュデータを特定し、該特定した第2のメッシュデータをCADデータに変換する際の処理パラメータを、
図10に示すようなパラメータテーブルに基づいて決定する。
【0107】
その後、CAD変換部273は、メッシュデータ作成部263で作成された第1のメッシュデータと第2のメッシュデータの各々について、処理パラメータ決定部272で決定された処理パラメータを適用することで、合成メッシュデータをCADデータに変換する。そして、CAD出力部274は、CAD変換部273が変換したCADデータを出力する。
【0108】
メッシュデータ作成部263は、第2の付加データとして、各々の頂点情報またはポリゴン情報が第1の解像度または第2の解像度のいずれの解像度で取得された測定データに基づくのかを示す解像度の情報を割り当てた合成メッシュデータを作成可能に構成されている。すなわち、各々の頂点情報またはポリゴン情報が取得された時の解像度が相対的に小さな第1の解像度である場合と、相対的に大きな第2の解像度である場合とが存在することがある。第1の解像度と第2の解像度とが存在している場合には、各々の頂点情報またはポリゴン情報が、いずれの解像度で取得された測定データに基づくものなのかを判別可能にしておく必要があり、この場合に解像度の情報を割り当てた合成メッシュデータを作成することで、判別が容易に行えるようになる。
【0109】
(各モジュールの詳細)
図17は、解析モジュール290の詳細を示すブロック図である。データ取得部291は、スキャナモジュール260のメッシュデータ作成部263(
図5に示す)で作成されたメッシュデータを取得する。これをメッシュデータ1とする。メッシュデータ1は、要素抽出部292、設定部294および近似化処理部297に入力されるとともに、第1表示制御部198にも入力される。
【0110】
要素抽出部292では、メッシュデータ1から円、平面等の幾何要素を複数抽出する。算出部293では、要素抽出部292で抽出された複数の幾何要素を使って寸法を算出する。設定部294では、メッシュデータ1の中からCADデータに変換したい領域(変換領域)を設定できる。設定部294で設定された変換領域に基づいて、データ抽出部295が部分的に切り出されたメッシュデータ2を抽出する。メッシュデータ2は変換領域に対応したデータであり、メッシュデータ1に比べてデータ容量が小さい。このメッシュデータ2が変換データ出力部296に入力される。変換データ出力部296に入力されたメッシュデータ2は、変換モジュール270に出力される。つまり、ワークWの一部に相当する変換領域に対応したメッシュデータ2を変換モジュール270に出力することで、変換モジュール270にはCADデータへの変換に必要な一部分のデータのみ引き渡されることになり、データ容量が削減され、結果的にCADデータへの変換時間を短縮できる。
【0111】
CADデータに変換する際に厳密な形状を必要としない形状については、解析モジュール290の近似化処理部297によって近似された解析曲面(例えば平面、円筒、自由曲面など)を作成できる。作成された解析曲面の集合は変換データ出力部296から変換モジュール270に出力される。
【0112】
近似化処理部297は、幾何要素に近似する近似化領域と、当該近似化領域を近似する幾何要素の指定を受け付け可能に構成されている。近似化処理部297は、受け付けた近似化領域に含まれるメッシュデータを、指定された幾何要素で近似する。
【0113】
変換モジュール270では、解析モジュール290からメッシュデータおよび解析曲面のデータを受け取ると、CADデータへの変換処理を実行する。変換モジュール270で高負荷なCADデータへの変換処理を実行している間も、解析モジュール290の処理は継続できる。また、解析モジュール290は、データ取得部291で取得したメッシュデータを表示部400に表示させるための第1表示制御部298を有している。
【0114】
図18は、解析モジュール290の処理手順を示すフローチャートである。スタート後のステップSC1では、メッシュデータ1(
図17に示す)を取得する。ステップSC2では、ユーザが処理内容(例えば、測定処理、CAD変換処理など)を指定する。測定処理が指定された場合には、ステップSC3に進んで測定処理を実行する一方、CAD変換処理が指定された場合には、ステップSC4に進んでCAD変換処理を実行する。ステップSC5では、解析アプリケーションが終了されたか否かを判定し、終了された場合には本処理を終了する一方、終了されていない場合にはステップSC2に戻る。ステップSC4のCADデータへの変換処理はメッシュデータから解析曲面を生成する処理であることから、ステップSC3の測定処理と比べると処理時間が非常に長くなることが多い。解析モジュール290は、CADデータ変換指示をした後は、CADデータの変換処理の完了を待つことなく、測定処理や別のCADデータの変換指示を実行することができる。
【0115】
図19は、測定処理手順の一例を示すフローチャートである。
図18のステップSC3で測定開始されると、
図19のステップSD1に進み、
図17に示す要素抽出部292がメッシュデータから複数の幾何要素(例えば平面、円筒、球など)を抽出する。その後、ステップSD2に進み、
図17に示す算出部293がステップSD1で抽出された複数の幾何要素間の寸法を算出する。例えば、幾何要素が2つの平面である場合には平面と平面の距離を算出することができ、また幾何要素が平面と円筒である場合には平面の法線と円筒の軸の角度を算出することができる。
【0116】
図19のステップSD1における幾何要素の抽出処理手順の一例について、
図20に示すフローチャートに基づいて説明する。開始後のステップSE1では、幾何要素の種類の選択を受け付ける。ステップSE2では、メッシュデータを選択する。ステップSE3では、確定ボタンが押されたか否かを判定する。確定ボタンが押されていなければステップSE2に進む一方、確定ボタンが押された場合には、ステップSE4に進み、エラー判定を行う。ステップSE4でエラー有りと判定された場合にはステップSE2に進む。エラーが無ければ、幾何要素の抽出処理を終了する。
【0117】
図21は、
図20のステップSE2におけるメッシュ選択処理手順の一例を示すフローチャートである。スタート後のステップSF1では、選択方法の指定を受け付けるとともに、指定された選択方法の種別を判定する。選択方法の種別が形状自動選択である場合にはステップSF2に進んで形状自動選択処理によりメッシュを選択する。例えば、3D表示画面でユーザが操作部250を用いてダブルクリック等すると、領域の種類で選択した幾何形状が続く範囲が自動的に選択状態になる。
【0118】
また、選択方法の種別が多角形で囲む方式の選択である場合にはステップSF3に進んで多角形で囲む処理によりメッシュを選択する。例えば、3D表示画面でユーザが操作部250を操作して多角形を指定すると、多角形で囲まれた部分の領域が選択状態になる。
【0119】
また、選択方法の種別がブラシでペイントする処理である場合にはステップSF4に進んでブラシでペイントする処理によりメッシュを選択する。例えば、3D表示画面でユーザが操作部250のマウスボタンを押したままマウスを移動させると、その移動軌跡が選択状態になる。ここで、ブラシの太さや形状は異なるものに指定可能であってもよい。なお、選択方法の種別は上述したものに限られない。
【0120】
図22は、
図19のステップSD2における寸法測定処理手順の一例を示すフローチャートである。スタート後のステップSG1では、モードの指定を受け付けるとともに、指定されたモードを判定する。3D計測モードであればステップSG2に進み、幾何公差計測モードであればステップSG3に進み、3D比較計測モードであればステップSG4に進み、断面計測モードであればステップSG5に進み、断面比較計測モードであればステップSG6に進み、厚み計測モードであればステップSG7に進み、平面計測モードであればステップSG8に進む。これはあくまでも例であり、計測モードの種類は上述した種類に限られるものではない。
【0121】
図23は、解析モジュール290によるCAD変換指示手順を示している。スタート後のステップSH1では、CAD変換指示がなされたか否かを判定する。CAD変換指示がなされた場合にはステップSH2に進み、CAD変換指示を実行する。CAD変換指示がなされていない場合には、ステップSH3に変換方法の指定を受け付けるとともに、指定された変換方法を判定する。ステップSH3で領域指定が選択された場合、即ち、メッシュデータを形状に忠実なCADデータに変換する場合にはステップSH4に進み、メッシュデータの中からCAD変換対象の指定を受け付ける。この場合、ステップSH6に進んでメッシュ編集を受け付ける。一方、ステップSH3で幾何要素抽出が選択された場合、メッシュデータから幾何要素を抽出する。ここで抽出される幾何要素はメッシュデータの一部分を近似化することで抽出されるものであり、幾何要素抽出処理は近似化処理ということもできる。この場合には、ステップSH5に進んでメッシュデータの近似化処理を実行する。例えば、
図19のステップSD1の幾何要素の抽出処理を実行し、これによって抽出された幾何要素を対応する幾何形状に近似化する。その後、ステップSH7ではCAD変換対象に登録する。ステップSH7を経た後、ステップSH1に戻る。尚、複数の変換領域を登録することもできる。
【0122】
図24は、
図23のステップSH4のCAD変換対象の指定手順を示すフローチャートである。スタート後のステップSI1では、例えば
図13に示すような変換領域指定用ユーザインタフェース画面700を表示部400に表示させ、画像表示領域701に表示されている画像に基づいて、メッシュデータ中に指定する必要のある変換領域が残っているか否かをユーザが判定する。指定する必要のある変換領域が残っていない場合には、ステップSI2に進み、メッシュデータの抽出処理を実行した後、本処理を終了する。一方、指定する必要のある変換領域が残っている場合にはステップSI3に進み、変換領域の選択方法の指定を受け付ける。選択方法としては、例えば上述した多角形選択、平面や円筒などの幾何形状、色指定など、どのような方法であってもよく、
図13に示す全指定ボタン702a、第1領域指定ボタン702b、第2領域指定ボタン702c、第3領域指定ボタン702d等の操作によって実行可能である。選択された変換領域は、選択前とは異なる色に着色された状態で画像表示領域701に表示されるので、どの領域が変換領域として指定されているのかユーザが簡単に把握できる。
【0123】
このとき、メッシュデータを表示部400に表示させるための座標系を選択してもよい。すなわち、
図5に示す設定部294は、メッシュデータを表示部400に表示させるための表示条件に含まれる座標系を設定可能に構成されている。メッシュデータを表示部400に表示する際の表示条件の設定は、表示条件設定部を構成している設定部294によって受け付けられる。設定部294で設定された表示条件は、記憶装置240に記憶される。第1表示制御部298は、記憶装置240に記憶された表示条件に基づいて、データ取得部291により新たに取得されたメッシュデータについて、当該メッシュデータを表示部400に表示させる際の座標系を特定することで、設定部294で設定された表示状態を再現して表示部400に表示させることが可能である。
【0124】
表示条件の設定方法の一例として、変換領域指定用ユーザインタフェース画面700には、座標系選択領域703が設けられている。座標系選択領域703は、例えばプルダウンメニュー等で構成されており、装置座標系、ワークWを構成している台座の座標系やヘッド部の座標系、ワークWに外接する最小直方体の座標系(外接最小直方体座標系)等の中からユーザが選択可能になっている。選択された座標系が設定部294で設定されると、第1表示制御部298は、設定された座標系を表示用の座標としてメッシュデータに割り当てて、当該メッシュデータを表示部400に表示せる。
【0125】
また、第1表示制御部298は、メッシュデータを表示するためのメッシュデータ表示領域(例えば
図13に示す画像表示領域701)と、要素抽出部292により抽出される幾何要素の形状の指定と、算出部293により算出される寸法の算出方法の指定を受け付ける計測設定領域(
図27に示す解析曲面作成用ユーザインタフェース画面740)と、設定部294により設定されるCAD変換を実行する変換領域の指定を受け付ける変換領域指定領域(
図13に示すボタン702a~702eが表示される領域)と、メッシュデータを変換モジュール270に出力するための指示を受け付ける出力指示アイコン(
図13に示す出力指示ボタン704)と、を表示部400に表示させる。
【0126】
変換データ出力部296は、メッシュデータと、設定部294で設定された座標系とを対応付けた出力ファイルを作成する。変換データ出力部296は、作成した出力ファイルを変換モジュール270に出力する。
【0127】
変換モジュール270は、データ入力部271で入力を受け付けたメッシュデータを表示部400に表示させるための第2表示制御部276を有している。データ入力部271は、変換データ出力部296で出力された出力ファイルを読み出し可能に構成されている。第2表示制御部276は、出力ファイルに含まれるメッシュデータを該出力ファイルに含まれる座標系に基づいて表示部400に表示させることで、解析モジュール290でのメッシュデータの表示状態を表示部400で再現するように構成されている。
【0128】
第2表示制御部276は、データ入力部271で受け付けたメッシュデータを表示するCAD変換対象データ表示領域(例えば
図14に示す画像表示領域711)と、CAD変換対象データ表示領域に表示されているメッシュデータをCADデータに変換する変換指示を受け付ける変換指示アイコン(
図14に示す変換指示ボタン714)とを表示部400に表示させることができる。
【0129】
第2表示制御部276は、
図13に示す出力指示ボタン704が操作されたことを検知すると、CAD変換対象データ表示領域と、変換指示アイコンとを含む第1の変換ウインドウ(
図14に示すサーフェス変換用ユーザインタフェース画面710に相当)を生成し、表示部400に表示させる。第2表示制御部276は、出力指示ボタン704が操作されたことを検知すると、CAD変換対象データ表示領域と、変換指示アイコンとを含む第2の変換ウインドウを、第1の変換ウインドウに加えて表示部400に表示させる。つまり、解析モジュール290の出力指示が複数回操作されたら、回数分だけ変換モジュール270が起動することになる。
【0130】
変換データ出力部296は、メッシュデータを、設定部294で設定された座標系に基づいて座標変換し、当該座標変換後のメッシュデータを変換モジュール270に出力するように構成されていてもよい。この場合、データ入力部271は、変換データ出力部296で出力された座標変換後のメッシュデータを読み出し可能に構成されている。第2表示制御部276は、座標変換後のメッシュデータを表示部400に表示させることで、解析モジュールでのメッシュデータの表示状態を表示部400で再現するように構成されている。
【0131】
メッシュデータをそのままCADデータに変換する場合は、変換したい領域のメッシュデータをマウス等の操作によって選択することができる。また、部分的に選択されたメッシュデータは選択領域の境界部で欠けのあるデータになる。CADデータは欠けのないデータが望ましいので、このタイミングでメッシュ編集(例えば穴埋め、削除、ヒーリング)を実行してもよい。
【0132】
ステップSI4ではステップSI3で指定された選択方法を適用してメッシュ選択を実行する。ステップSI5では、確定ボタンが押されたか否かを判定し、確定ボタンが押されていない場合にはステップSI4に進む一方、確定ボタンが押されていない場合にはステップSI6に進む。ステップSI6では、エラー判定を行う。ステップSI7でエラー有りと判定された場合にはステップSI4に進む。エラーが無ければ、選択したメッシュを登録する。本処理が終了してユーザが変換指示を実行すると、変換モジュール270が起動し、CADデータ変換処理が開始される。
【0133】
図25は、メッシュ編集手順を示すフローチャートである。開始後、ステップSJ1では、メッシュ編集が完了したか否かを判定する。メッシュ編集が完了した場合には本処理を終了し、メッシュ編集が完了していない場合にはステップSJ2に進む。ステップSJ2では、メッシュ編集の種別の指定を受け付けるとともに、種別が削除であるか、穴埋めであるかを判定する。削除である場合にはステップSJ3に進んで所望のメッシュを操作部250で選択し、削除する処理を実行し、また穴埋めである場合にはステップSJ4に進んでメッシュの欠けている開放エッジを選択して穴埋め処理する。ステップSJ5では、メッシュヒーリングを実行し、その後、ステップSJ1に戻る。
【0134】
メッシュヒーリング処理は、ステップSJ3でメッシュ削除またはステップSJ4で穴埋め処理を実行したメッシュデータに対して、自動的に実施する処理である。メッシュ編集の結果、不正メッシュを生成してしまうと、CADデータ変換の際に変換エラーとなってしまうため、CADデータ変換の前に当該ヒーリング処理を実行する。具体的には、ヒーリング処理とは、自己交差除去、ノンマニホールドメッシュの除去、微小メッシュの削除といった不正メッシュを修復する工程である。自己交差とは、接続関係のないメッシュ同士が空間で互いに交差しているものである。ノンマニホールドメッシュとは、3つ以上のポリゴンが1つのエッジを共有しているメッシュである。微小メッシュとは、例えば接続関係のあるポリゴンデータのメッシュ総数が少ないもの(例:100ポリゴン以下)である。
【0135】
図26は、CADデータへの変換処理手順を示すフローチャートである。スタート後のステップSK1では、変換対象がメッシュデータであるか、解析曲面であるかを判定する。メッシュデータである場合にはステップSK2に進み、CAD変換部273が、設定部294で設定された変換領域のメッシュデータを自由曲面のサーフェスデータとしてCADデータに変換する。解析曲面である場合にはステップSK3に進み、CAD変換部273が、CADソフトで取り扱うことができる平面、円筒、曲面といったデータ形式に変換する。つまり、CAD変換部273は、
図23のステップSH5で抽出された幾何要素に含まれるメッシュデータを解析曲面のサーフェスデータとしてCADデータに変換することができる。
【0136】
ステップSK4では、ステップSK2で変換されたCADデータと、ステップSK3で変換されたCADデータを出力対象として設定する。ステップSK5では、全ての変換対象を変換したか否かを判定し、変換対象が残っている場合にはステップSK1に戻る一方、変換対象が残っていない場合にはステップSK6に進む。ステップSK6では、ステップSK4で設定された出力対象が複数存在している場合に、複数のCADデータを1つに統合する。
【0137】
ステップSK6で結合させるデータ形式にはパーツファイルとアセンブリファイルの2種類がある。パーツファイルとは、全てのモデルが1つの剛体として扱われるファイルである。アセンブリファイルとは、全てのモデルが別々のモデルと扱われるファイルである。アセンブリファイルでは、個々のモデルをCADソフト上で別々に移動させることができる。
【0138】
解析曲面を作成する場合の詳細について詳細に説明する。解析モジュール290は、
図27に示す解析曲面作成用ユーザインタフェース画面740を生成して表示部400に表示させる。解析曲面作成用ユーザインタフェース画面740には、選択可能な基本計測要素が表示される要素表示領域741が設けられている。基本計測要素としては、例えば平面、円筒、円錐、球、点等がある。解析曲面作成用ユーザインタフェース画面740には、選択可能な特殊計測要素も表示可能になっている。
【0139】
図28は、解析曲面の作成手順を示す図であり、
図17に示す近似化処理部297によって実行可能である。
図28における符号750は表示部400に表示されるユーザインタフェース画面を示している。この例では、円筒部を2箇所有するワークWが表示されているので、ユーザは、一方の円筒部上の点P1を操作部250のマウスでクリックすると、点P1が含まれる円筒部が選択された状態になり、色が変化する(色が変化した部分を斜線で示す)。この操作は、幾何要素に近似する近似化領域を指定する操作であり、近似化処理部297で受け付けられる。その後、他方の円筒部上の点P2を操作部250のマウスでクリックすると、点P2が含まれる円筒部が選択された状態になり、色が変化する。この操作も、近似化処理部297で受け付けられる。また、近似化領域を近似する幾何要素として円筒の指定を近似化処理部297が受け付ける。その後、確定ボタンを操作することで、2つの円筒部が選択された状態が確定するともに、選択された部分を円筒で近似する。近似する幾何形状は、円筒に限られるものはなく、例えば平面、球、円錐等に近似することも可能である。
【0140】
図29に示すようなウインドウを表示部400に表示させることで、3D要素と対象要素との選択表示が個別に可能になっている。つまり、変換データ出力部296は、設定部294で設定された変換領域のメッシュデータと、近似化領域に含まれるメッシュデータを幾何要素で近似することで作成された幾何要素データとを混在させて変換モジュール270に出力する。
【0141】
本例では、変換領域の選択後、レシピの保存、再現が可能になっている。ポリゴン選択コマンド履歴を保存する場合には、ポリゴンを選択するまでの上述した操作部250による3D操作をすべて保存する。ポリゴン選択コマンド履歴を再現する場合には、新しいメッシュデータ(一部が修正されたメッシュデータ)に対して、同様のポリゴン選択コマンドを実行することで、ほぼ同じ位置に存在するメッシュデータを選択することができる。つまり、レシピに保存されている視線情報やポリゴンのコマンドに基づいて、ユーザがメッシュ抽出時に行った操作をそのまま再現することで、正確にメッシュデータを抽出することができる。
【0142】
また、選択済みポリゴンを保存、選択済みポリゴンから一定距離に含まれる新しいポリゴンを選択することもできる。この場合の保存は、選択済みポリゴンを、座標系を考慮して、そのまま保存する。再現は、新しいポリゴンデータ(一部が修正されたポリゴンデータ)と同じ座標系に、選択済みポリゴンを読み込み、選択済みポリゴンから一定の距離に存在する新しいポリゴンデータの領域を選択状態にすることで、ほぼ同じ位置に存在するメッシュデータを選択することができる。つまり、過去に抽出したメッシュデータから、近い領域を抽出することができ、例えば、過去抽出済のメッシュデータを所定量拡張し、拡張した領域内に含まれるメッシュデータを抽出できる。尚、過去のメッシュデータの姿勢と、新たに取得したメッシュデータの姿勢とは略同じであるが、正確に一致するわけではないので、過去抽出済のメッシュデータを拡張することで近い領域を特定することができる。
【0143】
ポリゴン選択コマンド履歴の保存、再現のレシピには、座標系(測定データ座標系に対する変換行列)として、基準平面、平面要素(平面、平行面など)、基準軸、軸要素(円筒、円錐、面交線など)、原点、点要素(点、面と軸の交点など)が含まれる。ポリゴン選択コマンド履歴の保存、再現のレシピには、3D視線情報として、カメラ(視点)の位置(x, y, z)カメラの姿勢(roll, pitch, yaw)、視線方向ベクトルが含まれる。ポリゴン選択コマンド履歴の保存、再現のレシピには、3Dビューボリューム情報として、投影変換方法(透視投影 or 平行投影 or ・・・)、ビューポート設定(left, right, bottom, top, near, far)が含まれる。ポリゴン選択コマンド履歴の保存、再現のレシピには、ポリゴン選択コマンド履歴として、ポリゴン選択1(ダブルクリック選択の場合)、投影面上のダブルクリック座標(x, y)、ポリゴン選択2(線分割の場合)、投影面上の1点目座標(x, y)、線分1点目、投影面上の2点目座標(x, y)、線分2点目、投影面上の3点目座標(x, y)選択領域、ポリゴン選択3(多角形内側の場合)投影面上の1点目座標(x, y)投影面上の2点目座標(x, y)等が含まれる。
【0144】
選択済みポリゴン保存、選択済みポリゴンから一定距離に含まれる新しいポリゴンを選択する場合のレシピには、座標系(測定データ座標系に対する変換行列)として、基準平面、平面要素(平面、平行面など)、基準軸、軸要素(円筒、円錐、面交線など)、原点、点要素(点、面と軸の交点など)が含まれる。選択済みポリゴン保存、選択済みポリゴンから一定距離に含まれる新しいポリゴンを選択する場合のレシピには、選択済みポリゴン、探索範囲(距離)等が含まれる。尚、レシピに保存せず、再現時にユーザ入力を受け付けても良い。なお、ポリゴン選択コマンドの履歴以外にも、メッシュ前処理の履歴もレシピに含めてもよい。
【0145】
(複数の変換モジュール)
図30は、複数の変換モジュールを備えている形態を示している。すなわち、リバースエンジニアリングシステム1は、第1の変換モジュール270Cと、第2の変換モジュール270Dとを有していてもよい。設定部294(
図5に示す)は、データ取得部291で取得したメッシュデータの内、第1のCAD変換を実行する第1の変換領域と、第2のCAD変換を実行する第2の変換領域とを設定する。データ抽出部295は、設定部294で設定された第1の変換領域に基づいて第1のメッシュデータを抽出可能に構成されるとともに、設定部294で設定された第2の変換領域に基づいて第2のメッシュデータを抽出可能に構成されている。変換データ出力部296は、データ抽出部295で抽出された第1のメッシュデータを第1の変換モジュール270Cに出力し、データ抽出部295で抽出された第2のメッシュデータを第2の変換モジュール270Dに出力する。
【0146】
例えば、第1の変換モジュール270Cは、第1のメッシュデータ(
図11中、円筒状の部分を構成するデータ)を第1のCADデータに変換する。一方、第2の変換モジュール270Dは、第1の変換モジュール270Cの動作ステータスに関わらず、第2のメッシュデータ(
図11中、立方体状の部分を構成するデータ)を第2のCADデータに変換する。つまり、第1の変換モジュール270CがCADデータの変換処理を行っている間であっても、別のメッシュデータを第2の変換モジュール270DでCADデータに変換できるので、第1のメッシュデータと第2のメッシュデータを並行してCADデータに変換でき、処理時間を短縮できる。CADデータに変換している間は、処理中であることを示すウインドウを生成して表示部400に表示させてもよい。また、CADデータへの変換中に変換処理をキャンセル可能なキャンセルボタンを設けておき、キャンセルボタンの操作によってCADデータへの変換処理をキャンセルしてもよい。
【0147】
(設計意図反映機能)
本実施形態に係るリバースエンジニアリングシステム1は、サーフェスデータを作成する際に設計意図を積極的に反映させることが可能な機能を備えている。全体概要を説明すると、
図31に示すように、まず、領域指定ユーザインタフェースが起動し、メッシュデータを表示部400に3D表示する。3D表示上でユーザは任意の領域と領域の形状属性(解析曲面の情報)を設定する。すなわち、
図5に示す形状属性設定部277が、データ取得部291で取得されたメッシュデータに含まれるポリゴンに形状属性を設定する。形状属性はユーザによって入力可能である。形状属性のユーザ入力は入力受付部271aで受け付けられる。
【0148】
また、
図5に示すリージョン特定部278は、データ取得部291で取得されたメッシュデータに含まれるリージョンを、形状属性設定部277で設定された形状属性に基づいて特定する。リージョン特定部278によりリージョンを特定するためのユーザによる操作は、入力受付部271aによって受け付けられるようになっている。入力受付部271aが、リージョンを特定するためのユーザによる操作を受け付けた場合、リージョン特定部278は、入力受付部271aで受け付けたユーザの操作に基づいてリージョンを特定する。また、入力受付部271aは、リージョン特定部278により特定されるリージョンの形状属性の指定も受け付け可能に構成されている。
【0149】
なお、リージョンとは、メッシュデータ(ポリゴンデータ)上の法線の向き/曲率などの数学的パラメータが類似する1つの領域に含まれるメッシュデータであり、ポリゴンの集合体と呼ぶこともできる。以下の説明でリージョン特定部278が特定した領域はリージョンに相当する。
【0150】
また、詳細は後述するが、
図5に示すデータ変換部279は、データ取得部291で取得されたメッシュデータに含まれるポリゴンのうち、リージョン特定部278で特定されたリージョンに含まれるポリゴンを、形状属性設定部277で設定された形状属性に基づいてサーフェスデータに変換する。ここで、データ変換部279は、リージョン特定部278で特定されたリージョンに含まれるポリゴンを、形状属性設定部277で設定された形状属性に基づいて解析曲面のサーフェスデータに変換してもよい。
【0151】
さらに、データ変換部279は、データ取得部291で取得されたメッシュデータに含まれる複数のポリゴンのうち、リージョン特定部278で特定されたリージョンに含まれないポリゴンを自由曲面のサーフェスデータに変換する。データ出力部としてのCAD出力部274は、データ変換部279で前記形状属性に基づいて変換されたサーフェスデータと、前記データ変換部で変換された自由曲面のサーフェスデータとをCADデータとして出力する。ここで、データ変換部279がリージョン特定部278で特定されたリージョンに含まれるポリゴンを解析曲面のサーフェスデータに変換する場合、解析曲面のサーフェスデータと自由曲面のサーフェスデータとが混在するデータをCADデータとして出力できる。
【0152】
自由曲面のサーフェスデータは、設計図上の位置決めが難しく、測定データの加工性は低いが、測定データへの追従性は高い。また、解析曲面のサーフェスデータは、軸を取得したり、面の下書きをしたり、位置決め時の拘束をかけたりできるため、測定データの加工性は高いが、数学的に表現されたデータであるため、測定データへの追従性は低い。このような2種類のサーフェスデータを混在させることで、測定データへの追従性を重視する領域は自由曲面で、測定データの加工性を重視する領域は解析曲面で出力することで、加工性と追従性を両立させることができる。
【0153】
図5に示す対応付け部271bは、リージョン特定部278で特定されたリージョンの形状属性と、当該リージョンに含まれるポリゴンとを対応付けた対応付けデータを作成する部分である。対応付け部271bが対応付けデータを作成した場合、対応付けデータは記憶装置240に記憶される。データ変換部279は、サーフェスデータに変換する際、記憶装置240から対応付けデータを読み込む。対応付けデータを読み込んだ後、データ変換部279は、データ取得部291で取得したメッシュデータから、記憶装置240に記憶された対応付けデータに基づいて一の形状属性が付与された複数のポリゴンを特定する。そして、データ変換部279は、特定された複数のポリゴンを当該ポリゴンに対応付けられた形状属性に基づいて一のサーフェスデータに変換することができる。
【0154】
リージョン特定部278は複数のリージョンを特定することも可能である。すなわち、リージョン特定部278は、データ取得部291で取得されたメッシュデータから第1のリージョンと第2のリージョンとを順に特定可能に構成することもできる。この場合、対応付け部271bは、リージョン特定部278で特定された第1のリージョンに含まれるポリゴンに対して第1の形状属性を対応付け、第1のリージョンと第2のリージョンとで重複領域が存在するか否かを判定する。対応付け部271bは、第1のリージョンと第2のリージョンとで重複領域が存在すると判定した場合、該重複領域に対して第2の形状属性を対応付けることで、前記重複領域に対してすでに対応付けられている第1の形状属性を第2の形状属性に変更することができる。
【0155】
また、対応付け部271bは、第1のリージョンと第2のリージョンとで重複領域が存在すると判定した場合、第2のリージョンのうち、重複領域以外の領域に対して第2の形状属性を対応付けることで、重複領域に対してすでに対応付けられている第1の形状属性を保持することもできる。
【0156】
あるリージョンに対して複数の形状属性が対応付けられている場合、データ変換部279は、複数の形状属性の各々に対応したサーフェスデータを生成する。この場合、重複領域に対して複数のサーフェスデータが存在することになり、不正データが生じてしまう。第1のリージョンと第2のリージョンとで重複領域が存在する場合、該重複領域に対して第1の形状属性を対応付けることで、不正データが生じることを防ぎつつ、優先度の高い形状をより広い面で定義するという実用性を向上させることができる。また、第1のリージョンと第2のリージョンとで重複領域が存在する場合、該重複領域に対して第2の形状属性を対応付けることで、不正データが生じることを防ぎつつ、後から容易にリージョンの範囲を変更できるという操作感(使い勝手)を向上させることができる。
【0157】
図5に示すセグメント処理部271cは、データ取得部291で取得したメッシュデータを複数のセグメントに分割する部分である。セグメント処理部271cは、まず、データ取得部291で取得されたメッシュデータを取得し、ポリゴンの面積やエッジ長、曲率、法線ベクトル等のポリゴンの幾何特性値を算出する。そして、算出されたポリゴンの幾何特性値に基づいて、セグメントを生成する。
【0158】
このとき、セグメント処理部271cは、データ取得部291で取得したメッシュデータに含まれる複数のポリゴンについて、形状属性が対応付けられているか否かを特定する。セグメント処理部271cは、形状属性が対応付けられていると特定された複数のポリゴンから、当該形状属性に対応した幾何要素が抽出されるようにメッシュデータをセグメント化するとともに、形状属性が対応付けられていないと特定された複数のポリゴンを、各々のポリゴンの幾何特性値に基づいて複数のセグメントにセグメント化するように構成されている。この場合、データ変換部279は、セグメント処理部271cによりセグメント化された各々のセグメントをサーフェスデータに変換する。
【0159】
ユーザによる領域指定が完了すると変換モジュール270が起動する。ユーザが指定しなかった領域については曲面の分割領域を自動生成し、ユーザが指定した領域と合成してメッシュデータをすべて覆う領域の集合であるセグメント情報を生成する。セグメント情報には、領域のリストと、形状属性設定部277で設定された領域の形状属性の情報が保持されている。
【0160】
曲面生成処理では、メッシュデータとセグメント情報から、個々の領域の曲面とトリムラインを計算し、トリムサーフェスを生成する。また、トリムサーフェス間の隣接情報であるトポロジ情報も生成する。CADデータ生成処理ではトリムサーフェスとトリムサーフェスの形状属性、およびトポロジ情報からBrep(Boundary representation)データを生成する。BrepデータからはCADファイル(STEPファイル)が一意に生成される。
【0161】
確認表示ユーザインタフェースではBrepデータを3D表示し、ユーザに対して最終確認を行う。生成されたBrepデータが意図通りであればCADファイルを生成して処理は終了する。Brepデータが意図通りになっていない場合は領域指定ユーザインタフェースに戻って処理をやり直すことになる。
【0162】
以下、具体例を挙げて説明する。
図32は、形状属性設定部277で設定された形状属性を反映させたCADデータを生成する手順を示すフローチャートである。ステップSL1は、保存済み領域を読み込んで開始する場合に保存済み領域を読み込むステップである。ステップSL2では、ユーザ領域を指定するか否かを判定する。ユーザ領域を指定する場合にはステップSL3に進んでユーザ領域を指定し、その後、ステップSL4に進む。ユーザ領域の指定は、リージョンを特定するためのユーザによる操作であり、入力受付部271aによって受け付けられる。
【0163】
ユーザ領域を指定しない場合にはステップSL4に直接進む。ステップSL4では、ユーザが指定した領域(ユーザ指定領域)を記憶装置240等に保存するか否かを判定する。ユーザ指定領域を記憶装置240等に保存する場合にはステップSL5に進み、ユーザ指定領域を記憶装置240等に保存し、その後、ステップSL6に進む。ユーザ指定領域を記憶装置240等に保存しない場合は、ステップSL6に直接進む。
【0164】
ステップSL6では自動領域生成を行う。例えば、リージョン特定部278は、入力受付部271aで受け付けたユーザ領域の指定操作に基づいてリージョンを特定する。このとき、ユーザによる形状属性の入力操作が入力受付部271aで受け付けられている場合には、ユーザによって入力された形状属性に基づいてリージョンを特定する。
【0165】
自動領域生成の方法は複数通りある。一の方法は、ユーザ指定領域とは独立して領域生成を行う方法であり、この方法では、後からユーザ指定領域と合成する。他の方法は、ユーザ指定領域を指定済み領域としてマークしておき、それ以外の領域について自動領域生成処理を行う方法である。自動領域生成時に、形状属性設定部277によって自動的に形状属性が設定されてもよい。ステップSL7では、自動生成領域とユーザ指定領域を合成する。上記他の方法の場合、ステップSL7は不要である。
【0166】
ステップSL8では、領域毎に曲面を生成する。ステップSL9では、隣合う曲面の境界に対して境界ヒーリング・補間処理を実行する。ステップSL10ではBrep構造を生成し、ステップSL11ではCADファイルを出力する。ステップSL12では、ユーザ指定領域を記憶装置240等に保存する。
【0167】
図33は、ユーザ領域指定の手順を示すフローチャートである。スタート後のステップSM1では、指定する必要のある領域が残っているか否かを判定する。指定する必要のある領域が残っていない場合には終了する。指定する必要のある領域が残っている場合にはステップSM2に進み、メッシュ選択を実行する。ステップSM3では確定ボタンが押されたか否かを判定する。確定ボタンが押されていない場合にはステップSM2に戻り、確定ボタンが押された場合にはステップSM4に進む。ステップSM4では、エラー判定を行う。エラー有りの場合にはステップSM2に戻り、エラーが無ければステップSM5に進む。ステップSM5では、領域の種類と選択したメッシュを登録する。
【0168】
図34は、プレビュー表示がある場合のユーザ領域指定の手順を示すフローチャートである。ステップSN1、SN2は
図33のステップSM1、SM2と同じである。ステップSN3では、プレビューボタンが押されたか否かを判定する。プレビューボタンが押されていない場合にはステップSN2に戻り、プレビューボタンが押された場合にはステップSN4に進み、ユーザが確認可能なプレビュー画面を生成して表示部400に表示させる。ステップSN5~7は、
図33のステップSM3~5と同じ処理である。
【0169】
図35は、
図34のステップSN4の詳細を示すフローチャートである。ステップSP1では、ユーザが選択したメッシュから領域の種類に応じて曲面を計算する。ステップSP2では、ステップSP1で計算した曲面とユーザが選択したメッシュを重ねて表示部400に表示する。ステップSP1で計算した曲面とユーザが選択したメッシュとは、区別可能な形態で表示される。区別可能な形態とは、ステップSP1で計算した曲面とユーザが選択したメッシュとを異なる色で表示する形態や、一方を半透明にして他方が見えるように表示する形態等である。
【0170】
図36は、メッシュ選択処理の手順を示すフローチャートである。ステップSQ1では、幾何形状の自動判定のあり/なしを判定する。幾何形状の自動判定とは、ユーザが指定した領域のメッシュの形状をもとに幾何形状の種類(平面、円筒、円錐、球、トーラス、または自由曲面)を自動的に判定して属性として設定することである。例えば、
図14に示すサーフェス変換用ユーザインタフェース画面710の詳細設定領域712にある平面ボタン、円筒ボタン、円錐ボタン、球ボタンのうち、いずれかが操作された場合には、幾何形状の種類が選択されたボタンで特定される幾何形状に設定される。
【0171】
詳細設定領域712にあるボタンが操作されると、
図38に示す領域指定用ユーザインタフェース画面760が生成されて表示部400に表示される。領域指定用ユーザインタフェース画面760には、メッシュデータに基づくワークWの画像が表示される画像表示領域761と、詳細設定領域762とが設けられている。詳細設定領域762には、設定された幾何要素も表示され、本例では平面が設定されている。画像表示領域761上でユーザが操作部250により、領域指定したい箇所でダブルクリックすると、現在指定しようとしている形状を自動的に抽出して選択する。平面が設定されている場合、ダブルクリックした箇所から連続して平面と見做せる領域が自動的に平面として選択される。マウスで囲んで指定する場合、マウスポインタで囲った形状が選択される。
【0172】
自動判定がなしの場合はステップSQ2に進んで幾何形状の選択を実行した後、ステップSQ3に進んでメッシュ選択操作を実行する。メッシュ選択操作は、
図21に示すフローチャートで説明したとおりである。リージョン特定部278によりリージョンを特定するためのユーザによる操作としては、例えばユーザによる点の指定や、所定の領域を囲む指定等があり、これらの操作は、入力受付部271aによって受け付けられる。点の指定を受け付けた場合には、リージョン特定部278は、入力受付部271aで受け付けた点を含む面の特性に基づいてリージョンを特定する。また、所定の領域を囲む指定を受け付けた場合には、リージョン特定部278は、入力受付部271aで受け付けた所定の領域に含まれるポリゴンをリージョンとして特定する。記憶装置240は、リージョン特定部278によりリージョンを特定するためのユーザによる操作として点または所定の領域の指定がなされた場合、点または所定の領域の座標情報を、メッシュデータを表示部400に表示させる際の表示条件と対応付けて記憶する。第2表示制御部276は、上記の通り、解析モジュール290でのメッシュデータの表示状態を表示部400で再現できる。リージョン特定部278は、表示状態が再現されたメッシュデータと、記憶装置240に記憶された座標情報とに基づいてリージョンを特定することもできる。その後、ステップSQ4では、幾何形状以外の属性設定(例えば色指定)を実行する。
【0173】
自動判定がありの場合はステップSQ5に進んでメッシュ選択操作を実行する。ステップSQ6では、幾何形状の自動判定を実行し、その後、ステップSQ7では、幾何形状以外の属性設定(例えば色指定)を実行する。
【0174】
図37は、ユーザ指定領域と自動生成領域の合成処理の手順を示すフローチャートである。各ステップ中の番号は、右側の図中における番号と対応している。ステップSR1では、自動生成領域の領域IDと重複しないようにユーザ指定領域の領域IDを振りなおす。ステップSR2では、自動生成領域にユーザ指定領域を上書きする。ステップSR3では、ユーザ指定領域に分断されて飛び地になった領域に独立した領域IDを付与する。以上のようにして合成後領域を得ることができる。
【0175】
自由曲面間境界の場合、まず、境界接続のヒーリングが必要か判断する。すなわち、境界線となる曲線上に一定間隔で点を置く。この点とそれぞれの曲面の距離の平均値と最大値を評価して、一定以上であるならばヒーリングが必要と判断し、両方の曲面を生成しなおす。その際、曲面をフィッティングする点群に曲面の領域に属する点群と境界曲線から生成した点群を用いる。また、境界曲線由来の点群の重みを領域由来の点群よりも大きくして計算する。次いで、再度ヒーリングが必要かを上述した方法で判定する。基準を満たさない場合、境界線由来の点群の重みを増して再度計算する。
【0176】
プリミティブ間境界の場合、まず、境界線をプリミティブに投影したものを新たな境界線とする。もしくは境界線を生成する際に元となる頂点をプリミティブに投影してから計算する。その後、境界接続のヒーリングが必要か判断する。すなわち、境界線となる曲線上に一定間隔で点を置く。この点と自由曲面との距離の平均値と最大値を評価して、一定以上であるならばヒーリングが必要と判断し、自由曲面を生成しなおす。その際、曲面をフィッティングする点群に曲面の領域に属する点群と境界曲線から生成した点群を用いる。また、境界曲線由来の点群の重みを領域由来の点群よりも大きくして計算する。次いで、再度ヒーリングが必要かを上述した方法で判定する。基準を満たさない場合、境界線由来の点群の重みを増して再度計算する。
【0177】
ユーザ指定領域と、ユーザが指定した解析曲面とが矛盾する場合が考えられる。ユーザ指定領域が例えば平面であったのに対して円筒面であると指定したような場合や、段差のある面を1つの領域にして平面であると指定したような場合には、領域指定時にエラーメッセージを表示してユーザに再指定を促すようにする。
【0178】
また、領域指定時には矛盾しない領域指定と解析曲面だったとしても、実際に曲面を生成した際に問題が発生することがある。例えば、隣接する自由曲面間、または自由曲面と解析曲面間の間が離れている場合や、または交差している場合、自由曲面側を変形して問題を解消するヒーリング処理をおこなう。
【0179】
解析曲面同士が隣接している場合、自由曲面では、曲面を変形することで隣接する領域を境界線で接続するヒーリング処理が可能であるが、解析曲面同士ではそれは不可能である。解析曲面が許容誤差範囲内で連続していれば問題ないが、連続していない場合はエラーとなる。エラーとなった場合には、確認ユーザインタフェースで問題を確認し、曲面間に自由曲面を挟んで領域指定をやり直すなどして回避する。
【0180】
例えば、ユーザによりリージョンを特定するための操作として所定の領域が囲まれる操作が行われた場合、リージョン特定部278は、囲まれた所定の領域に含まれる複数のポリゴンに基づいて近似平面を算出する。また、リージョン特定部278は、算出した近似平面の法線と、所定の領域に含まれるポリゴンの位置および法線とを取得する。そして、リージョン特定部278は、取得した近似平面の法線と、所定の領域に含まれるポリゴンの位置および法線とに基づいて、所定の領域が平面として近似できるか否かを判定することもできる。
【0181】
形状属性設定部277は、ポリゴンの曲率に基づいて当該ポリゴンの曲率半径を算出することも可能である。形状属性設定部277は、算出したポリゴンの曲率半径と、当該ポリゴンの法線の向きとに基づいて当該ポリゴンの曲率円の中心点を算出し、メッシュデータを構成する複数のポリゴンについて算出された曲率円の中心点の位置関係に基づいてデータ取得部291で取得されたメッシュデータに含まれるポリゴンに形状属性を設定することもできる。
【0182】
幾何形状を指定する場合のエラー処理も可能である。すなわち、平面や円柱面など、属性として幾何形状を設定した領域について、ユーザが選択した領域の形状と属性が一致しているかどうかを判定する。例えば、ユーザが指定した領域が属性で設定された幾何形状であると仮定して、最小二乗法などで幾何形状の解析曲面を推定する。解析曲面を推定した後、ユーザが指定した領域の各頂点それぞれについて、推定した解析曲面と頂点の最短距離を計算する。最短距離を計算した後、その最短距離の最大値、平均値を算出し、最大値、平均値がそれぞれ所定の閾値を上回っていた場合はエラーとする。最大値、平均値を算出する前に、最短距離の上位0.5%を取り除くなどの前処理を行い、外れ値除去を行ってもよい。外れ値除去により、形状ノイズによって領域指定が困難になる状態を防ぐことができる。
【0183】
自由曲面を指定する場合のエラー処理も可能である。すなわち、自由曲面についてオーバーハングした領域を1つの曲面として生成することは困難なため、オーバーハングの有無を判定する。例えば、ユーザが指定した領域の頂点座標について主成分分析を行い、第1主成分の方向を求める。第1主成分の方向を求めた後、ユーザが指定した領域の各頂点の法線ベクトルそれぞれについて、上記第1主成分の方向となす角度を計算する。それぞれの角度が所定の閾値を上回っている場合はエラーとする。所定の閾値は、例えば60°から80°程度とする。自由曲面についてはオーバーハングを検出した場合、ユーザに領域指定をやり直してもらう方法と、自動的に領域を分割してオーバーハングを解消する方法がある。後者については、例えばユーザが指定した領域内で最大の主曲率を持つ頂点を求めた後、その頂点から主曲率ベクトルの正負両方向で最も近い頂点をそれぞれ探す。見つかった頂点について領域の端に達するまで、主曲率ベクトルの正負両方向で最も近い頂点を探す処理を繰り返し行う。これにより、領域を分割する頂点列を得る。頂点列で領域を2分割し、それぞれの領域でオーバーハングを検出し、オーバーハングがある場合は再帰的に上記の方法で領域分割を行う。
【0184】
(サーフェスデータへの付加情報の付与)
本リバースエンジニアリングシステム1では、三次元形状とは直接関係しない付加情報をサーフェスデータに付与できるように構成されている。付加情報は、ワークWの表面特性を表す情報であり、例えばワークWの表面の色を示す色情報、ワークWの表面の光の反射度合いを示す反射情報、ワークWの表面の光の拡散度合いを示す拡散情報などである。
【0185】
図5に示すブロック図に基づいて説明すると、入力受付部271aは、付加情報として、形状属性ごとの色情報の指定を受け付け可能に構成されている。付加情報特定部271dは、データ変換部279で変換されたサーフェスデータに付与する付加情報を特定する部分である。例えば、付加情報特定部271dは、リージョン特定部278で特定されたリージョンに含まれる複数のポリゴンに対応付けられた付加情報に基づいて、当該リージョンに割り当てる一の付加情報を特定することができる。ここで特定される一の付加情報としては、例えば、リージョンに含まれる複数のポリゴンの代表色や代表輝度などが挙げられる。
【0186】
付加情報付与部271eは、データ変換部279で変換されたサーフェスデータに、付加情報特定部271dにより特定された付加情報を付与する部分である。付加情報特定部271dがリージョンに割り当てる一の付加情報を特定した場合、付加情報付与部271eは、特定された一の付加情報をリージョンに付与する。こうしてサーフェスデータに付加情報が付与されると、サーフェスデータに付加情報が付与されたCADデータをCAD出力部274が出力する。付加情報として色情報が割り当てられる場合、付加情報特定部271dは、リージョンに含まれる複数のポリゴンに付加情報として対応付けられた色情報に基づいて、当該リージョンに割り当てる一の付加情報として代表色を特定する。そして、付加情報付与部271eは、特定された代表色をリージョンに付与する。
【0187】
また、データ変換部279は、データ取得部291で取得されたメッシュデータに含まれる複数のポリゴンについて、形状属性が割り当てられているか否かを特定した後、形状属性が割り当てられていると特定された複数のポリゴンを、形状属性に基づいて、解析曲面のサーフェスデータに変換する一方、形状属性が割り当てられていないと特定された複数のポリゴンを、自由曲面のサーフェスデータに変換するように構成されている。解析曲面のサーフェスデータおよび自由曲面のサーフェスデータへの変換が実行された場合、付加情報特定部271dは、当該解析曲面のサーフェスデータに付与する付加情報として、形状属性ごとに指定された色情報を特定する一方、自由曲面のサーフェスデータに付与する付加情報として、予め定められた所定の色情報を特定する。
【0188】
対応付け部271bは、リージョン特定部278で特定されたリージョンに含まれるポリゴンと付加情報特定部271dで特定された付加情報とを対応付けることが可能に構成されている。対応付けられたポリゴンと付加情報とは記憶装置240等に記憶しておくこともできる。また、対応付け部271bは、リージョン特定部278で特定されたリージョンに含まれるポリゴンと、付加情報特定部271dで特定された付加情報と、入力受付部271aにより受け付けられた形状属性とを対応付けることが可能に構成されている。対応付けられたポリゴンと付加情報と形状属性とは記憶装置240等に記憶しておくこともできる。
【0189】
さらに、対応付け部271bは、入力受付部271aで付加情報として形状属性ごとの色情報の入力を受け付けた場合には、受け付けた形状属性と形状属性ごとの色情報とに基づいて、リージョンの形状属性に対応する色情報とリージョンに含まれるポリゴンとを対応付けることで、形状属性が同じリージョンに対して同じ色情報を対応付けることが可能に構成されている。
【0190】
以下、サーフェスデータへの付加情報の付与手順について
図39に示すフローチャートに基づいて説明する。スタート後のステップSR1では変換モジュール270を起動する。ステップSR2では、領域指定GUIとして、例えば
図14に示すようサーフェス変換用ユーザインタフェース画面710を変換モジュール270が生成して表示部400に表示させる。ステップSR3では、ユーザが属性を選択し、選択した属性を入力受付部271aが受け付ける。サーフェス変換用ユーザインタフェース画面710の詳細設定領域712には、形状種別選択領域712dが設けられており、この形状種別選択領域712dを操作することで、平面や円筒などの幾何形状の指定が可能になっている。また、ステップSR3では、ユーザが色の指定を行い、色の指定を入力受付部271aが受け付ける。色の指定を受け付ける際には、変換モジュール270が
図40に示すような色指定用ウインドウ770を生成して表示部400に表示させる。色指定用ウインドウ770には、色相や彩度が異なる複数の色見本が表示されており、ユーザが所望の色を指定可能に構成されている。
【0191】
ステップSR4では、ステップSR3で指定された形状に基づいてユーザが領域を指定する。ステップSR5では、属性変更の有無を判定する。ユーザが属性変更する場合には、ステップSR6に進む一方、属性変更しない場合にはステップSR7に進む。ステップSR6では、ユーザが属性を再選択する。ステップSR6は、ステップSR3と同様な手順を行うことが可能である。
【0192】
ステップSR7では、設定が終了したか否かを判定する。終了していない場合にはステップSR3に戻る一方、終了した場合にはステップSR8に進む。ステップSR8では、セグメント処理部271cがメッシュデータを複数のセグメントに分割する。ユーザが指定した領域は分割対象外とする。
【0193】
ステップSR9では、メッシュデータの全ポリゴンに対する処理が完了したか否かを判定する。完了していない場合にはステップSR8に進む一方、完了した場合にはステップSR10に進む。ステップSR10では面生成処理を実行する。その後、ステップSR11に進む。ステップSR11では、属性の有無を判定する。属性があればステップSR12に進む一方、属性が無ければステップSR13に進む。ステップSR12では、属性の種別を判定する。属性が形状の場合にはステップSR14に進む一方、属性が色の場合にはステップSR15に進む。
【0194】
ステップSR14では、付加情報特定部271dが、形状-色対応テーブルに基づいて色を特定する。形状-色対応テーブルとは、形状ごとに付与される色を特定したテーブルであり、例えば平面を青、円筒を緑と特定したテーブルなどである。このテーブルはユーザが作成してもよい。ステップSR15では、ユーザが指定した領域内のポリゴンから曲面を生成する。ステップSR16では、ステップSR15で生成した曲面に付加情報付与部271eが色情報を付与する。
【0195】
ステップSR13でポリゴン色があると判定された場合には、ステップSR17に進んで各々のセグメント領域内のポリゴン色から代表色を決定する。ここで決定される代表色は、一の付加情報の一例である。ステップSR13でポリゴン色がないと判定された場合には、ステップSR18に進んでユーザが指定した領域内のポリゴンから曲面を生成する。
【0196】
その後、ステップSR19に進み、全領域の処理が完了したか否かを判定する。全領域の処理が完了していない場合にはステップSR10に戻る一方、全領域の処理が完了した場合にはステップSR20に進んで付加情報が付与されたCADデータをCAD出力部274が出力して終了する。
【0197】
図41は、付加情報としてテクスチャ情報を持つ測定データの構成例を示す図である。テクスチャ情報にはテクスチャ画像が含まれている。
【0198】
以上説明したように、ワークWの形状を測定することで得られたメッシュデータに含まれる領域が特定されると、特定された領域に含まれるポリゴンがサーフェスデータに変換され、変換されたサーフェスデータに、例えば色、反射、カラー偏差等の付加情報を付与する場合には、付加情報を特定することで、特定された付加情報がサーフェスデータに自動的に付加される。そして、付加情報が付与されたCADデータが出力されるので、リバースエンジニアリングの際に役立つ情報として付加情報を利用することができる。
【0199】
また、リージョン特定部278で特定されたリージョンに含まれるポリゴンと、付加情報特定部271dで特定された付加情報と、形状属性と、を対応付けることができるので、形状属性が同じリージョンは同じ付加情報を自動的に付与できる。
【0200】
尚、付加情報がカラー偏差の場合、差分を緻密に表現した色情報を付加してCADデータ化するのは困難な場合があるので、代表色を決定し、決定した代表色に基づいてリージョンに付加情報を付与してもよい。また、付加情報がカラーテクスチャの場合は、テクスチャをそのまま付加してもよいし、リージョンごとに代表色を付与してもよい。
【0201】
(メッシュデータの補正機能)
本リバースエンジニアリングシステム1では、ワークWを測定して取得したメッシュデータを補正する補正機能を有しており、この補正機能により補正処理の実行が可能になっている。
図5に示すブロック図に基づいて説明すると、補正処理を開始するにあたり、入力受付部271aは、データ取得部291で取得したメッシュデータから補正処理の基準となる補正基準面を抽出するためのユーザ入力を受け付け可能に構成されている。補正基準面を特定するためのデータとしては、例えば補正基準面を構成するポリゴンおよび頂点、および、解析曲面の種別(平面、円筒など)と数式の係数等があり、これを保持しておく。
【0202】
基準面抽出部271fは、入力受付部271aで受け付けたユーザ入力に基づいて、データ取得部291で取得したメッシュデータから補正基準面を抽出する。補正部275は、基準面抽出部271fにより抽出された補正基準面に基づいて、データ取得部291で取得したメッシュデータを補正する。補正部275は、補正基準面に基づいて、該補正基準面の理想的な形状を表す幾何形状ポリゴンを生成することも可能であり、この場合、補正基準面に含まれるポリゴンを削除して、幾何形状ポリゴンで置換する。ここで、幾何形状ポリゴンとは、円筒や平面といった幾何要素をテッセレート化(三角ポリゴン化)したものである。
【0203】
補正部275による補正の例としては、データ取得部291により取得されたメッシュデータと補正基準面との乖離を検出し、乖離が検出された領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、データ取得部291で取得したメッシュデータを補正する例を挙げることができる。例えば、補正部275は、データ取得部291により取得されたメッシュデータと補正基準面との距離を検出し、検出した距離が所定のしきい値以上の領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、データ取得部291で取得したメッシュデータを補正することが可能に構成されている。
【0204】
また、補正部275は、データ取得部291により取得されたメッシュデータと補正基準面との法線変化量を検出してもよい。補正部275は、メッシュデータと補正基準面との法線変化量を検出した後、検出した法線変化量が所定のしきい値以上の領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、データ取得部291で取得したメッシュデータを補正することも可能である。
【0205】
入力受付部271aは、データ取得部291により取得されたメッシュデータに含まれる不要領域の指定を受け付けることもできる。不要領域としては、例えば穴領域または凸領域等である。この場合、補正部275は、入力受付部271aで受け付けた不要領域に含まれ、かつ、データ取得部291により取得されたメッシュデータと補正基準面との乖離が存在する領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、データ取得部291で取得したメッシュデータを補正する。
【0206】
補正部275がメッシュデータの補正処理を実行する際、まず、入力受付部271aが補正基準面を抽出するためのユーザ入力を受け付けた領域にメッシュデータが含まれるか否かを補正部275が判定する。補正部275は、入力受付部271aが受け付けた領域にメッシュデータが含まれないと判定した場合、データ取得部291で取得したメッシュデータの補正を中止することができる。
【0207】
なお、補正部275は、入力受付部271aで不要領域として受け付けた点から連続して補正基準面まで広がる領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、データ取得部291で取得したメッシュデータを補正してもよい。
【0208】
入力受付部271aは、複数の補正基準面の入力を受け付けることもできる。すなわち、入力受付部271aは、第1の面を第1の補正基準面として抽出するための第1のユーザ入力と、第1の面に対して間隔をあけて対向する第2の面を第2の補正基準面として抽出するための第2のユーザ入力と、第1の面および第2の面との間に存在する貫通穴領域の指定を受け付けることができる。
【0209】
第1のユーザ入力および第2のユーザ入力を受け付けた場合、基準面抽出部271fは、第1のユーザ入力に基づいて、データ取得部291で取得したメッシュデータから第1の補正基準面を抽出し、第2のユーザ入力に基づいて、データ取得部291で取得したメッシュデータから第2の補正基準面を抽出する。その後、補正部275は、データ取得部291により取得されたメッシュデータと第1の補正基準面および第2の補正基準面との乖離を各々検出する。次いで、補正部275は、入力受付部271aで受け付けた貫通穴領域に含まれ、かつ、乖離が存在する領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、データ取得部291で取得したメッシュデータを補正する。
【0210】
なお、補正部275は、入力受付部271aで不要領域として受け付けた点から連続して第1の補正基準面と第2の補正基準面まで広がる領域のメッシュデータを除去し、メッシュデータが除去された部分に新たなメッシュデータを作成することで、データ取得部291で取得したメッシュデータを補正してもよい。
【0211】
以下、フローチャートに基づいて補正処理の具体例を説明する。
図42に示すフローチャートのスタート後のステップS101では、補正基準面を抽出する。具体的には、
図43のフローチャートに示しており、ステップSU1では幾何要素を抽出する。幾何要素の抽出手法は、
図20のフローチャートに示すとおりである。ステップSU2では、メッシュデータと補正基準面との乖離を検出し、補正基準面との乖離からポリゴンを選択する。ステップSU3では、幾何要素の種類と選択したメッシュデータを登録する。ステップSU4では、貫通したポリゴンが存在するか否かを判定する。貫通したポリゴンが存在する場合には、ステップSU1に戻る一方、貫通したポリゴンが存在しない場合には、補正基準面の抽出を終了する。なお、補正基準面を決めるための幾何要素には、平面以外にも、円筒、円錐、球、トーラス等が含まれる。
【0212】
次に、
図42のステップS102に進む。ステップS102では、修正候補領域を抽出する。具体的には、
図44のフローチャートに示しており、ステップSO1では、補正基準面を構成するポリゴンの内周ループを検出する。ステップSO2では、ステップSO1で検出した内周ループ内側を修正候補領域に設定する。ステップSO3では、全ての境界が調整されたか否かを判定する。全ての境界が調整された場合には、処理を終了する一方、全ての境界が調整されていない場合には、ステップSO4に進む。ステップSO4では、修正候補領域の範囲を、密度を元にして広げる。ステップSO5では、補正基準面領域が分断されたか否かを判定する。補正基準面領域が分断された場合にはステップSO6に進む一方、補正基準面領域が分断されない場合にはステップSO3に戻る。ステップSO6では、修正候補領域を元に戻す。修正候補領域を特定するためのデータとしては、補正基準面と接続される境界エッジ、および、補正基準面ポリゴンと接続されるポリゴンおよび頂点等があり、これらを保持しておく。
【0213】
次に、
図42のステップS103に進む。ステップS103では、穴位置を特定する。具体的には、
図45のフローチャートに示しており、ステップS111では穴位置の特定が自動であるか、手動であるかを判定する。手動である場合にはステップS112に進む一方、自動である場合にはステップS113に進む。ステップS113では、幾何形状の内周ループを検出し、その後、ステップS114で全ての内周を補正対象の穴として特定して終了する。穴位置を特定するためのデータとしては、例えば、修正候補領域の境界エッジと、修正候補領域のポリゴンおよび頂点等があり、これらデータを保持しておく。
【0214】
ステップS112では、ポリゴンまたはエッジを選択する。ステップS115では、エラー判定を行い、エラーが無ければステップS116に進む一方、エラーがあればステップS112に戻る。ステップS116では、全て選択済みか否かを判定し、全て選択済みでなければステップS112に戻り、全て選択済みであればステップS117に進む。ステップS117では、指定された穴位置を補正対象の穴として特定し、この処理を終了する。
【0215】
次に、
図42のステップS104に進む。ステップS104では、修正候補のポリゴンを削除する。ステップS105では、ポリゴンヒーリングを実行する。具体的には、自己交差除去、ノンマニホールドメッシュの除去、微小メッシュの削除といった不正メッシュを修復する。ステップS106では、指定された穴の穴埋めを実行する。その後、ステップS107では、再びポリゴンヒーリングを実行する。ポリゴンヒーリングは必要に応じて実行すればよい。
【0216】
図46は、補正基準面に含まれるポリゴンを削除して、削除した部分を幾何形状ポリゴンで置換する場合の手順を示すフローチャートである。ステップS121では、補正基準面を抽出する。これは
図42のステップS101と同様である。ステップS122では、幾何形状ポリゴンを生成する。ステップS123では、補正基準面のポリゴンを削除する。ステップS124では、補正基準面を幾何形状ポリゴンに置き換える。ステップS125では、補正基準面外のポリゴンと、ステップS124で置き換えた置換ポリゴンとの境界を接続する処理を実行する。
【0217】
図47は領域の選択例を示す図であり、FIG.47AはワークWの平面部W1を操作部250で指定した場合を示しており、平面部W1を操作部250で指定すると、指定した地点から連続する平面領域が自動的に選択された状態で表示部400に表示される。具体的には、選択の前後で平面領域の色を変化させている。尚、平面領域以外の円筒領域、球状領域、円錐状領域等も同様に指定可能である。
【0218】
FIG.47Bは、ワークWの4つの穴部W2~W5を削除候補領域として操作部250で指定した場合を示しており、穴部W2を指定すると当該穴部W2が指定された状態で表示部400に表示され、同様に、穴部W3、穴部W4、穴部W5が順に指定される都度、表示部400の表示が更新され、指定されたことが容易に分かるようになっている。具体的には、選択された穴部の色が指定操作の前後で変化する。なお、穴部がワークWを貫通している場合には、裏面に開口する穴部も自動的に指定することが可能になっている。
【0219】
図48は穴埋めの例を示す図である。FIG.48Aは、ワークWの平面の穴部W2~W5を埋める場合を示しており、平面部および穴部W2~W5の指定後に、穴部W2~W5を埋めた状態を表示部400に表示させることができる。FIG.48Bは、ワークWの平面を平面ポリゴンと置き換えた場合を示しており、平面ポリゴンと置き換えた状態を表示部400に表示させることができる。
【0220】
また、ワークWを測定して取得されたポリゴンを修正ポリゴンに変更すること以外にも、測定して取得されたポリゴンに、「CADデータにした後で平面化する」というステータスを付与しておき、CADデータ変換後に平面要素に置き換えてもよい。例えば、ノイズ等を含むポリゴンデータに対して、選択された領域の頂点もしくは面情報に幾何要素(平面、円筒など)のID情報を付与し、サーフェス変換の後で、ID情報を参照し、ポリゴンデータを完全な平面や円筒などの幾何形状に修正することができる。
【0221】
穴埋めの具体例について説明する。補正基準面が平面である場合には、平面ポリゴンへの置き換えか、位置連続の穴埋めのいずれかの方法で穴埋めでき、これはユーザが指定可能であってもよい。補正基準面が円筒である場合には、円筒ポリゴンへの置き換えか、曲率連続の穴埋めのいずれかの方法で穴埋めできる。補正基準面が円錐である場合には、円錐ポリゴンへの置き換えか、曲率連続の穴埋めのいずれかの方法で穴埋めできる。補正基準面が球である場合には、球ポリゴンへの置き換えか、曲率連続の穴埋めのいずれかの方法で穴埋めできる。補正基準面がトーラス(円環面)である場合には、トーラスポリゴンへの置き換えか、曲率連続の穴埋めのいずれかの方法で穴埋めできる。補正基準面が自由曲面である場合には、位置連続の穴埋めか、接線連続の穴埋めか、曲率連続の穴埋めのいずれかの方法で穴埋めできる。
【0222】
エラーが発生した場合の当該エラー処理の例として、ユーザが指定した位置に幾何形状が存在しない場合、幾何形状抽出はキャンセルされるように構成されている。例えば、平面に対してユーザが円筒抽出を実行した場合等はキャンセルされる。また、穴位置の指定で、ユーザが指定した位置にポリゴンが存在しない場合または選択されたポリゴンの向き(法線)が裏を向いている場合にはポリゴンが選択されない。すなわち、補正部275は、入力受付部271aにより補正基準面を抽出するためのユーザ入力を受け付けた領域に存在するポリゴンの向きを判定する。そして、補正部275は、当該領域のポリゴンの向きが裏を向いていると判定した場合、データ取得部291で取得したメッシュデータの補正を中止する。ここで、ポリゴンの向きが裏を向いているかの判定は例えば、補正基準面の法線の向きとポリゴンの法線の向きとが所定角度以上か否かを判定することにより行うことができる。また、補正部275は、内周ループとの連続性に基づいて幾何形状抽出をキャンセルしてもよい。すなわち、内周ループと非連続なポリゴンが選択された場合にはポリゴンが選択されない。これにより、ポリゴン欠けにより奥の裏側のポリゴンを選択することにより、ポリゴン全体が選択されてしまうことを抑制できる。
【0223】
穴埋め実行時に、表面ポリゴンを削除した後、裏側から別のポリゴンが飛び出している場合には、裏側のポリゴンと干渉していることをユーザに警告し、裏側のポリゴンを削除するかポリゴン置き換えをキャンセルするかユーザに選択させることもできる。また、ポリゴン置き換え時に、実際に幾何形状ポリゴンを生成した際に問題が発生することがある。例えば、隣接するポリゴン間が交差している場合には、修正ポリゴンの境界にあるポリゴンを変形して問題を解消するヒーリング処理を実行する。
【0224】
つまり、ユーザがメッシュデータを見ると、正常な領域であって穴埋め処理が不要な領域と、不完全な領域であって穴埋め処理が必要な領域とを区別できる場合がある。従来の穴埋め処理やスムージング機能の場合、不完全な領域を指定することで、不完全な領域を補正するものであるが、本態様では、正常な領域が補正基準面として抽出されるように、補正基準面を抽出するためのユーザ入力を正常な領域に対して行うことができる。これにより、メッシュデータから正常な領域が補正基準面として自動的に抽出される。抽出された補正基準面を基準とすることで、メッシュデータ中の不完全な領域を特定することが可能になる。この不完全な領域を補正基準面として抽出された正常な領域に基づいて補正部275によって自動的に補正することで、属人性が無く、仕上がり品質の良好な穴埋め処理が短時間で行われる。
【0225】
(座標系を考慮したCAD変換機能)
本リバースエンジニアリングシステム1では、ある座標系が割り当てられたCAD変換対象のデータをCADデータに変換する機能を有している。
図5に示すブロック図に基づいて説明すると、入力受付部271aは、データ取得部291で取得したメッシュデータから、CAD変換対象のデータ選択を受け付けることができるとともに、データ取得部291で取得したメッシュデータから抽出する幾何要素の形状と、メッシュデータ上の点の選択を受け付け可能に構成されている。さらに、入力受付部271aは、データ取得部291で取得したメッシュデータから、CAD変換対象のメッシュデータの領域選択を受け付けることもできる。
【0226】
データ特定部271gは、入力受付部271aで選択されたデータに基づいて、メッシュデータの中からCAD変換対象のデータを特定する。具体的には、データ特定部271gは、入力受付部271aで受け付けた幾何要素の形状と点の指定とに基づいて抽出された幾何要素を、CAD変換対象のデータとして特定する。入力受付部271aで領域選択を受け付けた場合、データ特定部271gは、入力受付部271aで受け付けた領域選択に基づいて、当該領域に含まれるメッシュデータをCAD変換対象のデータとして特定する。ここで、CAD変換対象のデータを特定するために領域選択を受け付ける場合、例えば、所定の領域を囲むユーザ入力を受け付けることにより、当該領域に含まれるメッシュデータをCAD変換対象のデータとして特定したり、直線と点のユーザ入力を受け付けることにより、当該直線と点の位置関係に基づいて、直線に対して一方側に存在するメッシュデータをCAD変換対象のデータとして特定したりしてもよい。
【0227】
座標系割り当て部271hは、データ特定部271gで特定されたCAD変換対象のデータに対して、一の座標系を割り当てる。このとき、
図13に示すような座標系選択領域703を有する変換領域指定用ユーザインタフェース画面700を表示部400に表示させることができる。これにより、ユーザは、領域の選択とその領域に紐づく座標系を設定できる。変換領域指定用ユーザインタフェース画面700における画像表示領域701は、メッシュデータを表示するメッシュデータ表示領域である。また、座標系選択領域703は、座標系の割り当て操作が可能な座標系割り当て領域である。ボタン702a~702eが表示される領域は、CAD変換対象のデータ抽出の設定が可能なデータ抽出設定領域である。
【0228】
CAD変換部273は、座標系割り当て部271hにより一の座標系が割り当てられたCAD変換対象のデータをCADデータに変換する。座標系割り当て部271hは、データ特定部271gにより特定されたCAD変換対象のデータに対して、表示部400へ表示させるための表示用の座標系とは異なる一の座標系を割り当てるように構成されている。リバースエンジニアリングの結果として出力されるCADデータの座標系と、表示部400に表示されているCAD変換対象のデータの座標系とが一致するとは限らない。ユーザがCADデータへの変換前に座標系を指定することで、表示部400に表示するための座標系とは独立して設計に適した座標系を選択できる。
【0229】
入力受付部271aが複数のデータ選択を受け付け可能に構成されていてもよい。すなわち、入力受付部271aは、第1のCAD変換対象のデータ選択と、第2のCAD変換対象のデータ選択とを受け付けることができる。この場合、データ特定部271gは、入力受付部271aで選択された第1のCAD変換対象のデータに基づいて、メッシュデータの中から第1のCAD変換対象のデータを特定するとともに、第2のCAD変換対象のデータに基づいて、メッシュデータの中から第2のCAD変換対象のデータを特定する。そして、座標系割り当て部271hは、データ特定部271hで特定された第1のCAD変換対象のデータに対して第1の座標系を割り当て、データ特定部271hで特定された第2のCAD変換対象のデータに対して第2の座標系を割り当てる。リバースエンジニアリングの結果として出力される各々のCADデータの座標系と、表示部400に表示されているCAD変換対象のデータの座標系とが一致するとは限らない。CADデータとして出力される各々のCAD変換対象のデータに対して、ユーザがCADデータへの変換前に座標系を指定することで、表示部400に表示するための座標系とは独立して設計に適した座標系を選択できる。
【0230】
座標系割り当て部271hにより割り当てられた座標系は記憶装置240に記憶される。記憶装置240は、第1のCAD変換対象のデータに対して割り当てられた第1の座標系と、グローバル座標系に対する第1の座標系の相対的な位置および姿勢とを対応付けて記憶する。さらに、記憶装置240は、第2のCAD変換対象のデータに対して割り当てられた第2の座標系と、グローバル座標系に対する第2の座標系の相対的な位置および姿勢とを対応付けて記憶する。
【0231】
CAD変換部273は、グローバル座標系に対する第1の座標系の相対的な位置および姿勢に基づいて、第1のCAD変換対象のデータを第1のCADデータに変換する。また、CAD変換部273は、グローバル座標系に対する第2の座標系の相対的な位置および姿勢に基づいて、第2のCAD変換対象のデータを第2のCADデータに変換する。そして、CAD変換部273は、第1のCADデータと第2のCADデータとがアッセンブリ化されたCADデータを生成する。ここで生成されるアッセンブリ化されたCADデータは、アッセンブリに含まれる第1のCADデータと第2のCADデータに対してそれぞれグローバル座標系に対する相対的な位置および姿勢が割り当てられている。そのため、データ取得部291で取得したメッシュデータから選択された第1のCAD変換対象のデータと第2のCAD変換対象のデータとの相対的な位置および姿勢が保持された状態で、アッセンブリ化されたCADデータが生成される。
【0232】
グローバル座標系に対する第1の座標系の相対的な位置および姿勢と、グローバル座標系に対する第2の座標系の相対的な位置および姿勢とが対応付けられていない場合、CAD変換部273により生成されるCADデータは各座標系の原点が重なった状態で表示部に表示される。そのため、第1のCADデータと第2のCADデータの本来の位置関係が分からなくなってしまう。しかし、上記のようにグローバル座標系に対する第1の座標系の相対的な位置および姿勢と、グローバル座標系に対する第2の座標系の相対的な位置および姿勢とを対応付けることにより、第1のCADデータと第2のCADデータの本来の位置関係を保持したまま、CADデータに変換することができる。
【0233】
以下、フローチャートに基づいて処理の具体例を説明する。
図49に示すフローチャートのスタート後のステップS131では、ユーザが座標系を選択する。座標系の選択操作については、
図50に示しており、ステップS141では座標系の選択が自動であるか、手動であるかを判定する。手動である場合にはステップS142に進む一方、自動である場合にはステップS145に進む。ステップS142では、座標系を作成するか否かを判定する。座標系を作成する場合にはステップS143に進み、一方、座標系を作成しない場合にはステップS144に進む。ステップS143では、
図5に示す座標系作成部271iは、手動モード(第1のモード)で座標系の作成処理を実行する。座標系の作成処理は、
図51に示しており、座標系の元となる平面、円筒、円錐、球などの幾何要素を作成し、幾何要素の組み合わせで座標系を作成する。
【0234】
すなわち、まず、
図51のステップS151では幾何要素を抽出する。ステップS152では基準平面をユーザが選択する。このとき、
図53のFIG.53Aに示すような基準平面選択用画面780を表示部400に表示させることができる。ここで、基準平面選択用画面780は、座標系作成画面の一例である。基準平面としては、例えば機械加工面の他、XY平面等とすることも可能になっている。
【0235】
またステップS153ではユーザが基準軸を選択する。このとき、
図53のFIG.53Bに示すような基準軸選択用画面790を表示部400に表示させることができる。ここで、基準軸選択用画面790は、座標系作成画面の一例である。基準軸としては、例えば断面基準面法線の他、X軸等とすることも可能になっている。
【0236】
ステップS154では、ユーザが原点を選択する。このとき、
図53のFIG.53Cに示すような原点選択用画面800を表示部400に表示させることができる。ここで、原点選択用画面800は、座標系作成画面の一例である。原点としては、例えばシャフトホルダ始点の他、任意に選択した点を原点とすることも可能になっている。そして、ステップS155では、座標系作成部271iは、作成した座標系を記憶装置240に記憶させる。
【0237】
以上のようにして座標系作成部271iは、座標系作成画面において、基準平面と、基準軸と、原点との選択を受け付けることにより座標系の作成が完了すると、
図50のステップS144に進む。ステップS144では、記憶装置240に記憶されている作成済みの座標系から任意の座標系を選択し、終了する。座標系を選択する際には、
図13に示す変換領域指定用ユーザインタフェース画面700の座標系選択領域703のように、複数の座標系の中から任意の一の座標系を選択可能なユーザインタフェースをユーザに提供する。そして、入力受付部271aは、複数の座標系の中から任意の一の座標系の選択を受け付ける。なお、座標系選択領域703に所望の座標系がない場合、座標系作成ボタン705の操作入力を入力受付部271aにより受け付けることができる。入力受付部271aが座標系作成ボタン705の操作入力を受け付けると、表示制御部276は座標系作成画面を表示部400に表示させ、座標系作成部271iによる新たな座標系の作成ができる。
【0238】
また、ステップS141で自動と判定されて進んだステップS145では、座標系作成部271iは、座標系の自動設定を実行し、終了する。すなわち、座標系作成部271iは、自動モード(第2のモード)で座標系を作成する。ここでは、座標系作成部271iは、CAD変換対象のデータのバウンディングボックスに基づいて座標系を作成する。すなわち、かんたん座標系を計算する際には、座標系作成部271iは、CAD変換対象のデータに外接する最小の長方形または直方体であるバウンディングボックスを計算し、バウンディングボックスの姿勢から座標系のXYZ軸を決定する。原点はバウンディングボックスの中心またはバウンディングボックスを構成する平面の中心または頂点に設定する。なお、原点はユーザにより設定可能であってもよく、例えば、バウンディングボックスの8頂点の中から1つの頂点の選択を受け付け、当該頂点を原点としてもよい。
【0239】
その後、
図49のステップS132に進んで変換領域を選択した後、ステップS133に進んでCADデータに変換する。
【0240】
また、
図52に示すように、ステップS161で指定する必要のある領域が残っているか否かを判定するようにしてもよい。指定する領域が残っていなければ終了し、残っている場合にはステップS162に進む。ステップS162では、領域の選択方法を指定する。選択方法は、多角形選択、平面や円筒などの幾何形状、色指定等である。
【0241】
ステップS163ではメッシュ選択を実行し、その後、ステップS164では確定ボタンが押されたか否かを判定し、確定ボタンが押されていない場合にはステップS163に戻る一方、確定ボタンが押されている場合にはステップS165に進む。ステップS165では、エラー判定を行い、エラーがある場合にはステップS163に戻る一方、エラーが無い場合にはステップS166に進んで選択したメッシュを登録する。
【0242】
図54は、測定データと基準データとを表示可能なユーザインタフェース画面810を示すものである。このユーザインタフェース画面810には、測定データを表示するための測定データ表示領域811と、位置合わせ基準となる基準データを表示するための基準データ表示領域812と、プレビュー領域813とが設けられている。プレビュー領域813には、測定データと基準データのうち、少なくとも一方のデータが表示される。プレビュー領域813には、測定データと基準データとの双方を表示することもできる。この場合、入力受付部271aは測定データと基準データとで対応する面の指定を受け付ける。そして、表示制御部は、入力受付部271aで受け付けた対応する面の指定に基づいて算出された測定データの座標系と基準データの座標系の変換行列に基づいて、測定データと基準データとの位置合わせ処理を実行した合成データを表示できる。
【0243】
図55は、測定データと基準データの位置合わせが完了した状態を示すユーザインタフェース画面820を示すものである。このユーザインタフェース画面820には、位置合わせ後のデータが表示される表示領域821が設けられている。表示領域821には、CADデータの座標系821aが示されるようになっている。また、
図55に示すように、位置合わせ後のデータを用いて3D比較計測が可能であってもよい。
【0244】
座標系(測定データ座標系に対する変換行列)のデータとして、基準平面、基準軸、原点を特定するデータが保持されている。基準平面は、平面要素(平面、平行面など)が含まれており、また、基準軸は、軸要素(円筒、円錐、面交線など)が含まれており、また、原点は、点要素(点、面と軸の交点など)が含まれている。さらに、変換領域として、選択されたポリゴンおよび頂点の情報も保持される。
【0245】
変換領域毎に異なるローカル座標系を登録し、1つのグローバル座標系と複数のローカル座標系+選択領域を持ったCADデータ変換とすることもできる。CADデータ変換のデータとしてグローバル座標系を特定する場合、平面要素を含む基準平面、軸要素を含む基準軸、点要素を含む原点が含まれる。また、変換領域1として、ローカル座標系(グローバル座標系に対する座標変換行列)と選択領域(選択されたポリゴンまたは頂点)とが含まれ、また、変換領域2として同様な情報が含まれる。以下、変換領域3、4、…も同様である。
【0246】
(全自動CAD変換を可能にする場合の変形例)
図56および
図57は、全自動CAD変換を可能にする場合の変形例に係るフローチャートである。
図56のスタート後のステップS201では、コントローラ200上でメインアプリケーションである解析アプリケーションを起動する。ステップS201では、全自動CAD変換を行うか否かを判定する。全自動CAD変換を行わない場合は、通常測定としてステップS203に進み、全自動CAD変換を行う場合はステップS204に進む。ステップS203およびS204では測定モジュールで測定を実行する。ステップS204の測定では、ワークWと測定部100の相対的な位置関係を変化させながら測定を行うことで得られた複数の測定データを合成し、複数の測定データの合成語にステップS206のデータ保存、ステップS219のサーフェス変換の自動実行に進んでもよい。ステップS205では、解析モジュール290で結果を確認する。ステップS206では、解析モジュール290にデータを保存するとともに、ステップS219のサーフェス変換処理に進む。
【0247】
ステップS207では、データを追加するか否かを判定する。データを追加する場合には、ステップS208に進んで測定した後、ステップS209に進んでデータを合成する。データを追加しない場合には、ステップS210に進んで幾何要素を作成するか否かを判定する。幾何要素を作成する場合には、ステップS211に進んで幾何要素を抽出する一方、幾何要素を作成しない場合にはステップS212に進んで座標系を設定・選択する。ステップS213では変換領域を選択する。
【0248】
図59のステップS214では、変換領域が全領域であるか、部分領域であるかを判定する。変換領域が部分領域である場合にはステップS215に進み、ポリゴンから指定領域を抽出する一方。変換領域が全領域である場合にはステップS216に進み、ポリゴン全体を抽出する。
【0249】
その後、ステップS217に進み、ユーザが変換モードを選択する。ステップS218では、ユーザが選択したモードがフルオートモードであるか、マニュアルモードであるかを判定する。フルオートモードでは、ステップS219に進み、サーフェス変換を自動実行する。ステップS219のサーフェス変換の自動実行では、サーフェスデータに含まれる凹凸に基づいて、穴埋めや不要部除去といった前処理が実行されてもよい。すなわち、補正部275は、サーフェスデータに凹凸が含まれるか否かや、データ入力部271で受け付けたメッシュデータにポリゴンが存在しないループが含まれているか否かを判定し、当該判定結果に基づいて、前処理を実行できる。マニュアルモードである場合には、ステップS220に進み、変換モジュール270が、
図14に示すサーフェス変換用ユーザインタフェース画面710を表示部400に表示させる。
【0250】
ステップS221では、メッシュデータに対して穴埋めなどの処理を実施するか否かを判定する。穴埋めなどの処理を実施する場合にはステップS222に進んで各処理を実行し、その後、ステップS223に進んでサーフェス領域指定を実行するか否かを判定する。一方、メッシュ前処理を実施しない場合にはステップS224に進んでサーフェス変換ボタンが押下されると、ステップS228に進み、サーフェス変換を実行する。
【0251】
ステップS223がNOの場合にはステップS224に進む一方、YESの場合にはステップS225に進んで、サーフェス領域指定を実行する。ステップS226では指定が完了したか否かを判定し、指定が完了していなければステップS225に戻る一方、指定が完了していればステップS227に進んでサーフェス変換ボタンが押下されると、ステップS228に進み、サーフェス変換を実行する。
【0252】
また、ステップS229ではサーフェス変換結果を表示部400に表示させる。これにより、ユーザはサーフェス変換結果を確認することができる。ステップS230では完了した否かを判定する。完了していない場合、すなわち、一部の設定を変更してCAD変換をやり直したい場合、マニュアル設定に戻ることができる。例えば、
図58に示すように、変換結果表示用ユーザインタフェース画面830には、変換前のデータを表示する変換前データ表示領域831と、変換後のCADデータを表示する変換後データ表示領域832と、表示設定領域833とが設けられている。変換前のデータと、変換後のCADデータとを並べて表示することにより、ユーザは、変換前のデータと変換後のCADデータとを見比べて設定変更の必要があるか否かを判定できる。
【0253】
また、表示設定領域833のチェックボックス833aのチェックを切り替えることで、CADデータに対してサーフェスデータの境界を示す輪郭線を付与するか否かを切り替えることができる。CADデータに対して輪郭線を付与することで、設計意図通りにCAD変換が実行されているかを把握しやすくなる。さらに、表示設定領域833には、サーフェスデータと3D要素を組み合わせて表示するか、サーフェスデータと3Dデータの一方を表示するかを選択するためのラジオボタン833bが表示されてもよい。表示形態の切り替えについては後述する。ステップS230で完了していないと判定された場合、
図57のステップS231に進んでデータ追加、変換再設定が必要な否かを判定する。変換再設定が必要な場合には、ステップS220に戻ってステップS221において穴埋め処理などを実施すると判定する。変換再設定する場合には、
図59に示すような再設定用ユーザインタフェース画面840を表示部400に表示させる。再設定用ユーザインタフェース画面840には、変換後のCADデータを表示する変換後データ表示領域841と、設定変更用表示領域842とが設けられており、変換結果の中から修正したい部分を探した後、設定の変更ができるようになっている。設定変更用表示領域842では、穴埋め、不要部除去、サーフェス領域指定等が実行可能である。
【0254】
具体的には、表示部400に表示されたサーフェス変換結果には、ユーザの設計意図が反映されていない場合がある。例えば
図58の変換前データ表示領域831における球形状の領域834をCADデータに変換すると、変換後データ表示領域832における球形状の領域835に示すように複数のサーフェスに分かれたCADデータに変換される。このような場合に、マニュアル変換を実行するためのアイコン833cの操作入力を検知すると、
図59に示すマニュアル変換設定画面836に遷移する。
図59に示すマニュアル変換設定画面836では、データ削除・穴埋め等の前処理の設定や、形状設定等ができる。データ削除・穴埋めに関しては
図9のステップSB8と同様である。また、形状設定では、平面・円筒・自由曲面・球・円錐等の所定の形状を選択するとともに、当該選択した形状を適用するメッシュデータ上の領域を指定することで、メッシュデータから所望の形状を抽出できる。すなわち、メッシュデータに対してユーザの設計意図を反映してCADデータに変換することができる。例えば、
図58に示す球形状の領域834に対して、
図59に示すマニュアル変換設定画面で「球」という形状を指定し、再度サーフェス変換を実行する。この場合、再度
図57のステップS228に示すサーフェス変換が実行され、
図60に示すサーフェス変換結果が表示部400に表示される。
図60の球形状の領域837に示すように、マニュアル変換設定画面において「球」という形状を選択することにより、
図58の球形状の領域835が1つのサーフェスデータとしてCADデータに変換され、ユーザの設計意図を反映させることができる。
【0255】
また、
図61から
図63を用いて表示形態の切り替えについて説明する。
図61は、表示部400に表示されるサーフェス変換用ユーザインタフェース画面710の一例である。
図61では、幾何要素として2つの円筒と1つの円錐、1つの球が選択されている。
図61で抽出された幾何要素を含むメッシュデータをCADデータに変換したものを
図62に示す。
図62は変換結果表示用ユーザインタフェース画面830の一例である。上記の通り、
図62の変換結果表示用ユーザインタフェース画面830には表示設定領域833が設けられており、ラジオボタン833bの選択が切り替わることで、サーフェスデータと3D要素を組み合わせて表示するか、サーフェスデータと3Dデータの一方を表示するかを切り替えることができる。
図62は、サーフェスデータと3D要素を組み合わせて表示した場合を示す図である。また、
図63は、3D要素のみを表示した場合を示す図である。なお、ここで「3D要素」とは、メッシュデータから抽出された幾何要素をCADデータに変換したものを指す。このように表示部400への表示形態を切り替えることによって、3D要素のみを取り出してデータの確認・保存をしたり、サーフェスデータと3D要素とを組み合わせたデータの確認・保存ができる。これにより、ユーザが所望する領域や部品の形状を選択的にCADデータとして保存することができる。
【0256】
一方、データ追加が必要な場合には、ステップS205に戻ってステップS207においてデータ追加と判定する。再変換後にも、
図58に示すような変換結果表示用ユーザインタフェース画面830を表示部400に表示させることで、ユーザが確認できる。完了と判定されればサーフェス変換を終了する。
【0257】
サーフェス変換結果を見て、データを追加したい場合には、既に起動している解析モジュール290に戻ることができる。解析モジュール290でデータ合成を起動すると、
図64に示すようにデータ合成用のユーザインタフェース画面850が表示部400に表示される。ユーザインタフェース画面850から
図65に示す合成データ選択ウインドウ860を表示させることが可能になっている。合成データ選択ウインドウ860では、合成データの選択方法として、実機(測定部100)からデータを取得する方法と、記憶装置240等に記憶されているファイルから読み込む方法とのうち、一方を選択可能に構成されている。
【0258】
図66は、向きを変えたワークWの測定データを取得するユーザインタフェース画面870を示しており、この例ではワークWの裏側の測定データを示している。このように、ワークWを異なる方向から測定した場合のデータを合成することが可能である。ワークWの向きは任意に設定できる。
【0259】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【0260】
以上説明したように、本発明は、現物の形状を取得して設計データ化するリバースエンジニアリングに利用できる。
【符号の説明】
【0261】
1 リバースエンジニアリングシステム
100 測定部(撮像部)
240 記憶装置(記憶部)
260 スキャナモジュール
261 測定条件設定部
262 スキャナ制御部
263 メッシュデータ作成部
264 スキャナ出力部
270 変換モジュール
271 データ入力部
271f 基準面抽出部
273 CAD変換部
274 CAD出力部
275 補正部