(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024172054
(43)【公開日】2024-12-12
(54)【発明の名称】リバースエンジニアリング支援装置及びリバースエンジニアリング支援方法
(51)【国際特許分類】
G06F 30/10 20200101AFI20241205BHJP
G01B 21/20 20060101ALI20241205BHJP
G06F 30/23 20200101ALI20241205BHJP
【FI】
G06F30/10
G01B21/20 Z
G06F30/23
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023089486
(22)【出願日】2023-05-31
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】田淵 潤
【テーマコード(参考)】
2F069
5B146
【Fターム(参考)】
2F069AA53
2F069AA61
2F069AA66
2F069AA71
5B146BA03
5B146EA02
5B146EA15
5B146EA17
5B146EA18
(57)【要約】
【課題】再設計に用いることが容易なCADデータをユーザに提供可能にする。
【解決手段】リバースエンジニアリング支援装置1は、2つの領域群の境界線を規定する境界線規定部275cと、境界線規定部275cにより規定された境界線が、交線接続または接線接続のいずれの種別であるかを2つの領域群の接続関係に基づいて判定する境界線種別判定部275fと、領域群と境界線と境界線の種別とに基づいて境界線に接する曲面データを作成する曲面データ作成部275bと、曲面データ作成部275bにより作成された曲面データをCADデータに変換する変換部276とを備えている。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ワークを測定することで得られたメッシュデータをCADデータに変換して出力するリバースエンジニアリング支援装置であって、
ワークのメッシュデータを取得するデータ取得部と、
前記データ取得部により取得されたワークのメッシュデータを複数の領域群に分割する分割処理部と、
前記分割処理部により分割された領域群のうち、2つの領域群の境界線を規定する境界線規定部と、
前記境界線規定部により規定された境界線が、交線接続または接線接続のいずれの種別であるかを前記2つの領域群の接続関係に基づいて判定する境界線種別判定部と、
前記分割処理部により分割された領域群と、前記境界線規定部により規定された境界線と、前記境界線種別判定部により判定された境界線の種別に基づいて、当該境界線に接する曲面データを作成する曲面データ作成部と、
前記曲面データ作成部により作成された前記曲面データをCADデータに変換する変換部と、を備えたリバースエンジニアリング支援装置。
【請求項2】
請求項1に記載のリバースエンジニアリング支援装置において、
前記境界線種別判定部は、前記2つの領域群の法線ベクトルの向きに基づいて、前記境界線規定部により規定された境界線が、交線接続または接線接続のいずれの種別であるかを判定する、リバースエンジニアリング支援装置。
【請求項3】
請求項1に記載のリバースエンジニアリング支援装置において、
前記分割処理部は、メッシュデータを曲率値に基づいて分割し、前記複数の領域群として曲率値が第1の値よりも小さな複数の緩曲面領域を規定し、
前記境界線規定部は、前記分割処理部により規定された2つの緩曲面領域の境界線を規定する、リバースエンジニアリング支援装置。
【請求項4】
請求項1に記載のリバースエンジニアリング支援装置において、
前記曲面データ作成部は、前記分割処理部により規定された前記緩曲面領域に含まれるメッシュデータに対する重みを、前記緩曲面領域と前記境界線との間の領域に含まれるメッシュデータに対する重みよりも大きくして曲面データを作成する、リバースエンジニアリング支援装置。
【請求項5】
請求項3に記載のリバースエンジニアリング支援装置において、
前記変換部は、前記メッシュデータを、前記分割処理部により規定された前記緩曲面領域と前記境界線規定部により規定された前記境界線との間の領域に含まれるフィレット形状を除去したCADデータに変換する、リバースエンジニアリング支援装置。
【請求項6】
請求項4に記載のリバースエンジニアリング支援装置において、
前記データ取得部により取得されたワークのメッシュデータから幾何要素を抽出する幾何要素抽出部と、
メッシュデータから抽出する幾何要素の形状と、当該形状で抽出する領域の指定を受け付ける受付部とをさらに備え、
前記幾何要素抽出部は、前記受付部により受け付けた幾何要素の形状と領域に基づいて幾何要素を抽出し、
前記変換部は、メッシュデータに含まれる領域の内、幾何要素として抽出された領域の各々は一の解析曲面としてCADデータに変換するとともに、前記曲面データ作成部により作成された曲面データを自由曲面としてCADデータに変換する、リバースエンジニアリング支援装置。
【請求項7】
請求項1に記載のリバースエンジニアリング支援装置において、
前記境界線規定部は、2つの領域群の交差角度を算出し、算出した交差角度が所定角度範囲内である場合は、前記交線の規定が可能であると判定し、算出した交差角度が所定角度範囲外である場合は、前記交線の規定が不可であると判定する、リバースエンジニアリング支援装置。
【請求項8】
請求項1に記載のリバースエンジニアリング支援装置において、
前記境界線規定部は、2つの領域群の平行度合いを算出し、算出した平行度合いが所定以上である場合は、前記交線の規定が可能であると判定し、算出した平行度合いが所定未満である場合は、前記交線の規定が不可であると判定する、リバースエンジニアリング支援装置。
【請求項9】
リバースエンジニアリング支援方法であって、
ワークのメッシュデータを取得するデータ取得工程と、
前記データ取得工程により取得されたワークのメッシュデータを曲率値に基づいて分割し、曲率値が第1の値よりも小さな領域である緩曲面領域を複数特定する特定工程と、
前記特定工程により特定された複数の前記緩曲面領域のうち、2つの緩曲面領域の交線をメッシュデータの境界線として規定する境界線規定工程と、
前記特定工程により特定された前記緩曲面領域と前記境界線規定工程により規定された前記境界線とに基づいて、当該境界線に接する曲面データを作成する曲面データ作成工程と、
前記曲面データ作成工程により作成された前記曲面データをCADデータに変換する変換工程と、を備えたリバースエンジニアリング支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、現物の形状を取得して設計データ化し、ものづくりに活かすリバースエンジニアリングを支援するリバースエンジニアリング支援装置及びリバースエンジニアリング支援方法に関する。
【背景技術】
【0002】
近年、リバースエンジニアリングがものづくりの多方面で利用されている。例えば既存製品の形状をスキャン、CADデータ化して次機種展開や形状解析をCAD・CAE上で実施したり、製品デザインにおけるモデルやモックの形状をスキャン、CADデータ化して製品設計に反映したり、嵌合する相手部品の形状をスキャン、CADデータ化して嵌合元となる製品を設計したり、試作品の形状をスキャン、CADデータ化して改良設計に繋げるといった用途がリバースエンジニアリングで存在しており、その用途は拡大傾向にある。
【0003】
例えば特許文献1には、相互に接続された複数の構成要素からなる物体の表面上の点群データに基づいた三次元モデルの作成を支援する三次元モデル作成支援システムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2016/088553号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、例えば特許文献1に開示されているような三次元モデル作成支援システムを用いることで、ワークの立体形状データをメッシュデータとして取得し、取得したメッシュデータから抽出された幾何要素を含むCADデータを作成することが可能になる。このようにして作成されたCADデータに基づくことで、CAD上でワークの機械的形状を再設計して三次元図面を作成できるようになる。
【0006】
ところが、ワークの機械的形状の再設計を行うためには、メッシュデータに忠実なCADデータを作成するのではなく、ユーザの設計意図を反映し、かつ再設計を行うために編集可能なCADデータが望まれることがある。この点、特許文献1の三次元モデル作成支援システムは、再設計に適したCADデータを生成可能なシステムとはなっていない。
【0007】
本開示は、かかる点に鑑みてなされたものであり、その目的とするところは、再設計に用いることが容易なCADデータをユーザに提供可能にすることにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本開示は、ワークを測定することで得られたメッシュデータをCADデータに変換して出力するリバースエンジニアリング支援装置を前提とすることができる。リバースエンジニアリング支援装置は、ワークのメッシュデータを取得するデータ取得部と、前記データ取得部により取得されたワークのメッシュデータを複数の領域群に分割する分割処理部と、前記分割処理部により分割された領域群のうち、2つの領域群の境界線を規定する境界線規定部と、前記境界線規定部により規定された境界線が、交線接続または接線接続のいずれの種別であるかを前記2つの領域群の接続関係に基づいて判定する境界線種別判定部と、前記分割処理部により分割された領域群と、前記境界線規定部により規定された境界線と、前記境界線種別判定部により判定された境界線の種別に基づいて、当該境界線に接する曲面データを作成する曲面データ作成部と、を備えている。
【0009】
この構成によれば、ワークのメッシュデータが取得されると、ワークのメッシュデータが複数の領域群に分割され、分割された領域群のうち、2つの領域群の境界線が規定される。規定された境界線は交線接続または接線接続のいずれであるか判定される。そして、領域群と、境界線と、境界線の種別に基づいて、境界線に接する曲面データが作成され、作成された曲面データがCADデータに変換される。これにより、メッシュデータの概略形状を維持しつつ、詳細な形状の再現を省略することが可能になる。
【0010】
前記境界線種別判定部は、前記2つの領域群の法線ベクトルの向きに基づいて、前記境界線規定部により規定された境界線が、交線接続または接線接続のいずれの種別であるかを判定することもできる。
【0011】
前記分割処理部は、メッシュデータを曲率値に基づいて分割し、前記複数の領域群として曲率値が第1の値よりも小さな複数の緩曲面領域を規定してもよい。この場合、前記境界線規定部は、前記分割処理部により規定された2つの緩曲面領域の境界線を規定することができる。
【0012】
また、別の態様として、リバースエンジニアリング支援方法を前提とすることもできる。リバースエンジニアリング支援方法は、ワークのメッシュデータを取得するデータ取得工程と、前記データ取得工程により取得されたワークのメッシュデータを曲率値に基づいて分割し、曲率値が第1の値よりも小さな領域である緩曲面領域を複数特定する特定工程と、前記特定工程により特定された複数の前記緩曲面領域のうち、2つの緩曲面領域の交線をメッシュデータの境界線として規定する境界線規定工程と、前記特定工程により特定された前記緩曲面領域と前記境界線規定工程により規定された前記境界線とに基づいて、当該境界線に接する曲面データを作成する曲面データ作成工程と、前記曲面データ作成工程により作成された前記曲面データをCADデータに変換する変換工程と、を備えている。
【発明の効果】
【0013】
以上説明したように、ワークのメッシュデータを分割した複数の領域群と、境界線と、境界線の種別に基づいて作成した曲面データをCADデータに変換するようにしたので、メッシュデータの概略形状を維持しつつ、詳細な形状の再現を省略したCADデータとすることができる。これにより、再設計に用いることが容易なCADデータをユーザに提供できる。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施形態に係るリバースエンジニアリング支援装置の全体構成を示す図である。
【
図2】リバースエンジニアリング支援装置のブロック図である。
【
図6】変換モジュールの動作の一例を示すフローチャートである。
【
図7】オート/マニュアルモード選択画面の例を示す図である。
【
図8】アウトラインモード/忠実モード選択画面の例を示す図である。
【
図10】アウトラインモード処理の一例を示すフローチャートである。
【
図11】アウトラインモードの緩曲面領域分割処理の一例を示すフローチャートである。
【
図14】位相構造をデータ化した場合を示す図である。
【
図15】交線接続境界線と接線接続境界線を説明する図である。
【
図16】曲面データ作成処理の具体例を説明する図である。
【
図18】互いに平行な緩曲面の処理の第1の方法を説明する図である。
【
図19】互いに平行な緩曲面の処理の第2の方法を説明する図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0016】
図1は、本発明の実施形態に係るリバースエンジニアリング支援装置1の全体構成を示す図である。リバースエンジニアリング支援装置1は、ワーク(測定対象物)Wの形状を測定することで得られたワークWのメッシュデータをCADデータに変換して出力する装置である。リバースエンジニアリング支援装置1は、例えば既存製品のCADデータを取得して次期種展開や形状解析をCAD・CAE上で実施したり、製品デザインにおけるモデルやモックの形状を製品設計に反映したり、嵌合する相手部品の形状に基づいて嵌合元となる製品を設計したり、試作品の形状に基づいて改良設計を行う場合等に利用される。したがって、ワークWは、例えば既存製品、モデル、モック、試作品等である。リバースエンジニアリング支援装置1を使用することで、リバースエンジニアリング支援方法を実行することができる。
【0017】
また、リバースエンジニアリング支援装置1は、ワークWのメッシュデータをサーフェスデータに変換して出力することが可能な装置である。ワークWのメッシュデータをサーフェスデータに変換して出力することで、ユーザのリバースエンジニアリング工程、リバースエンジニアリング作業を支援することができる。
【0018】
以下の説明では、ワークWの形状を測定する際に、ワークW表面の座標情報を取得するにあたり、所定のパターンの測定光をワークWに対して照射して、ワークWの表面で反射された反射光から得られる信号を用いて、座標情報を取得している。例えば、所定のパターンの測定光として、構造化照明を用いて、ワークWに投影し、その反射光から得られる縞投影画像を用いた三角測距を用いた計測方法を用いることができる。ただ、本発明では、ワークWの座標情報を取得するための原理や構成は、これに限らず、他の方法も適用することができる。
【0019】
リバースエンジニアリング支援装置1は、測定部100、台座部600と、コントローラ200、光源部300及び表示部400を備えている。リバースエンジニアリング支援装置1は、光源部300で構造化照明をワークWに対して行い、縞投影画像を撮像して座標情報を有する深度画像を生成し、これに基づいてワークWの三次元寸法や形状を計測することができる。このような縞投影を用いた測定は、ワークWやレンズ等の光学系をZ方向(高さ方向)に移動させることなく三次元測定ができるため、測定時間を短くできるという利点がある。尚、表示部400は、リバースエンジニアリング支援装置1に含まれていなくてもよく、この場合、後述する表示制御部278により制御される表示部400が別途設けられることになる。
【0020】
図2は、本発明の実施形態に係るリバースエンジニアリング支援装置1のブロック図を示す。この図に示すように、測定部100は、投光部110と、受光部120と、測定制御部150と、照明光出力部130とを備えている。投光部110は、後述する載置部140に載置されたワークWに所定のパターンを有する測定光を照射する部分である。受光部120は、後述する載置面142に対して傾斜した姿勢で固定されている。投光部110により照射され、ワークWにて反射された測定光を受光部120が受光する。受光部120は、ワークWからの反射光を受光すると、受光量を表す受光信号を出力する。受光部120は、載置部140に載置されたワークWを撮像することによりワークWの全体形状を観察するための観察画像を生成することができる。
【0021】
本実施形態に係る受光部120は、高倍受光部と低倍受光部とを含んでいる。高倍受光部は、ワークWを低倍受光部に比べて拡大して撮像可能な部分である。一方、低倍受光部は、高倍受光部に比べて視野範囲が広い受光部である。
【0022】
台座部600は、ベースプレート602と載置部140と移動制御部144とを備えている。この台座部600のベースプレート602上に載置部140が支持されている。移動制御部144は、載置部140を移動させる部材である。移動制御部144は、台座部600側に設ける他、コントローラ200側に設けてもよい。
【0023】
光源部300は、測定部100と接続されている。光源部300は、測定光を生成して測定部100に供給する部分である。コントローラ200は、測定部100等を制御する部分である。表示部400は、コントローラ200と接続され、測定部100により生成された画像を表示し、また必要な設定、入力、選択等を行うことが可能に構成されている。
【0024】
載置部140は、ワークWが載置される載置面142を有する。
図4に示すように、載置面142内で互いに直交する2方向をX方向及びY方向と定義し、それぞれ矢印X、Yで示す。載置部140の載置面142に対して直交する方向をZ方向と定義し、矢印Zで示す。Z方向に平行な軸を中心に回転する方向をθ方向と定義し、矢印θで示す。
【0025】
載置部140は、載置面142をZ方向に延びる軸周りに回転させる回転ステージ143と、載置面142を水平方向(X方向、Y方向)に移動させる並進ステージ141とを含んでいる。並進ステージ141は、X方向移動機構及びY方向移動機構を有する。また、回転ステージ143は、θ方向回転機構を有する。載置部140は、載置面142にワークWを固定する固定部材(クランプ)を含めてもよい。さらに載置部140は、載置面142に平行な軸を中心に回転可能な機構を有するチルトステージを含んでもよい。
【0026】
移動制御部144は、後述する測定条件設定部261により設定された測定条件に従って、回転ステージ143の回転移動及び並進ステージ141の平行移動を制御する。また移動制御部144は、後述する測定条件設定部261により設定された測定領域に基づいて、載置移動部による載置部140の移動動作を制御する。
【0027】
コントローラ200は、CPU(中央演算処理装置)210、ROM(リードオンリメモリ)220、作業用メモリ230、記憶装置(記憶部)240及び操作部250等を含んでいる。コントローラ200には、PC(パーソナルコンピュータ)等が利用できる。
【0028】
測定部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に対しズームレンズを設けることで倍率を可変としてもよい。
【0029】
投光部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方向に対する照射角度を固定としているが、これを可変とすることもできる。
【0030】
各第一測定光投光部110A、第二測定光投光部110Bは、測定光源111としてそれぞれ第一測定光源、第二測定光源を備える。これら測定光源111は、例えば白色光を出射するハロゲンランプである。測定光源111は、単色光を発光する光源、例えば青色光を出射する青色LED(発光ダイオード)や有機EL等の他の光源であってもよい。測定光源111から出射された光(以下、「測定光」と呼ぶ。)は、レンズ113により適切に集光された後、パターン生成部112に入射される。
【0031】
投光部110A、110Bの中心軸と受光部120の中心軸とは、載置部140上のワークWの配置と投光部110、受光部120の被写界深度が適切となる位置において交差するように、受光部120、投光部110A、110B、載置部140の相対的な位置関係が定められている。また、θ方向の回転軸の中心は、受光部120の中心軸と一致しているため、θ方向に載置部140が回転した際に、ワークWが視野から外れることなく、回転軸を中心に視野内で回転するようになっている。
【0032】
パターン生成部112は、測定光をワークWに対して投光させるよう、測定光源111から出射された光を反射させる。パターン生成部112に入射した測定光は、予め設定されたパターン及び予め設定された強度(明るさ)に変換されて出射される。パターン生成部112により出射された測定光は、複数のレンズ114、115により受光部120の観察・測定可能な視野よりも大きい径を有する光に変換された後、載置部140上のワークWに照射される。
【0033】
パターン生成部112は、測定光をワークWに投光させる投光状態と、測定光をワークWに投光させない非投光状態とに切り替え可能な部材である。このようなパターン生成部112には、例えばDMD(デジタルマイクロミラーデバイス)等を利用できる。DMDを用いたパターン生成部112は、投光状態として測定光を光路上に反射させる反射状態と、非投光状態として測定光を遮光させる遮光状態とを切り替え可能に、測定制御部150により制御できる。
【0034】
DMDは多数のマイクロミラー(微小鏡面)を平面上に配列した素子である。各マイクロミラーは、測定制御部150により個別にON状態、OFF状態を切り替えることができるので、多数のマイクロミラーのON状態、OFF状態を組み合わせて、所望の投影パターンを構成できる。これによって、三角測距に必要なパターンを生成して、ワークWの形状の測定が可能となる。このようにDMDは、測定時には測定用の周期的な投影パターンをワークWに投光する投影パターン光学系として機能する。またDMDは応答速度にも優れ、シャッターなどに比べ高速に動作させることができる利点も得られる。
【0035】
なお以上の例では、パターン生成部112にDMDを用いた例を説明したが、本発明はパターン生成部112をDMDに限定するものでなく、他の部材を用いることもできる。例えば、パターン生成部112として、LCOS(Liquid Crystal on Silicon:反射型液晶素子)を用いてもよい。あるいは反射型の部材に代えて透過型の部材を用いて、測定光の透過量を調整してもよい。この場合は、パターン生成部112を測定光の光路上に配置して、測定光を透過させる投光状態と、測定光を遮光させる遮光状態とを切り替える。このようなパターン生成部112には、例えばLCD(液晶ディスプレイ)が利用できる。あるいは、複数ラインLEDを用いた投影方法、複数光路を用いた投影方法、レーザとガルバノミラー等で構成される光スキャナ方式、ビームスプリッタで分割したビームを重ね合わせることによって発生された干渉縞を用いるAFI(Accordion fringe interferometry)方式、ピエゾステージと高分解能エンコーダ等で構成される実体格子と移動機構を用いた投影方法等でパターン生成部112を構成してもよい。
【0036】
受光部120は、載置部140の上方に配置される。ワークWにより載置部140の上方へ向けて反射された測定光は、受光部120の複数のレンズ122、123により集光、結像された後、カメラ121により受光される。
【0037】
カメラ121は、例えば撮像素子121aを含むCCD(電荷結合素子)カメラである。撮像素子121aは、例えばモノクロCCD(電荷結合素子)である。撮像素子121aは、CMOS(相補性金属酸化膜半導体)イメージセンサ等の他の撮像素子であってもよい。カラーの撮像素子は各画素を赤色用、緑色用、青色用の受光に対応させる必要があるため、モノクロの撮像素子と比較すると計測分解能が低く、また各画素にカラーフィルタを設ける必要があるため感度が低下する。そのため、本実施の形態では、撮像素子としてモノクロのCCDを採用し、後述する照明光出力部130をRGBにそれぞれ対応した照明を時分割で照射して撮像することにより、カラー画像を取得している。このような構成にすることにより、計測精度を低下させずに測定物のカラー画像を取得することができる。
【0038】
なお、撮像素子121aとして、カラーの撮像素子を用いても良い。この場合、計測精度や感度はモノクロの撮像素子に比べて低下するが、照明光出力部130からRGBにそれぞれ対応した照明を時分割で照射する必要がなくなり、白色光を照射するだけで、カラー画像を取得できるため、照明光学系をシンプルに構成できる。撮像素子121aの各画素からは、受光量に対応するアナログの電気信号(以下、「受光信号」と呼ぶ。)が測定制御部150に出力される。
【0039】
測定制御部150には、図示しないA/D変換器(アナログ/デジタル変換器)及びFIFO(First In First Out)メモリが実装されている。カメラ121から出力される受光信号は、光源部300による制御に基づいて、測定制御部150のA/D変換器により一定のサンプリング周期でサンプリングされると共にデジタル信号に変換される。A/D変換器から出力されるデジタル信号は、FIFOメモリに順次蓄積される。FIFOメモリに蓄積されたデジタル信号は画素データとして順次コントローラ200に転送される。
【0040】
コントローラ200の操作部250は、例えばキーボードやポインティングデバイス等を含むことができる。ポインティングデバイスとしては、例えばマウスやジョイスティック等が用いられる。
【0041】
コントローラ200のROM220には、システムプログラム等が記憶される。コントローラ200の作業用メモリ230は、例えばRAM(ランダムアクセスメモリ)からなり、種々のデータの処理のために用いられる。記憶装置240は、ソリッドステートドライブや、ハードディスクドライブ等からなる。記憶装置240には、リバースエンジニアリングプログラムが記憶される。また、記憶装置240は、測定制御部150から与えられる画素データ(画像データ)、設定情報、測定条件、パラメータ等の種々のデータを保存するために用いられる。測定条件としては、例えば投光部110の設定(パターン周波数、パターン種類)や、受光部120の種別(低倍受光部、高倍受光部)など、ワークWの形状を測定する際に後述するスキャナモジュール260で設定される各種の設定が含まれる。さらに記憶装置240は、測定画像を構成する画素毎に、輝度情報、座標情報、属性情報を記憶することもできる。
【0042】
CPU210は、与えられた信号やデータを処理して各種の演算を行い、演算結果を出力する制御回路や制御素子である。本明細書においてCPUとは、演算を行う素子や回路を意味し、その名称によらず、汎用PC向けのCPUやMPU、GPU、TPU等のプロセッサに限定するものでなく、FPGA、ASIC、LSI等のプロセッサやマイコン、あるいはSoC等のチップセットを含む意味で使用する。
【0043】
CPU210は、測定制御部150から与えられる画素データに基づいて画像データを生成する。また、CPU210は、生成した画像データに作業用メモリ230を用いて各種処理を行う。例えば、CPU210は、受光部120から出力される受光信号に基づいて、載置部140の特定の位置において受光部120の視野内に含まれるワークWの立体形状を表す測定データを生成する。測定データは、受光部120で取得された画像そのものであり、例えば位相シフト方式でワークWの形状を測定する場合、複数枚の画像が1つの測定データを構成することになる。なお、測定データは、三次元位置情報を有する点の集合である点群データであってもよく、この点群データにより、ワークWの測定データを取得できる。点群データは、三次元座標を有する複数の点の集合体で表現されるデータである。
【0044】
ワークWの形状を測定する際、ワークWの少なくとも一部の測定データを上述したように取得した場合、取得した一部の測定データの周囲に位置するワークWの他の部位の測定データを取得するように移動制御部144で載置部140を移動させて、当該位置でのワークWの他の部位の測定データを生成することを繰り返し、得られた複数の測定データを合成することでワークWの全体の形状を含む合成測定データを生成することができる。合成測定データを生成するモードを連結モードと呼ぶことができ、連結モードを選択することで、単一視野で撮像した場合に比べて広視野の画像を取得できる。
【0045】
移動制御部144は、ワークWの少なくとも一部の測定データに基づいて、回転ステージ143の回転動作のみを実行するか、回転ステージ143の回転動作と並進ステージ141の平行移動動作の両方を実行するかを決定する。これにより、ワークWの外形に応じて、撮像範囲をユーザが意識することなく自動判定することにより、三次元計測が容易となる。なお、移動制御部144は、並進ステージ141をXY方向に移動させた後に、XY方向の移動を停止させた状態で、回転ステージ143を回転させるよう制御でき、これにより、ワークWの周囲の形状も取得できる。
【0046】
表示部400は、測定部100で取得された縞投影画像や、縞投影画像に基づいて生成した深度画像、あるいは測定部100で撮像されたテクスチャ画像、各種ユーザインタフェース画面等を表示させるための部材である。表示部400は、例えばLCDパネル又は有機EL(エレクトロルミネッセンス)パネルにより構成される。さらに表示部400にタッチパネルを利用することで、操作部250と兼用することができる。また表示部400は、受光部120により生成された画像も表示可能である。
【0047】
光源部300は、制御基板310及び観察用照明光源320を含む。制御基板310には、図示しないCPUが実装される。制御基板310のCPUは、コントローラ200のCPU210からの指令に基づいて、投光部110、受光部120及び測定制御部150を制御する。なお、この構成は一例であり、他の構成としてもよい。例えば測定制御部150で投光部110や受光部120を制御したり、又はコントローラ200で投光部110や受光部120を制御することとして、制御基板を省略してもよい。あるいはこの光源部300に、測定部100を駆動するための電源回路を設けることもできる。
【0048】
観察用照明光源320は、例えば赤色光、緑色光及び青色光を出射する3色のLEDを含む。各LEDから出射される光の輝度を制御することにより、観察用照明光源320から任意の色の光を発生することができる。観察用照明光源320から発生される照明光ILは、導光部材(ライトガイド)を通して測定部100の照明光出力部130から出力される。なお観察用照明光源には、LEDの他、半導体レーザ(LD)やハロゲンライト、HIDなど、他の光源を適宜利用することもできる。特に撮像素子としてカラーで撮像可能な素子を用いた場合は、観察用照明光源に白色光源を利用できる。
【0049】
照明光出力部130から出力される照明光ILは、赤色光、緑色光及び青色光を時分割で切り替えてワークWに照射する。これにより、これらのRGB光でそれぞれ撮像されたテクスチャ画像を合成して、カラーのテクスチャ画像を得て、表示部400に表示させることができる。
【0050】
コントローラ200は、CPU210、ROM220、作業用メモリ230、記憶装置240等により、
図5に示すスキャナモジュール260と変換モジュール270と統合モジュール280と解析モジュール290とを構成している。これらモジュール260、270、290の動作の詳細は、後述するが、概略について説明すると、スキャナモジュール260は、ワークWの形状を測定することによって当該ワークWの画像データを取得し、当該画像データに基づいてワークWのメッシュデータを作成する部分である。変換モジュール270は、スキャナモジュール260により作成されたメッシュデータをCADデータに変換する部分である。CADデータは、解析曲面、自由曲面で構成される三次元形状情報であり、サーフェスデータ、ソリッドデータ、設計に用いるデータなどを含んでいる。サーフェスデータは、円筒の側面データ、平面データなど、自由曲面・解析曲面で構成される形状表面のデータである。
【0051】
解析モジュール290は、メッシュデータを取得し、取得したメッシュデータから複数の幾何要素を抽出し、抽出された複数の幾何要素間の寸法を算出する部分である。
【0052】
統合モジュール280は、スキャナモジュール260から変換モジュール270や解析モジュール290への信号やデータの送信、変換モジュール270からスキャナモジュール260への信号やデータの送信を行う部分である。本例において、モジュールとは、複数の演算処理を1つの単位で実行し得るものであり、例えば機能単位、機能ブロック等の呼ぶこともできる。
【0053】
スキャナモジュール260は、例えば、測定条件設定部261、スキャナ制御部262、メッシュデータ作成部263、スキャナ出力部264等を有している。測定条件設定部261は、ワークの形状の測定条件を設定する部分である。スキャナ制御部262は、測定条件設定部261で設定された測定条件に従って測定部100を制御して画像データを生成し、生成した画像データに基づいてワークWの測定データを取得する部分である。メッシュデータ作成部263は、スキャナ制御部262で取得されたワークWの画像データに基づいてメッシュデータを作成する部分である。スキャナ出力部264は、メッシュデータ作成部263で作成されたメッシュデータと、付加データとを変換モジュール270に出力する部分である。付加データは、測定条件とワークWの測定データから算出されたデータとの少なくとも一方を含むデータである。
【0054】
つまり、スキャナモジュール260は、測定部100の制御を行うとともに、ワークWの形状測定を実施した諸条件(測定機種、測定倍率、解像度など)および測定時のRawデータ(例えば画像データ等)を3次元データとともに生成する。3次元データは、複数のポリゴンを含むメッシュデータであり、ポリゴンデータとも呼ぶことができる。ポリゴンは、複数の点を特定する情報と、それらの点を結んで形成される多角形面を示す情報とで構成されるデータであり、例えば3つの点を特定する情報と、それら3つの点を結んで形成される三角形の面を示す情報とで構成することができる。メッシュデータおよびポリゴンデータは、複数のポリゴンの集合体で表現されるデータと定義することも可能である。
【0055】
変換モジュール270では、メッシュデータを取得し、取得したメッシュデータをCADデータに変換する。
【0056】
解析モジュール290は、ワークWのメッシュデータを取得し、取得されたワークWのメッシュデータから複数の幾何要素を抽出し、抽出された複数の幾何要素間の寸法を算出する算出部291を有している。
【0057】
本リバースエンジニアリング支援装置1は、測定・処理決定・変換の各モジュール260、270をすべて内包したオールインワン形態であり、各モジュール260、270間のデータ送受信は自動化することも可能となる。
【0058】
各モジュール260、270間のデータ送受信を自動化する場合、これらモジュール260、270を統合する統合モジュール280を設ける。これにより、各モジュール260、270は統合モジュール280から指定された処理を進める形態となる。統合モジュール280の役割は測定・処理決定・CAD変換等を実行する各モジュール260、270のいずれかに集約することも可能である。また、解析モジュール290の各機能をスキャナモジュール260に統合することも可能である。
【0059】
(変換モジュールの詳細)
図5に示すように、変換モジュール270は、例えば、データ取得部271、受付部272、幾何要素抽出部273、パラメータ特定部274、処理ユニット275、変換部276、報知部277及び表示制御部278を備えている。尚、データ取得部271、受付部272、幾何要素抽出部273、パラメータ特定部274、処理ユニット275、変換部276、報知部277及び表示制御部278が複数のモジュールに分かれていてもよい。
【0060】
ここで、データ取得部271、受付部272、幾何要素抽出部273、パラメータ特定部274、処理ユニット275、変換部276及び報知部277の動作の概略を説明しておく。データ取得部271は、スキャナモジュール260で測定されたワークWのメッシュデータを取得する部分である。受付部272は、ユーザによってなされた操作部250の操作を受け付ける部分であり、例えばCADデータへの変換モードの選択等が可能になっている。幾何要素抽出部273は、データ取得部271により取得されたワークWのメッシュデータから各種幾何要素を抽出する部分である。パラメータ特定部274は、受付部272で受け付けられた変換モードに対応する変換パラメータが保持されたパラメータテーブルを参照し、変換パラメータを特定する部分である。
【0061】
また、処理ユニット275は、データ取得部271で取得されたメッシュデータに対して各種処理を実行する部分である。具体的には、処理ユニット275は、分割処理部275a、曲面データ作成部275b、境界線規定部275c、補正処理部275d、領域特定部275eを含んでいる。尚、本例では、分割処理部275a、曲面データ作成部275b、境界線規定部275c、補正処理部275d及び領域特定部275eにより処理ユニット275が構成されているが、この構成例は一例であり、各部の分け方は任意に設定でき、2つ以上の部分を統合して1つの処理部として構成することも可能である。
【0062】
変換部276は、データ取得部271で取得されたメッシュデータを、受付部272で受け付けられた変換モードに応じたCADデータに変換する部分である。また、報知部277は、処理ユニット275が所定の処理を行ったことをユーザに報知する部分であり、報知内容については後述する。
【0063】
変換モジュール270は、
図6に示すフローチャートに従って動作可能に構成されている。ステップSA1では、スキャナモジュール260のメッシュデータ作成部263で生成されたメッシュデータをデータ取得部271が取得する。ステップSA1は、ワークWのメッシュデータを取得するデータ取得工程である。
【0064】
ステップSA2では、ステップSA1で取得したメッシュデータに前処理を実行する。前処理とは、メッシュデータに施される穴埋め処理や不要部除去処理、ヒーリング処理、リメッシュ処理等である。穴埋め処理とは、メッシュデータ上で開放エッジ(隣接ポリゴンが存在しないエッジ)を特定し、連続した開放エッジで構成されるループを特定した後、そのループ内に新たなメッシュデータを作成して当該ループを補正する処理である。具体的には、変換モジュール270の例えば補正処理部272dが、データ取得部271で取得したメッシュデータにポリゴンが存在しないループが含まれている場合に当該ループ内に新たなメッシュデータを作成してループを補正する。要するに、ループ内をポリゴンで埋め、穴の無いデータを生成する。これにより、完全に穴が埋まった閉じたメッシュデータをCADデータに変換することが可能になるので、変換後のデータもソリッドデータにできる。また、リメッシュ処理とは、メッシュの三角形を正三角形に近づける処理である。メッシュデータに対し前処理を実行する場合には、前処理の実行をユーザが指示すればよい。前処理は、リバースエンジニアリングの中で適切なタイミングで実施すればよい。
【0065】
ステップSA3では、変換部276がメッシュデータをCADデータに変換する際の変換モードの判定を当該変換部276が行う。変換モードには、アウトラインモードと、忠実モードとが含まれている。この実施形態では、アウトラインモードと、忠実モードの2つの変換モードを有する場合について説明するが、3つ目の変換モードや、4つ目の変換モードが含まれていてもよい。アウトラインモードが本発明の第1の変換モードに相当し、忠実モードが本発明の第2の変換モードに相当する。
【0066】
アウトラインモードと忠実モードの相違は、データ取得部271により取得されたワークWのメッシュデータをCADデータに変換する際の当該メッシュデータに対する忠実度が異なる点にある。忠実度は、メッシュデータを変換した後のCADデータが変換前のメッシュデータに対してどの程度忠実であるかを示す度合いであり、例えば、メッシュデータとCADデータの差分が小さいほど忠実度が高いデータとなる。忠実度が高ければ高いほど、CADデータの示す形状がメッシュデータにより得られる形状(ワークWの形状)に近づいていくので、ワークWの形状を忠実に再現することが可能になる。
【0067】
アウトラインモードは、データ取得部271により取得されたワークWのメッシュデータを、当該メッシュデータに対する忠実度が第1の忠実度のCADデータに変換する変換モードである。一方、忠実モードは、データ取得部271により取得されたメッシュデータを、当該メッシュデータに対する忠実度が、第1の忠実度よりも忠実度が高い第2の忠実度のCADデータに変換する変換モードである。
【0068】
アウトラインモードと忠実モードの相違について具体的に説明する。まず、アウトラインモードについて説明する。アウトラインモードの場合、メッシュデータをCADデータに変換する際に、例えば自由曲面・平面・円筒面などが指定できる。CAD上でも平面・円筒面などとしてユーザが認識可能であり、解析曲面と自由曲面が混在したCADデータになる。また、アウトラインモードの場合、詳細は後述するが、緩曲面同士を接続して詳細形状を簡略化するので、結果的に、ワークWのメッシュデータに含まれるフィレットが除去されたCADデータとなる。また、アウトラインモードの場合、曲面生成の際、大局的な形状を表す曲面を生成すべく、曲面の形状を決定するために使用される制御点の数の上限を忠実モードに比べて低くする。また、境界線生成の際、2つの曲面の境界を交線接続と接線連続に分類し、2つの曲面が交差する交線を求め、求めた交線を2つの曲面の境界を示す境界線とし、また、接線連続境界は曲面を変形して接続してもよい。
【0069】
このアウトラインモードは、変換後のCADデータをCADで編集することが可能であるとともに、平面や円筒面などのプリミティブ曲面を表現可能であるが、フィレットや細かい形状は簡略化されるので、機械的形状の再設計などに適した変換モードである。よって、アウトラインモードは、編集可能モード、再設計用モードなどと呼ぶこともできる。
【0070】
次に、忠実モードについて説明する。忠実モードの場合、解析曲面の数がアウトラインモードで変換されたCADデータよりも少ないCADデータ、例えば、自由曲面のみで構成されるCADデータを生成する。忠実モードでは、領域の指定は平面・円筒面などを利用することができるが、最終的なCADファイルではすべて自由曲面として出力され、曲面生成時にメッシュデータと生成された曲面の誤差を評価する。また、忠実モードの場合、領域分割を細分化するとともに、自動平面認識・自動円筒面認識を行わないので、メッシュデータの詳細形状は細かな曲面に分割して表現する。よって、ワークWのメッシュデータに含まれるフィレットが除去されないCADデータとなる。また、忠実モードの場合、制御点の数の上限をアウトラインモードに比べて高くすることで、メッシュデータに忠実な曲面を生成可能にする。
【0071】
この忠実モードは、CADでの編集が不可であるとともに、すべてB-Spline曲面で表現されるので、スキャンした形状が忠実に再現される変換モードである。忠実モードは、CAEなどのシミュレーション、ワークWのデザインの再現、生物学・考古学などの形状記録に適している。よって、忠実モードは、編集不可モード、形状記録モードなどと呼ぶこともできる。
【0072】
ステップSA3のモード判定では、ユーザの操作を受付部272が受け付ける。例えば
図7に示すオート/マニュアルモード選択画面690を表示制御部278が生成して表示部400に表示させる。オート/マニュアルモード選択画面690には、オート変換ボタン690aとマニュアル変換ボタン690bとが設けられている。オート変換ボタン690a及びマニュアル変換ボタン690bは例えばアイコン等であってもよい。ユーザが操作部250を操作してオート変換ボタン690aが押された場合には、リバースエンジニアリング支援装置1がメッシュデータを取得し、取得したメッシュデータを解析するとともにCADデータを生成し、生成したCADデータの出力までを自動で実行する。オート変換モードでCADデータを作成する場合、アウトラインモードでCADデータを生成するのか忠実モードでCADデータを生成するのかといった情報や、各々の変換モードにおけるパラメータはあらかじめ記憶装置240に記憶されていてもよい。
【0073】
一方、ユーザが操作部250を操作してマニュアル変換ボタン690bが押された場合には、
図8に示すアウトラインモード/忠実モード選択画面691を表示制御部278が生成して表示部400に表示させる。アウトラインモード/忠実モード選択画面691には、アウトラインモードボタン691aと忠実モードボタン691bとが設けられている。アウトラインモードボタン691a及び忠実モードボタン691bは例えばアイコン等であってもよい。ユーザが操作部250を操作してアウトラインモードボタン691aが押された場合には、受付部272が当該操作をアウトラインモードの選択操作として受け付ける。一方、ユーザが操作部250を操作して忠実モードボタン691bが押された場合には、受付部272が当該操作を忠実モードの選択操作として受け付ける。つまり、受付部272は、データ取得部271により取得されたワークWのメッシュデータをCADデータに変換する際の変換モードとして、アウトラインモードと忠実モードとの選択を受け付ける部分である。
【0074】
ステップSA3の判定は変換部276が行うことができる。ステップSA3でアウトラインモードが選択されていると判定された場合にはステップSA4に進み、アウトラインモード用パラメータを取得する。一方、ステップSA3で忠実モードが選択されていると判定された場合にはステップSA5に進み、忠実用パラメータを取得する。
【0075】
具体的には、アウトラインモードに対応する変換パラメータで構成されたアウトラインモード用パラメータと、忠実モードに対応する変換パラメータで構成された忠実モード用パラメータとが保持されたパラメータテーブルが予め記憶装置240等に記憶されている。パラメータテーブルには、例えば曲面データ作成の際に用いられる制御点の上限数の項目が含まれている。パラメータテーブルにおける制御点の上限数の項目では、アウトラインモードが選択された場合よりも忠実モードが選択された場合の方が曲面データ作成部275bによる曲面データ作成の際の制御点の数が大きくなるように当該制御点の上限数が設定されている。これにより、アウトラインモードが選択された場合よりも忠実モードが選択された場合の方が、メッシュデータに対する曲面データの忠実度を高くすることができる。なお、アウトラインモードが選択された場合の制御点の上限数は、例えば5×5程度とすることができるが、これに限られるものではない。
【0076】
パラメータ特定部274は、受付部272により受け付けた変換モードに基づいて、パラメータテーブルを参照し、上述したように変換モードに対応した変換パラメータを特定する。受付部272により受け付けた変換モードがアウトラインモードである場合には、パラメータ特定部274がパラメータテーブル中のアウトラインモード用パラメータを特定し、受付部272により受け付けた変換モードが忠実モードである場合には、パラメータ特定部274がパラメータテーブル中の忠実モード用パラメータを特定する。特定された変換パラメータは変換部276で取得される。
【0077】
ステップSA4の後、ステップSA6ではユーザ領域指定するか否かを判定する。ステップSA6の判定では、ユーザの操作を受付部272が受け付け、ユーザが領域指定する場合にはステップSA7に進み、ユーザが領域指定しない場合にはステップSA8に進む。
【0078】
ステップSA7では、例えば
図9に示すような要素設定画面700を表示制御部278が生成し、表示部400に表示させる。要素設定画面700には、データ取得部271が取得したメッシュデータを表示するメッシュデータ表示領域701と、幾何要素抽出部273により幾何要素を抽出するための幾何要素抽出画面702とが設けられている。幾何要素抽出画面702には、幾何要素の抽出手順が表示される手順表示領域702aと、領域指定方法の選択部702bと、指定モードの選択部702cと、領域編集の選択部702dとが設けられている。ユーザによる各選択操作は受付部272で受け付けられる。
【0079】
手順表示領域702aには、抽出する幾何要素を示す図も表示されるようになっており、本例では「球」が幾何要素種別として選択されている場合を示している。領域指定方法の選択部702bでは、ユーザによる領域指定の方法を複数通りの中から選択できるようになっている。指定モードの選択部702cでは、追加の指定か、削除の指定を選択できるようになっている。領域編集の選択部702dでは、領域の編集方法として、縮退、膨張、クリア(消去)の選択できるようになっている。
【0080】
幾何要素抽出部273は、幾何要素種別のメッシュデータを元に、最小二乗近似を実行して幾何要素を抽出する。具体的には、
図9に示す要素設定画面700のメッシュデータ表示領域701のメッシュデータには、幾何要素抽出画面702で設定された領域を囲む枠線701Aが表示されている。「球」が幾何要素種別として選択されているので、枠線701Aで囲まれた領域内に含まれる幾何要素として球が抽出されることになる。枠線701Aの大きさや位置、形状はユーザが操作部250を操作することで任意に変更できる。このように、受付部272は、メッシュデータから抽出する幾何要素の形状である幾何要素種別と、当該形状で抽出する領域の指定を受け付けることができる。そして、幾何要素抽出部273は、受付部272により受け付けた幾何要素の形状と領域に基づいて、メッシュデータから幾何要素を抽出する。
【0081】
ステップSA8では、ステップSA3と同様にモード判定を実行し、アウトラインモードの場合にはステップSA9に進み、忠実モードの場合にはステップSA10に進む。なお、ステップSA3からステップSA5までのステップは必ずしも必要ではなく、
図9に示すような要素設定画面700で幾何要素を抽出後に、メッシュデータと要素設定画面700で抽出された幾何要素とを対比してそれぞれ表示する変換設定画面を表示してもよい。この変換設定画面上に、変換モード選択部が設けられ、当該変換モード選択部で選択されたモードに基づいて、モード判定を実行してもよい。
【0082】
ステップSA9では、
図10のフローチャートに示すアウトラインモード処理を実行する。ステップSB1では、分割処理部275aが、パラメータ特定部274で特定したアウトラインモード用パラメータに従って、データ取得部271により取得されたメッシュデータを複数の領域に分割する。これをアウトラインモードの自動領域分割という。
【0083】
図6のステップSA7を経ている場合には、メッシュデータから幾何要素が抽出されている。メッシュデータから幾何要素が抽出されている場合、メッシュデータに含まれる領域の内、幾何要素として抽出された領域は、数学的に記述可能な面で構成された領域であるため、分割処理部275aが、メッシュデータから一の幾何要素として抽出されている領域を、一の解析曲面として分割処理を行う。すなわち、分割処理部275aは、幾何要素として抽出された領域の各々を一の解析曲面として分割処理を行う。また、分割処理部275aは、メッシュデータに含まれる領域の内、幾何要素として抽出されていない領域はアウトラインモード用パラメータに従って分割処理を行う。
【0084】
アウトラインモードの自動領域分割処理について、
図11に示すフローチャートに基づいてより具体的に説明する。アウトラインモードの自動領域分割処理は緩曲面領域分割処理であり、分割処理部275aが実行する。ステップSC1では、分割処理部275aが、メッシュデータに含まれるポリゴンごとの曲率値を計算する。ステップSC2では、分割処理部275aが、ステップSC1で計算した曲率値に基づいて、ポリゴンを昇順ソートする。ステップSC3では、分割処理部275aが、どの領域にも属していないポリゴンを抽出し、どの領域にも属していないポリゴンのうち、曲率値が最小のポリゴンを取り出す。ステップSC4では、分割処理部275aが、ステップSC3で取り出したポリゴンの曲率値を取得し、その曲率値が閾値未満であるか否かを判定する。この閾値は、アウトラインモード用パラメータに含まれており、第1の値とすることができる。つまり、分割処理部275aがメッシュデータを曲率値に基づいて分割することにより、曲率値が第1の値よりも小さな第1の領域群が複数生成される。曲率値が第1の値よりも小さな第1の領域群は、領域特定部275eによって複数特定される。この工程は、データ取得工程により取得されたワークWのメッシュデータを曲率値に基づいて分割し、曲率値が第1の値よりも小さな第1の領域群である緩曲面領域を複数特定する特定工程である。なお、ここでは、分割処理部275aがメッシュデータに含まれるポリゴンごとの曲率値を計算し、計算した曲率値に基づいてポリゴンを分割する場合を説明したが、曲率値に限らず、ポリゴンの形状やポリゴンの法線ベクトルの向き、隣接するポリゴンの角度(法線ベクトルの角度差)、ポリゴンのサイズなどの幾何学的特性値に基づいてメッシュデータを分割してもよい。
【0085】
ステップSC4でYESと判定されてステップSC3で取り出したポリゴンの曲率が閾値未満である場合にはステップSC5に進む。一方、ステップSC4でNOと判定されてステップSC3で取り出したポリゴンの曲率値が閾値以上である場合には、緩曲面領域分割処理を終了する。
【0086】
緩曲面領域分割処理を行うことで、メッシュデータを閾値未満の曲率の領域に分割することができ、閾値以上の曲率を有する部分は未定義領域として残った状態になる。曲率の範囲は、例えば、曲率を曲率半径で表した時にワークWの差し渡しの長さの1/1000~1/10程度することができるが、ワークWの表面の粗さやスキャン時のノイズ等により変えてもよい。
【0087】
その後、
図10に示すステップSB2に進む。ステップSB2では、分割処理部275aが、ステップSB1で分割した領域を曲面生成に適するようにさらに分割する。例えば、オーバーハングしたり、極端に細い領域にならないように、ステップSB1で分割した領域をさらに分割する。ステップSB2による領域の分割の後、ステップSB3では境界線規定処理を実行する。
【0088】
境界線規定部275cは、領域特定部275eにより特定された複数の緩曲面領域のうち、2つの緩曲面領域の境界線を規定する。そして、境界線種別判定部275f(
図5に示す)は、境界線規定部275cにより規定された境界線が、交線接続または接線接続のいずれの種別であるかを2つの緩曲面領域の接続関係に基づいて判定する。この判定は、2つの緩曲面領域の法線ベクトルの向きに基づいて判定してもよい。尚、未定義領域はそのままにしておく。
【0089】
その後、ステップSB4に進む。ステップSB4では、曲面データ作成部275bが、曲面を作成する。例えば、緩曲面領域ごとにB-Spline曲面を作成する。曲面データ作成部275bは、分割処理部275aにより分割された第1の領域群と、境界線規定部275cにより規定された境界線と、境界線種別判定部275fにより判定された境界線の種別に基づいて、境界線に接する曲面データを作成できる。曲面データ作成部275bは、領域特定部275eにより特定された第1の領域群である緩曲面領域に含まれるメッシュデータに対する重みを、緩曲面領域と境界線との間の領域である第2の領域群に含まれるメッシュデータに対する重みよりも大きくして第1の領域群と第2の領域群を含む第3の領域群の曲面データを作成することができる。緩曲面領域と境界線との間の領域に含まれるメッシュデータは、曲率が相対的に大きい。アウトラインモードでCADデータに変換する場合は、メッシュデータに含まれる複雑な形状は不要なため、複雑な形状の原因となる曲率が相対的に大きい領域の重みづけを小さくすることで、より形状をシンプルに表現できる。曲面データ作成部275bは、アウトラインモード用パラメータに含まれる上限数以内となるように、曲面データ作成の際の制御点を設定する。
【0090】
ステップSB5では、曲面データ作成部275bが、ノードとトリム曲線を形成する。このステップでは、
図12に示すように、3領域以上が接する点をノードN1として特定する。このとき、外周部が領域0として仮想的な領域が存在するものとする。また、輪郭線が急角度で曲がっている部分にノードN2を追加する。
【0091】
複数のノードが特定された場合、
図13に示すように、ノードN1(またはN2)とノードN1(またはN2)を結び、かつ、2つの緩曲面領域の境界をなす線を境界線とする。境界曲線のうち、接線接続境界線は境界線上の点列をスムージングしたのちにB-Spline曲線を生成して境界曲線とする。また、交線接続境界線は境界線を挟んだ2曲面の交線を求めてB-spline曲線に変換して境界曲線とする。交線が求まらない場合は接線接続境界線と同じように生成することができる。
【0092】
図14は、位相構造をデータ化した場合を示している。
図14では、境界線をエッジと呼んでいる。以下、位相構造をデータ化する手順について説明する。まず、エッジとノードにそれぞれ固有の番号を付与する。その後、エッジに方向を定義する。このときの方向はどちら向きでもよい。また、エッジが接続するノードと領域をエッジに関連付ける。
【0093】
例
エッジ0:始点ノード0、終点ノード1、右側領域1、左側領域0
エッジ5:始点ノード3、終点ノード5、右側領域2、左側領域3
【0094】
次いで、領域の外周を構成するエッジを領域に関連付ける。この際、領域の表側から見て、外周を反時計回りに一周するようにエッジを順番付ける。また、このループに対するエッジの向きが順方向なら+、逆方向なら-の符号を付ける。
【0095】
例
領域1:+エッジ0,+エッジ1,+エッジ2,+エッジ3,+エッジ4
領域3:-エッジ2,+エッジ8,+エッジ9,-エッジ5
【0096】
以上のようにして形成されたループを外周トリムループと呼ぶ。
【0097】
図示していないが、実際には領域に0個以上穴が開いていることがある。穴のエッジもループを構成し、内周トリムループと呼ぶ。内周トリムループは時計回りとなる。
【0098】
図15は、交線接続境界線と接線接続境界線を説明する図である。図中、実線が交線接続境界線であり、境界線を挟んだ2つの領域の法線の向きが急変するような境界線である。図中、破線がそれ以外の境界線であり、接線接続境界線である。境界線規定部275cが、曲面データ作成部275bにより作成された曲面データ間の境界線を規定する。
【0099】
また、曲面データ作成部275bは、1つ以上の境界曲線をたどってただ1つの領域を囲むループ状の経路を定義する。これをトリムループとする。1つの曲面には1つの外周トリムループと、0個以上の内周トリム曲線が存在することになる。曲面・ノード・トリムループの接続関係を表すB-Repデータを曲面データ作成部275bが作成する。
【0100】
上記トリムループを構成する各曲線とノードの幾何的な位置を決定する具体的な方法について説明する。接線接続境界の曲線については、ポリゴン境界の点列をスムージングした曲線を、境界を挟む2領域の曲面に投影し、その中間線を境界線として用いる。交線接続境界の曲線については、境界を挟む2領域の曲面の交線を求めて境界線として用いる。
【0101】
ノードについては、ノードに接続する境界線がすべて接線接続の場合、ノードの基準となるポリゴン頂点を、ノードに接するすべての曲面に投影したものの重心をノードの位置とする。また、ノードに接続する境界線がすべて交線接続の場合、交線が交わる点をノードの位置とする。さらに、ノードに接続する境界線のうち一部が交線接続の場合、交線接続の境界線が1本のみというケースは通常発生しないので、交線が交わる点をまず求める。求めた点を接線接続の関係にある境界線を挟むすべての曲面に投影した重心をノードの位置とする。境界線を調整する際には、境界線の始点・終点が必ずノードを通るよう、ノードの位置を決めた後、境界線の位置を微修正する。尚、この修正により曲面と境界線の位置がずれる可能性があるが、以下の補正処理で位置ずれを補正する。
【0102】
以上のように、曲面データ作成部275bは、パラメータ特定部274で特定したアウトラインモード用パラメータに従って、分割処理部275aにより生成された各々の領域に対応する曲面データを作成する。この工程は、特定工程により特定された緩曲面領域と、境界線規定工程により規定された境界線とに基づいて、当該境界線に接する曲面データを作成する曲面データ作成工程である。
【0103】
図10に示すステップSB6では、補正処理部275dが、ステップSB4で作成した曲面と、ステップSB5で作成したノードとトリム曲線を補正する処理を実行する。このステップSB6の処理では、例えば、トリムループが自己交差している場合には不正なCADデータを生成してしまうため自己交差を除去する処理を行う。また、重複して定義された境界線、例えば幾何的に同じ曲線が2つ以上定義されている場合は1つに集約する。また、トリムループ内の曲線の向きは正・逆両方向の曲線が含まれるが、ループの向きに正しく沿っているか判定して、逆向きのものがあれば修正する。さらに、面積を持たない、もしくは微小面積のトリムループを除去する。この時点ではトリムループと曲面は完全に一致していないため、トリムループの境界曲線に曲面を添わせるように曲面を再計算して変形する。これにより、補正処理部275dは、境界線規定部275cにより規定された境界線に曲面データが接合するように曲面データを補正することができる。
【0104】
ステップSB7では、変換部276が、補正処理部275dにより補正された複数の曲面データをCADデータに変換する変換処理を実行する。これにより、接線接続の境界線と交線接続の境界線とを含むCADデータが生成される。この工程は、曲面データ作成工程により作成された曲面データをCADデータに変換する変換工程である。その後、
図6のステップSA11に進み、CADデータを出力する。
【0105】
一方、
図6のステップSA10では、パラメータ特定部274で特定した忠実モード用パラメータを用いて、メッシュデータをCADデータに変換する。具体的には、分割処理部275aは、受付部272により受け付けた変換モードが忠実モードである場合には、メッシュデータに含まれる領域の内、幾何要素として抽出された領域を自由曲面として分割処理を行う。幾何要素として抽出された領域を自由曲面として分割処理部275aが分割処理を行う場合には、報知部277が、幾何要素として抽出された領域を自由曲面として分割処理部275aが分割処理を行うことをユーザに報知する。報知部277によるユーザへの報知形態は、特に限定されるものではなく、表示部400にメッセージ、コメント、アイコン、記号等を表示する報知形態であってもよいし、音声等による報知形態であってもよい。
【0106】
曲面データ作成部275bが曲面データを作成する際には、忠実モード用パラメータに含まれる上限数以内となるように、曲面データ作成用の制御点を設定するので、アウトラインモードに曲面データを作成する場合に比べて制御点の数が多くなる。また、メッシュデータの形状が複雑なところにはノットを追加する。これらのことにより、メッシュデータに忠実な曲面を作成できる。
【0107】
変換部276は、受付部272により受け付けた変換モードが忠実モードである場合交線接続の境界線の数がアウトラインモードよりも少ないCADデータを生成する。なお、受付部272により受け付けた変換モードが忠実モードである場合交線接続の境界線を含まないCADデータを生成してもよい。すなわち、変換部276は、受付部272により受け付けた変換モードがアウトラインモードである場合には、データ取得部271により取得されたワークのメッシュデータを、当該メッシュデータに対する忠実度が相対的に低い忠実度のCADデータに変換する一方、受付部272により受け付けた変換モードが忠実モードである場合には、データ取得部271により取得されたメッシュデータを、当該メッシュデータに対する忠実度が、相対的に高い第2の忠実度のCADデータに変換するように構成されている。
【0108】
(曲面データ作成処理の具体例)
図16は、曲面データ作成部275bによる曲面データ作成処理の具体例を説明する図である。曲面データ作成処理では第1の領域群である緩曲面領域と緩曲面領域と境界線との間の領域である第2の領域群に分類しており、曲面作成時には第1の領域群に含まれるポリゴンに対して、第2の領域群に含まれるポリゴンよりも十分大きい重みをつけてフィッティングを行い、第1の領域群と第2の領域群を含む第3の領域群の曲面データを作成する。これにより、曲面周辺部でのゆがみを抑えることができる。
【0109】
図16に示す例では、第1の領域群に含まれるポリゴンの重みをW=1.0とし、第2の領域群に含まれるポリゴンの重みをW=0.01としている。一方、
図16中、破線で示している部分は、第1の領域群に含まれるポリゴンの重みづけが不十分な場合を示しており、このように第1の領域群に含まれるポリゴンの重みづけが不十分であると、曲面周辺部でゆがみが大きくなる。
【0110】
図16における符号Bはポリゴンの境界位置を示し、符号Cは第3の領域群の曲面データによって規定された交線の位置を示している。このように、2つの緩曲面領域が十分な角度で交わるときは交線を生成できる。
【0111】
ここで、交線を生成できるとは、緩曲面領域のポリゴンメッシュの境界線と、ポリゴンメッシュにフィッティングしたB-Spline曲面同士の交差を求めることによってできる境界線の距離が所定の距離以内であることとする。この所定の距離はポリゴンメッシュの境界位置の曲率の逆数(曲率半径)程度とする。すなわち、境界線規定部275cは、2つの緩曲面領域の交差角度を算出し、算出した交差角度が所定角度範囲内である場合は、交線の規定が可能であると判定し、算出した交差角度が所定角度範囲外である場合は、交線の規定が不可であると判定する。
【0112】
図17は、上側に位置する緩曲面領域と、下側に位置する緩曲面領域とが平行に近い場合を示しており、符号Bはポリゴンの境界位置を示し、符号Cは第3の領域群の曲面データによって規定された交線の位置を示している。この図に示すように、第3の領域群どうしが平行に近いときには交線を規定できない。すなわち、境界線規定部275cは、第3の領域群どうしの平行度合いを算出し、算出した平行度合いが所定以上である場合は、交線の規定が可能であると判定し、算出した平行度合いが所定未満である場合は、交線の規定が不可であると判定することができる。
【0113】
図18は、互いに平行な緩曲面の処理の第1の方法を説明する図であり、符号Bはポリゴンの境界位置を示している。「平行」とは厳密に平行でなくてもよく、
図17に示すように交線を規定できない程度の平行度も「平行」であるとする。以下、同様である。第1の方法では、互いに平行な2つの緩曲面にほぼ垂直な第3の曲面Dを新たに作成して2つの緩曲面を第3の曲面Dによって接続する。
【0114】
図19は、互いに平行な緩曲面の処理の第2の方法を説明する図であり、符号Bはポリゴンの境界位置を示している。第2の方法では、拡張部ポリゴンを別領域として2つの緩曲面領域をなだらかに接続する。具体的には、拡張部ポリゴンから新たな曲面を生成して2つの緩曲面領域の間を接続する。
【0115】
図20は、垂直面の生成方法を説明する図である。
図20の左側の図に示すように、緩曲面領域が領域F、領域G、領域H、領域Iのように4つ定義可能なワークWを例としている。これらの緩曲面領域のうち、領域Fと領域G、領域Gと領域H、領域Fと領域H、領域Gと領域I、領域Hと領域I間の境界は交線が求められるが、領域Fと領域Iの間においては領域Fと領域Iが平行なため交線境界とすることができない。
【0116】
交線が求められる境界線については各曲面を交線まで延長して接続する。領域Fと領域Iの間においては領域Jを新たに生成して領域Fと領域Iの間を領域Jによって接続する。領域F、領域G、領域Iの各面および領域F、領域I、領域Hの各面の境界に生じる節点は領域Jの追加により領域Gと領域Jの間の境界線、領域Hと領域Jの間の境界線となる。この境界線で交線が生成可能かどうかも判定し、再帰的に平行面の処理を行う。
図20の右側のように、領域Jは、曲面作成に適するように更に分割することができる。
【0117】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【0118】
以上説明したように、本開示に係るリバースエンジニアリング支援装置は、例えば現物の形状を取得して設計データ化する場合等に利用できる。
【符号の説明】
【0119】
1 リバースエンジニアリン支援装置
271 データ取得部
272 受付部
273 幾何要素抽出部
274 パラメータ特定部
275a 分割処理部
275b 曲面データ作成部
275c 境界線規定部
275d 補正処理部
275e 領域特定部
276 変換部
277 報知部