IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社キーエンスの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024024587
(43)【公開日】2024-02-22
(54)【発明の名称】リバースエンジニアリング支援装置
(51)【国際特許分類】
   G06F 30/10 20200101AFI20240215BHJP
【FI】
G06F30/10 100
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023096924
(22)【出願日】2023-06-13
(31)【優先権主張番号】P 2022127395
(32)【優先日】2022-08-09
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】青木 和佐
(72)【発明者】
【氏名】藤原 政記
(72)【発明者】
【氏名】田淵 潤
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146DA05
5B146DE02
5B146DG01
5B146EA02
5B146EA07
5B146EA18
5B146EC04
(57)【要約】
【課題】メッシュデータに沿った幾何要素から設計図に直接利用できるCADデータを容易に作成できる。
【解決手段】ワークの立体形状を測定することで得られるメッシュデータをCADデータに変換して出力するリバースエンジニアリング支援装置である。リバースエンジニアリング支援装置は、メッシュデータを取得するデータ取得部と、メッシュデータから幾何要素データを抽出する抽出部と、抽出部により抽出された幾何要素データの特徴値に対して端数処理を施す端数処理部と、端数処理が施された幾何要素データをCADデータに変換する変換部と、CADデータを出力する出力部と、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
ワークの立体形状を測定することで得られるメッシュデータをCADデータに変換して出力するリバースエンジニアリング支援装置であって、
メッシュデータを取得するデータ取得部と、
前記メッシュデータから幾何要素データを抽出する抽出部と、
前記抽出部により抽出された幾何要素データの座標値又は寸法値に対して端数処理を施す端数処理部と、
前記端数処理部により端数処理が施された幾何要素データをCADデータに変換する変換部と、
前記変換部により変換されたCADデータを出力する出力部と、を備えるリバースエンジニアリング支援装置。
【請求項2】
前記端数処理部による端数処理前の幾何要素データを一次幾何要素データとして記憶する記憶部をさらに備え、
前記端数処理部は、前記記憶部に記憶された一次幾何要素データを端数処理して二次幾何要素データを生成することを特徴とする請求項1に記載のリバースエンジニアリング支援装置。
【請求項3】
前記端数処理前の一次幾何要素データをCADデータに変換した一次CADデータを生成する第1変換モード、及び、前記端数処理後の二次幾何要素データをCADデータに変換した二次CADデータを生成する第2変換モードとのうち、CADデータへの変換を実行する変換モードの選択を受け付ける受付部をさらに備え、
前記変換部は、前記受付部で受け付けた変換モードに基づいてCADデータへの変換を実行する請求項2に記載のリバースエンジニアリング支援装置。
【請求項4】
前記端数処理部は、ワーク測定時の有効桁数である第1有効桁数よりも粗い処理有効桁数で前記端数処理を実行する請求項1に記載のリバースエンジニアリング支援装置。
【請求項5】
前記メッシュデータによる三次元形状を表示部に表示させる表示制御部をさらに備え、
前記表示制御部は、前記表示部の有効桁数である第2有効桁数の表示分解能で前記三次元形状を前記表示部に表示させ、
前記端数処理部は、前記第2有効桁数よりも粗い処理有効桁数で前記端数処理を実行する請求項1に記載のリバースエンジニアリング支援装置。
【請求項6】
前記受付部は、前記ワークに対応する設計値と公差の入力を受け付け、
前記端数処理部は、前記一次幾何要素データと前記設計値との差分値が前記公差よりも大きいか否かに基づいて前記端数処理を実行するか否かを判定し、
前記変換部は、前記判定により、前記一次幾何要素データと前記設計値との差分値が前記公差よりも大きいと判定された場合は、前記第1変換モードで前記一次幾何要素データを前記一次CADデータに変換し、前記一次幾何要素データと前記設計値との差分値が前記公差よりも小さいと判定された場合は、前記第2変換モードで前記二次幾何要素データを前記二次CADデータに変換する請求項3に記載のリバースエンジニアリング支援装置。
【請求項7】
前記受付部は、前記ワークに対応する設計値と公差の入力を受け付け、
前記端数処理部は、前記一次幾何要素データと前記設計値との差分値が前記公差よりも大きいか否かに基づいて前記端数処理を実行するか否かを判定し、
前記変換部は、前記端数処理部により、前記一次幾何要素データと前記設計値との差分値が前記公差よりも小さいと判定された場合は、前記第1変換モードで前記一次幾何要素データを前記一次CADデータに変換し、前記一次幾何要素データと前記設計値との差分値が前記公差よりも大きいと判定された場合は、前記第2変換モードで前記二次幾何要素データを前記二次CADデータに変換する請求項3に記載のリバースエンジニアリング支援装置。
【請求項8】
前記受付部は、前記幾何要素データに対応する許容度の入力を受け付け、
前記抽出部は、前記メッシュデータから複数の幾何要素データを抽出し、
前記端数処理部は、前記二次幾何要素データの前記座標値または寸法値と、前記一次幾何要素データの前記座標値または寸法値との差分が前記許容度よりも大きいか否かを前記複数の幾何要素データの各々について判定し、
前記変換部は、前記端数処理部により、前記差分が前記許容度よりも大きいと判定された一次幾何要素データを、前記第1変換モードで前記一次CADデータに変換し、前記差分が前記許容度よりも小さいと判定された二次幾何要素データを、前記第2変換モードで前記二次CADデータに変換する請求項3に記載のリバースエンジニアリング支援装置。
【請求項9】
前記受付部は、前記幾何要素データに対応する許容度の入力を受け付け、
前記抽出部は、前記メッシュデータから複数の幾何要素データを抽出し、
前記端数処理部は、前記二次幾何要素データの前記座標値または寸法値と、前記一次幾何要素データの前記座標値または寸法値との差分が前記許容度よりも大きいか否かを前記複数の幾何要素データの各々について判定し、
前記変換部は、前記端数処理部により、前記差分が前記許容度よりも小さいと判定された一次幾何要素データを、前記第1変換モードで前記一次CADデータに変換し、前記差分が前記許容度よりも大きいと判定された二次幾何要素データを、前記第2変換モードで前記二次CADデータに変換する請求項3に記載のリバースエンジニアリング支援装置。
【請求項10】
前記記憶部は、複数種類の幾何要素データと、前記複数種類の幾何要素データの座標値及び寸法値に対して端数処理を施すか否かの情報と、を関連付けた参照テーブルを記憶し、
前記端数処理部は、前記記憶部に記憶された参照テーブルに基づいて、端数処理を施す対象を特定し、当該特定した対象に対応する座標値及び寸法値の少なくとも一方を取得し、端数処理を施す請求項2に記載のリバースエンジニアリング支援装置。
【請求項11】
前記参照テーブルの情報を設定するための設定部をさらに備え、
前記設定部による前記参照テーブルの情報の設定に応じて、前記参照テーブルの情報を更新する請求項10に記載のリバースエンジニアリング支援装置。
【請求項12】
前記抽出部は、前記メッシュデータから複数の幾何要素データを抽出し、
前記記憶部は、前記抽出部により抽出された複数の前記幾何要素データと、前記端数処理の基準値と、が幾何要素データ毎に関連付けられた処理設定テーブルを記憶し、
前記端数処理部は、前記記憶部に記憶された処理設定テーブルを参照し、前記端数処理を実行する幾何要素データに対応する基準値を取得し、当該取得した基準値に基づいて前記座標値及び寸法値の少なくとも一方に対して前記端数処理を実行する請求項2に記載のリバースエンジニアリング支援装置。
【請求項13】
前記処理設定テーブルは、前記幾何要素データ毎に、前記端数処理の実行の有無を判定する実行判定値を有し、
前記端数処理部は、前記処理設定テーブルの実行判定値に基づいて前記端数処理を実行するか否かを判定し、当該判定により端数処理を実行すると判定された幾何要素データについて、前記端数処理を実行する請求項12に記載のリバースエンジニアリング支援装置。
【請求項14】
前記変換部は、前記実行判定値により前記端数処理を実行すると判定された幾何要素データについて、前記端数処理が実行された二次幾何要素データを前記二次CADデータに変換し、前記実行判定値により前記端数処理を実行しないと判定された幾何要素データについて、前記一次幾何要素データを前記一次CADデータに変換し、
前記出力部は、前記一次CADデータと前記二次CADデータとがアッセンブリ化されたCADデータを出力する請求項13に記載のリバースエンジニアリング支援装置。
【請求項15】
前記変換部は、少なくとも1つの一次幾何要素データを前記一次CADデータに変換するとともに、少なくとも1つの二次幾何要素データを前記二次CADデータに変換し、
前記出力部は、前記一次CADデータと前記二次CADデータとがアッセンブリ化されたCADデータを出力する請求項2に記載のリバースエンジニアリング支援装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元形状を計測したデータからCAD図面を作成するリバースエンジニアリングを支援するリバースエンジニアリング支援装置に関する。
【背景技術】
【0002】
従来の三次元測定装置は特許文献1に開示される。この三次元形状測定器は立体をスキャンして得られた点群から多数のポリゴンから成るメッシュデータを作成する。
【0003】
また、メッシュデータから平面、円筒、直方体等の幾何要素を抽出してCADデータに変換することにより、リバースエンジニアリングを容易に行うことができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017-227611号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、リバースエンジニアリングを行う際にメッシュデータから抽出される幾何要素の座標値、寸法値などの特徴値の分解能は、測定装置の分解能に基づいている。そのため、抽出された幾何要素の座標値、寸法値などの特徴値とユーザの設計意図とでは相違が生じ、抽出された幾何要素をCADデータに変換しても、ユーザの意図通りのCADデータが得られない。
【0006】
本発明は、メッシュデータから抽出された幾何要素に対して設計意図を反映してCADデータに変換できるリバースエンジニアリング支援装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために本発明のリバースエンジニアリング支援装置は、ワークの立体形状を測定することで得られるメッシュデータをCADデータに変換して出力するリバースエンジニアリング支援装置である。リバースエンジニアリング支援装置は、メッシュデータを取得するデータ取得部と、前記メッシュデータから幾何要素データを抽出する抽出部と、前記抽出部により抽出された前記幾何要素データの座標値又は寸法値に対して端数処理を施す端数処理部と、前記端数処理部により端数処理が施された幾何要素データをCADデータに変換する変換部と、前記変換部により変換されたCADデータを出力する出力部と、を備える。
【0008】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記端数処理部による端数処理前の幾何要素データを一次幾何要素データとして記憶する記憶部をさらに備え、前記端数処理部は、前記記憶部に記憶された一次幾何要素データを端数処理して二次幾何要素データを生成する。
【0009】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記端数処理前の一次幾何要素データをCADデータに変換した一次CADデータを生成する第1変換モード、及び、前記端数処理後の二次幾何要素データをCADデータに変換した二次CADデータを生成する第2変換モードとのうち、CADデータへの変換を実行する変換モードの選択を受け付ける受付部をさらに備え、前記変換部は、前記受付部で受け付けた変換モードに基づいてCADデータへの変換を実行する。
【0010】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記端数処理部は、ワーク測定時の有効桁数である第1有効桁数よりも粗い処理有効桁数で前記端数処理を実行する。
【0011】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記メッシュデータによる三次元形状を表示部に表示させる表示制御部をさらに備える。前記表示制御部は、前記表示部の有効桁数である第2有効桁数の表示分解能で前記三次元形状を前記表示部に表示させる。前記端数処理部は、前記第2有効桁数よりも粗い処理有効桁数で前記端数処理を実行する。
【0012】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記受付部は、前記ワークに対応する設計値と公差の入力を受け付ける。前記端数処理部は、前記一次幾何要素データと前記設計値との差分値が前記公差よりも大きいか否かに基づいて前記端数処理を実行するか否かを判定する。前記変換部は、前記判定により、前記一次幾何要素データと前記設計値との差分値が前記公差よりも大きいと判定された場合は、前記第1変換モードで前記一次幾何要素データを前記一次CADデータに変換し、前記一次幾何要素データと前記設計値との差分値が前記公差よりも小さいと判定された場合は、前記第2変換モードで前記二次幾何要素データを前記二次CADデータに変換する。
【0013】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記受付部は、前記ワークに対応する設計値と公差の入力を受け付ける。前記端数処理部は、前記一次幾何要素データと前記設計値との差分値が前記公差よりも大きいか否かに基づいて前記端数処理を実行するか否かを判定する。前記変換部は、前記端数処理部により、前記一次幾何要素データと前記設計値との差分値が前記公差よりも小さいと判定された場合は、前記第1変換モードで前記一次幾何要素データを前記一次CADデータに変換し、前記一次幾何要素データと前記設計値との差分値が前記公差よりも大きいと判定された場合は、前記第2変換モードで前記二次幾何要素データを前記二次CADデータに変換する。
【0014】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記受付部は、前記幾何要素データに対応する許容度の入力を受け付ける。前記抽出部は、前記メッシュデータから複数の幾何要素データを抽出する。前記端数処理部は、前記二次幾何要素データの前記座標値または寸法値と、前記一次幾何要素データの前記座標値または寸法値との差分が前記許容度よりも大きいか否かを前記複数の幾何要素データの各々について判定する。前記変換部は、前記端数処理部により、前記差分が前記許容度よりも大きいと判定された一次幾何要素データを、前記第1変換モードで前記一次CADデータに変換し、前記差分が前記許容度よりも小さいと判定された二次幾何要素データを、前記第2変換モードで前記二次CADデータに変換する。
【0015】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記受付部は、前記幾何要素データに対応する許容度の入力を受け付ける。前記抽出部は、前記メッシュデータから複数の幾何要素データを抽出する。前記端数処理部は、前記二次幾何要素データの前記座標値または寸法値と、前記一次幾何要素データの前記座標値または寸法値との差分が前記許容度よりも大きいか否かを前記複数の幾何要素データの各々について判定する。前記変換部は、前記端数処理部により、前記差分が前記許容度よりも小さいと判定された一次幾何要素データを、前記第1変換モードで前記一次CADデータに変換し、前記差分が前記許容度よりも大きいと判定された二次幾何要素データを、前記第2変換モードで前記二次CADデータに変換する。
【0016】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記記憶部は、複数種類の幾何要素データと、前記複数種類の幾何要素データの座標値及び寸法値に対して端数処理を施すか否かの情報と、を関連付けた参照テーブルを記憶し、前記端数処理部は、前記記憶部に記憶された参照テーブルに基づいて、端数処理を施す対象を特定し、当該特定した対象に対応する座標値及び寸法値の少なくとも一方を取得し、端数処理を施す。
【0017】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記参照テーブルの情報を設定するための設定部をさらに備える。前記設定部による前記参照テーブルの情報の設定に応じて、前記参照テーブルの情報を更新する。
【0018】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記抽出部は、前記メッシュデータから複数の幾何要素データを抽出する。前記記憶部は、前記抽出部により抽出された複数の前記幾何要素データと、前記端数処理の基準値と、が幾何要素データ毎に関連付けられた処理設定テーブルを記憶する。前記端数処理部は、前記記憶部に記憶された処理設定テーブルを参照し、前記端数処理を実行する幾何要素データに対応する基準値を取得し、当該取得した基準値に基づいて前記座標値及び寸法値の少なくとも一方に対して前記端数処理を実行する。
【0019】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記処理設定テーブルは、前記幾何要素データ毎に、前記端数処理の実行の有無を判定する実行判定値を有する。前記端数処理部は、前記処理設定テーブルの実行判定値に基づいて前記端数処理を実行するか否かを判定し、当該判定により端数処理を実行すると判定された幾何要素データについて、前記端数処理を実行する。
【0020】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記変換部は、前記実行判定値により前記端数処理を実行すると判定された幾何要素データについて、前記端数処理が実行された二次幾何要素データを前記二次CADデータに変換する。前記実行判定値により前記端数処理を実行しないと判定された幾何要素データについて、前記一次幾何要素データを前記一次CADデータに変換する。前記出力部は、前記一次CADデータと前記二次CADデータとがアッセンブリ化されたCADデータを出力する。
【0021】
また本発明は上記構成のリバースエンジニアリング支援装置において、前記変換部は、少なくとも1つの一次幾何要素データを前記一次CADデータに変換するとともに、少なくとも1つの二次幾何要素データを前記二次CADデータに変換する。前記出力部は、前記一次CADデータと前記二次CADデータとがアッセンブリ化されたCADデータを出力する。
【発明の効果】
【0022】
本発明によると、メッシュデータから抽出された幾何要素に対して設計意図を反映してCADデータに変換できる。
【図面の簡単な説明】
【0023】
図1】一実施形態の三次元測定装置の一構成例を示したシステム図である。
図2】三次元測定装置に含まれるリバースエンジニアリング支援装置の構成を示すブロック図である。
図3】一例の基本形状及び特徴値を示す基本形状一覧表である。
図4】三次元測定装置の動作の一例を示すフローチャートである。
図5】CADデータ作成処理の動作を示すフローチャートである。
図6】一次幾何要素データベースの一例の概略図である。
図7】二次幾何要素データベースの一例の概略図である。
図8】幾何要素データ抽出処理の動作を示すフローチャートである。
図9】三次元表示画面の一例の概略図である。
図10】選択画面の一例の概略図である。
図11】参照テーブルの一例を示す概略図である。
図12】処理設定テーブルの一例を示す概略図である。
図13】処理設定テーブル作成処理の動作を示すフローチャートである。
図14】表示部に表示される処理条件入力画面の一例を示す概略図である。
図15】三次元測定装置で測定した球体のメッシュデータである。
図16図15に示す球体の半径の分布を示す概略図である。
図17】端数処理を実行する端数処理の動作を示すフローチャートである。
図18】一例の一次幾何要素データの概略図である。
図19図18に示す幾何要素データを端数処理した二次幾何要素データの概略図である。
図20】端数処理の他の例の一部を示すフローチャートである。
図21】一例の一次幾何要素データの概略図である。
図22図21に示す幾何要素の幾何要素データを端数処理した二次幾何要素データの概略図である。
図23】端数処理の他の例の一部を示すフローチャートである。
【発明を実施するための形態】
【0024】
<三次元測定装置1>
以下に図面を参照して本発明の実施形態を説明する。図1は一実施形態の三次元測定装置1の一構成例を示したシステム図である。詳細を後述するように、三次元測定装置1はワークWの立体形状を測定してメッシュデータ取得する。そして、リバースエンジニアリング支援装置7は、三次元測定装置1で取得されたメッシュデータをCADデータに変換して出力する。これにより、ワークWのリバースエンジニアリングを行うことができる。
【0025】
三次元測定装置1は、ワークWの形状を光学的に測定する測定器であり、測定部2、コントローラ4及び情報処理端末5により構成される。
【0026】
<測定部2>
測定部2は、ステージ21、回転駆動部22、撮像部23、投光部24、テクスチャ照明出射部25及び制御基板26により構成される。測定部2は、ステージ21上のワークWに可視光からなる検出光を照射し、ワークWにより反射された検出光を受光して撮影画像を生成する。
【0027】
ステージ21は、ワークWを載置するための水平かつ平坦な載置面を有する作業台である。このステージ21は、円板状のステージプレート211と、ステージプレート211を支持するステージベース212とにより構成される。
【0028】
回転駆動部22は、ステージ21上のワークWに対する撮像アングルを調整するために、鉛直方向の回転軸を中心としてステージ21を回転させる。
【0029】
撮像部23は、ステージ21上のワークWを撮影する固定倍率のカメラであり、受光レンズ231及び撮像素子232により構成される。撮像素子232は、受光レンズ231を介してワークWからの光を受光し、撮影画像を生成する。撮像素子232には、例えば、CCD(Charge Coupled Devices:電荷結合素子)、CMOS(Complementary Metal Oxide Semiconductor:相補型金属酸化物半導体)などのイメージセンサが用いられる。この撮像素子232は、例えば、モノクロイメージセンサである。尚、撮像部23の倍率は必ずしも固定倍率である必要はなく、可変倍率のカメラであってもよい。
【0030】
投光部24は、ステージ21上のワークWに測定光を照射する照明装置であり、投光用光源241、コレクタレンズ242、パターン生成ユニット243及び投光レンズ244により構成される。投光用光源241には、例えば、単色の光を生成するLED(発光ダイオード)又はハロゲンランプが用いられる。色収差補正等が容易であることから、投光用光源241として、白色光源を用いる場合に比べ、単色の投光用光源241を用いる方が有利である。また、波長は短い方が三次元形状データの解像度を上げるのに有利であることから、青色の光源、例えば、青色LEDを投光用光源241として用いることが好ましい。ただし、撮像素子232が良好なS/Nで受光することができる波長が選択される。
【0031】
投光用光源241から出射された検出光は、コレクタレンズ242を介してパターン生成ユニット243に入射する。そして、パターン生成ユニット243から出射された検出光は、投光レンズ244を介してステージ21上のワークWに照射される。
【0032】
パターン生成ユニット243は、構造化照明用のパターン光を生成するための装置であり、均一な検出光と、二次元パターンからなる検出光とを切り替えることができる。パターン生成ユニット243は、例えば、DMD(Digital Micromirror Device)又は液晶パネルが用いられる。DMDは、多数の微小なミラーが2次元状に整列配置され、各ミラーの傾きを制御することにより、画素ごとに明状態と暗状態とを切り替えることができる表示素子である。
【0033】
三角測距の原理を利用してワークWの立体形状を測定するための構造化照明法には、正弦波位相シフト法、マルチスリット法、空間コード法等がある。正弦波位相シフト法は、ワークWに正弦波状の縞パターンを投影し、正弦波の周期よりも短いピッチで縞パターンを移動させるごとに撮影画像を取得する照明法である。各撮影画像の輝度値から各画素における位相値を求めて高さ情報に変換することにより、ワークWの立体形状を表す点群( ポイントクラウド) データが生成される。そして、所定のアルゴリズムを用いて、点群データの複数の点群を結んだ多角形の平面(ポリゴン)を組み合わせたメッシュデータを生成する。以下の説明において、三次元形状データには、点群データ、メッシュデータを含むものとする。
【0034】
マルチスリット法は、ワークWに細線状の縞パターンを投影し、縞と縞との間隔よりも狭いピッチで縞パターンを移動させるごとに撮影画像を取得する照明法である。各撮影画像の輝度値から各画素における最大輝度の撮影タイミングを求めて高さ情報に変換することにより、三次元形状データが求められる。
【0035】
空間コード法は、白黒のデューティ比が50%であり、縞パターンの幅が異なる複数の縞パターンをワークWに対して順次投影し、撮影画像を取得する照明法である。各撮影画像の輝度値から各画素におけるコード値を求めて高さ情報に変換することにより、三次元形状データが求められる。
【0036】
パターン生成ユニット243では、上述した縞パターンを二次元パターンとして生成することができる。本実施形態の三次元測定装置1では、マルチスリット法と空間コード法とを組み合わせることにより、高分解能かつ高精度に三次元形状データが取得される。
【0037】
また、撮像部23を挟んで2つの投光部24が左右対称に配置されている。各投光部24の投光軸J2及びJ3は、三角測距の原理を利用するために撮像部23の受光軸J1に対して傾斜している。この投光部24では、投光用光源241、コレクタレンズ242及びパターン生成ユニット243の光軸に対し、投光レンズ244を受光軸J1側にオフセットさせることにより、投光軸J2及びJ3を傾斜させている。この様な構成を採用することにより、投光部24全体を傾斜させる場合に比べ、測定部2を小型化することができる。
【0038】
テクスチャ照明出射部25は、ワークWの色、模様等を表面テクスチャ情報として検知するため、可視光からなる均一な照明光をステージ21上のワークWに向けて出射する。このテクスチャ照明出射部25は、投光軸が撮像部23の受光軸J1と略平行であり、撮像部23の受光レンズ231を取り囲むように配置される。このため、投光部24からの照明と比べてワークW上での影ができにくく、撮影時の死角が少なくなる。
【0039】
制御基板26は、回転駆動部22を制御する制御回路、投光部24の投光用光源241及びパターン生成ユニット243を駆動する駆動回路、撮像部23の撮像素子232からの検出信号を処理する処理回路等が設けられた回路基板である。すなわち、制御基板26は、測定部2の各部を制御するとともに、撮像部23で検出された検出信号を処理する。
【0040】
コントローラ4は測定部2の制御装置であり、テクスチャ光源41と、制御基板42と、電源43とにより構成される。テクスチャ光源41はテクスチャ照明用の照明光を生成する。制御基板42はテクスチャ光源41用の駆動回路等が設けられる。電源43は測定部2内の各デバイスに電力を供給する。
【0041】
テクスチャ光源41は、撮影画像からカラーのテクスチャ画像が得られるようにするために、例えば、R(赤)、G(緑)、B(青)の各色の照明光を順次に点灯する。撮像素子232がモノクロイメージセンサであると、テクスチャ光源41に白色光源を用いてテクスチャ情報を取得する場合にカラー情報を取得することができない。このため、テクスチャ光源41ではRGBを切り替えて照明している。
【0042】
情報処理端末5は、測定部2を制御し、撮影画像の画面表示、寸法測定のための設定情報の登録、三次元形状データの生成、ワークWの寸法算出等を行う端末装置である。
【0043】
情報処理端末5は表示部51、キーボード52、マウス53、記憶部54(図2参照)、CPU55(図2参照)及び三次元データ生成部56(図2参照)と、を有する。CPU55は、与えられた信号やデータを処理して各種の演算を行い、演算結果を出力する制御回路や制御素子である。本明細書においてCPU55は、演算を行う素子や回路を意味し、その名称に限定するものではない。CPU55とは、例えば、汎用PC向けのCPUやMPU、GPU、TPU等のプロセッサに限定するものでなく、FPGA、ASIC、LSI等のプロセッサやマイコン、あるいはSoC等のチップセットを含む概念である。
【0044】
記憶部54は、ROM、RAM等の半導体メモリー、フラッシュメモリー等の可搬性を有する半導体メモリー及びハードディスク等の記憶媒体を含む又は記憶媒体が接続される回路である。記憶部54は、動作プログラム、設定情報、三次元形状のメッシュデータ等を記憶する。また、記憶部54には、参照テーブルTb1、処理設定テーブルTb3等のデータテーブルが格納される。
【0045】
表示部51は、例えば、液晶パネル、有機ELパネル等のディスプレイパネルを有し、撮像画像、メッシュ画像、設定情報等を画面に表示するモニタ装置である。キーボード52及びマウス53は、ユーザが操作入力を行う入力装置である。なお、操作入力装置としては、表示部51に表示されている画像に接触することで入力を行う、いわゆる、タッチパネル装置を採用してもよい。この情報処理端末5は、例えば、パーソナルコンピュータであり、測定部2の制御基板26に接続され、制御基板26からの撮像データを取得する。
【0046】
三次元データ生成部56は、CPU55で動作するプログラムであってもよい。この場合、三次元データ生成部56のプログラムは記憶部54に記憶される。つまり、情報処理端末5において、CPU55は、三次元データ生成部56の機能を実現する。三次元データ生成部56は、三次元空間における複数の測定点の位置情報を測定し、ワークWの三次元形状を表す点群データを生成する。なお、点群データは、例えば、測定部2の撮像部23から取得した撮影画像に基づいて生成される。そして、点群データにおいて所定のアルゴリズムによって決定された複数の点群を頂点とする多角形(ポリゴン)で表面を敷き詰めたメッシュデータを生成する。
【0047】
三次元データ生成部56で生成されたメッシュデータは、記憶部54に記憶される。なお、撮像データ及び点群データも記憶部54に記憶してもよい。このとき、撮像データ及び点群データは、メッシュデータと関連付けて記憶されてもよい。三次元データ生成部56は、CPU55と独立した電気回路であってもよい。
【0048】
<リバースエンジニアリング支援装置7>
図2は、三次元測定装置1に含まれるリバースエンジニアリング支援装置7の構成を示すブロック図である。リバースエンジニアリング支援装置7は、情報処理端末5により構成され、各部を制御するCPU55を備えている。CPU55には、キーボード52、マウス53、記憶部54が接続される。また、CPU55には、表示制御部75を介して表示部51が接続され、制御基板26を介して撮像部23が接続される。
【0049】
図2に示すように、リバースエンジニアリング支援装置7は、データ取得部71と、受付部72と、抽出部73と、端数処理部74と、表示制御部75と、判定部76と、変換部77と、出力部78と、を有する。受付部72、抽出部73、端数処理部74、表示制御部75、判定部76、変換部77及び出力部78はリバースエンジニアリング支援装置7の動作プログラムを実行して機能するソフトウェアであってもよく、CPU55により実現されてもよい。
【0050】
データ取得部71は、測定部2により測定されたワークWのメッシュデータ(ポリゴンデータ)を取得する。リバースエンジニアリング支援装置7では、データ取得部71で取得したメッシュデータは、記憶部54に保存される。また、データ取得部71は、取得したメッシュデータを抽出部73及び表示制御部75に受け渡す。本実施形態において、データ取得部71は、測定部2からメッシュデータを取得する構成を示しているが、これに限定されない。データ取得部71は、記憶部54に記憶された三次元データ(メッシュデータ)を読み出し、抽出部73及び表示制御部75に受け渡す場合もある。さらには、別途、測定されて、サーバ、クラウド等の外部ストレージに記憶されたメッシュデータを、取得する構成であってもよい。
【0051】
受付部72は、表示部51に表示されている幾何要素候補からユーザによる選択を受け付ける。また、抽出された幾何要素のデータである幾何要素データの特徴値に対する端数処理を行うときの条件の入力を受け付ける。ユーザによる選択及び入力の受付は、キーボード52又はマウス53によるユーザ操作に基づいて実行される。なお、特徴値とは、幾何要素を特定するために必要なデータである。例えば、幾何要素が楕円の場合、中心座標、始点座標、長半径、短半径のデータによって特定される(図3参照)。つまり、特徴値は、幾何要素を特定するための座標値、寸法値等の数値である。
【0052】
端数処理の条件として、幾何要素の端数処理を実行する端数処理対象の選択、端数処理時の基準となる座標系(例えば、三次元測定装置1の座標系)、端数処理を行うときの基準値、許容度を挙げることができる。より具体的には、受付部72は、幾何要素の端数処理対象(座標値、長さや半径の寸法値等)に対する端数処理の実行の有無の入力、基準値、許容度の入力を受け付けることができる。また、これ以外の入力を受け付けることも可能である。
【0053】
抽出部73は、メッシュデータから幾何要素データを抽出する。ここで、幾何要素データとは、例えば、二次元形状である「点」、「直線」及び「楕円」、三次元形状である「円筒」、「球」、等のデータであり、換言すると、基本形状に対応するデータである。基本形状は、座標値や寸法値(特徴値)により形状が特定される。図3に示す基本形状は、例示であり、これらに限定されるものではない。記憶部54には、図3に示す基本形状以外の形状及びその特徴値が基本形状として記憶されていてもよい。
【0054】
ここで、基本形状について説明する。図3は、一例の基本形状及び特徴値を示す基本形状一覧表である。基本形状一覧表Tb0は、記憶部54に記憶された基本形状の形状名及びその特徴値を示している。基本形状は、抽出部73がメッシュデータから抽出する対象となる形状である。
【0055】
基本形状一覧表Tb0は、形状名欄T01と、第1特徴欄T02と、第2特徴欄T03と、第3特徴欄T04と、第4特徴欄T05と、イメージ欄T06と、を有する。
【0056】
形状名欄T01は、基本形状の一般的な形状名が示される。上述した基本形状の形状名が、形状名欄T01に表示される形状名に対応する。第1特徴欄T02は、基本形状を特定するために必要な点の特徴値としての座標値である「座標」を明示するデータを示している。例えば、基本形状が円筒の場合、軸方向の両端の円形の中心の座標が最低限必要であることを示している。なお、各基本形状の座標については、イメージ欄T06の概略図に示すとおりである。
【0057】
第2特徴欄T03は、特徴値としての寸法値である「長さ」を明示するデータを示している。なお、基本形状の寸法である「長さ」は、始点と終点とで規定される冗長情報であるため、始点と長さの組み合わせや、終点と長さの組み合わせ等の形式で座標値と併用してもよい。また、座標だけで形状を特定できる場合には、「長さ」を明示するデータは省略され、第2特徴欄T03上に「-」で示されてもよい。第3特徴欄T04は、円に関連する形状に設定される特徴値としての寸法値である「半径」である。イメージ欄T06には、各基本形状における特徴値を示す模式図を示している。
【0058】
抽出部73は、メッシュデータにおいて、基本形状及びその類似の形状とフィットする部分を検索する。そして、抽出部73は、ユーザにより指定されたメッシュデータ上の位置と、基本形状の種別とに基づいて、基本形状と類似する部分を幾何要素候補と特定する。そして、抽出部73は、特定された幾何要素候補のデータを基本形状にフィットさせた幾何要素データを抽出する。すなわち、ここで抽出される幾何要素データは、メッシュデータから抽出された基本形状のデータである。メッシュデータに基本形状と同一又は類似の形状をフィッティングさせるアルゴリズムは、従来から知られている統計的手法を利用することができる。例えば、抽出部73は、メッシュデータを構成する測定点と基本形状との距離に基づく最小二乗法により、幾何要素候補の三次元位置、姿勢及びサイズを特定する。
【0059】
基本形状は、リバースエンジニアリング支援装置7に予め設定されている形状である。抽出部73は、基本形状にメッシュデータをフィッティングさせて幾何要素データを抽出する。上述のとおり、基本形状はそれぞれ異なる特徴値を有し、異なる形状である。そのため、幾何要素候補のデータを検索するためのアルゴリズムは、基本形状毎に設定されている。このことから、基本形状は、アルゴリズムとセットで追加可能である。基本形状の追加は、例えば、リバースエンジニアリング支援装置7の製造者から供給される場合を挙げることができる。また、ユーザがアルゴリズムのプログラムを入手又は作製できる場合、ユーザが独自に追加できるようになっていてもよい。なお、特徴値は、これらの数値に限定されず、幾何要素を特定するために必要な形状的特徴を示す数値を広く採用できる。
【0060】
端数処理部74は、抽出部73で抽出した幾何要素データの端数処理を実行する。端数処理の詳細については、後述する。
【0061】
表示制御部75は、記憶部54内の三次元形状データに基づいて、表示部51に表示する表示データを作成する。例えば、多数の測定点が三次元的に配置されたオブジェクト体を所定の視点から眺めるような三次元形状を表示部51の画面に表示するための表示データを作成する。画面内における三次元形状(ワークW)の位置、視点及び表示倍率は、任意に指定することができる。また、表示制御部75が、表示部51の表示分解能(解像度)を取得し、取得した表示分解能に応じて最適化された表示データを作成してもよい。なお、ワークWの三次元形状を表示する場合、表示制御部75は、メッシュデータをそのまま表示してもよいし、点群データ、メッシュデータ等三次元形状データにテクスチャ画像をマッピングして表示してもよい。
【0062】
判定部76は、受付部72により受け付けられた内容に基づいて、抽出された幾何要素データに対して端数処理を実行するか否か判定する。なお、ここでの判定は、端数処理前の一次幾何要素データと設計値との差に基づく判定、及び、端数処理後の二次幾何データの端数処理前の一次幾何データからの乖離に基づく判定を挙げることができる。この判定処理は、判定部76に代えて、上述の端数処理部74により実行されてもよい。
【0063】
変換部77は、端数処理部74で端数処理された幾何要素データである二次幾何要素データをCADデータに変換する。なお、変換部77は、端数処理前の一次幾何要素データをCADデータに変換することも可能である。すなわち、変換部77は、一次幾何要素データを一次CADデータに変換する第1変換モード及び二次幾何要素データを二次CADデータに変換する第2変換モードの2種の変換モードで、CADデータを生成することができる。出力部78は、変換部77で変換されたCADデータを出力する。
【0064】
測定制御部79は、制御基板26、42を介してステージ21、撮像部23、投光部24及びテクスチャ光源41を制御し、ワークWの撮影を行う。設定部70は、処理設定テーブルTb3等に対して処理を行うときの処理条件を設定する。なお、設定部70は、処理条件以外にもリバースエンジニアリング支援装置7の動作条件、計測条件等を設定するようにしてもよい。
【0065】
本実施形態においてリバースエンジニアリング支援装置7は、情報処理端末5のCPU55で動作するプログラムとしているが、これに限定されず、少なくとも一部は、専用の電気回路であってもよい。また、リバースエンジニアリング支援装置7が、情報処理端末5から独立して設けられてもよい。この場合においても、少なくとも一部がプログラムであってもよいし、少なくとも一部が専用の電気回路であってもよい。
【0066】
図4は、三次元測定装置1の動作の一例を示すフローチャートである。三次元測定装置1が起動されると、ステップS101で測定制御部79の制御によりステージ21上に載置されたワークWを撮像部23が撮影する。表示制御部75は、撮像部23によりワークWを撮像することで得られた撮影画像を表示部51に表示させる。そして、受付部72は、投光照明の明るさの調整を受け付け、受け付けた投光照明の明るさの情報を制御基板26に送る。制御基板26は、受付部72からの投光照明の明るさの情報に基づいて、投光部24を制御する。
【0067】
ステップS102では、測定制御部79は、テクスチャ照明に切り替えて撮影画像を取得し、表示部51に表示してテクスチャ照明の明るさ調整を行う。この明るさ調整は、テクスチャ照明出射部25からR(赤)、G(緑)、B(青)の各色の照明光を順に或いは同時に照射して行われる。ステップS101とステップS102とは、順序を入れ替えてもよい。
【0068】
ステップS103では、受付部72がユーザによる測定開始の指示を受け付けたか否かを測定制御部79により判定する。受付部72がユーザによる測定開始の指示を受け付けるまで(ステップS103でNoの間)ステップS101、S102の処理手順を繰り返す。受付部72がユーザによる測定開始の指示を受け付けると(ステップS103でYes)、ステップS104に移行する。ステップS104では、投光部24がパターン光の投光を開始する。続くステップS105では、撮像部23がパターン画像を取得する。このパターン画像は、ステージ21上のワークWが撮影された撮影画像である。パターン光の投光及び撮影画像の取得は、パターン生成ユニット243と撮像部23とを同期させて行われる。
【0069】
ステップS106では、投光部24が、パターン光をテクスチャ照明出射部25からのテクスチャ照明に切り替える。続くステップS107では、撮像部23が、テクスチャ画像を取得する。このテクスチャ画像は、R(赤)、G(緑)、B(青)の各色の照明光を順に照射させて取得された複数の撮影画像を合成することによって得られる。
【0070】
ステップS108では、撮影が終了したか否かを測定制御部79により判定する。連結測定時において、測定制御部79は、制御基板26を介して撮像部23及び投光部24を制御し、ステージ21を予め指定された複数の撮像アングルに順次に切り替えながら、ステップS104からステップS107までの処理手順を繰り返す。撮影が終了すると(ステップS108でYes)、ステップS109に移行する。
【0071】
ステップS109では、三次元データ生成部56は、ステップS105において取得されたパターン画像に基づいて三次元形状のメッシュデータを生成し、記憶部54に記憶する。
【0072】
ステップS110では所望の測定箇所について三次元形状データが得られたか否かが三次元データ生成部56により判断される。所望のデータが得られていない場合(ステップS110でNoの場合)は撮像アングルや撮影条件等を変更しながらステップS101からステップS109までの処理手順を繰り返す。所望のデータが得られ(ステップS110でYes)、ユーザによるデータ解析の指示を受け付けると、ステップS111に移行する。
【0073】
ステップS111では、測定制御部79は、ステップS109で記憶されたメッシュデータにテクスチャ画像をマッピングする。ステップS112では、表示制御部75は、テクスチャ画像がマッピングされた三次元形状をワークWの三次元形状として表示部51に表示させる。
【0074】
続くステップS113では、三次元データ生成部56により、三次元形状データのデータ解析を行い、ワークWの寸法等の所望データを算出する。三次元データ生成部56は、算出されたデータをメッシュデータと関連付けて、記憶部54に記憶する。
【0075】
ステップS114では、三次元データ生成部56は、メッシュデータからCADデータを作成する指示を受付部72が受け付けたか否か判定する。CADデータを作成する指示がない場合(ステップS114でNoの場合)、三次元データ生成部56は、三次元測定装置1の動作を終了する。受付部72がCADデータを作成する指示を受け付けた場合(ステップS114でYesの場合)、ステップS115で変換部77等によって図5に示すCADデータ作成処理を行い、その後三次元測定装置1の動作を終了する。
【0076】
リバースエンジニアリング支援装置7では、要素同士の距離、要素同士の位置、ワークWにおける要素の位置、形状、ワークWに対する要素の大きさ、CAD変換する対象の要素等の要素(以下、基本計測要素とする)が選択される。そして、選択された基本計測要素は、記憶部54に一時的に記憶される。
【0077】
<CADデータ作成処理>
図5は、CADデータ作成処理の動作を示すフローチャートである。ステップS201では、データ取得部71により記憶部54からメッシュデータが読出される。ステップS202では、表示制御部75は、データ取得部71により取得されたメッシュデータに基づいてワークWの三次元形状を表示部51に表示するための表示データを生成する。そして、表示制御部75は、生成された表示データに基づいて、ワークWの三次元形状を表示部51に表示する(後述の図9の三次元表示画面61)。
【0078】
三次元形状が表示部51に表示された後、ステップS203に移行して、抽出部73により図9に示す幾何要素データを抽出する幾何要素抽出処理が実行される。このとき、抽出部73は抽出した幾何要素データを一次幾何要素データとして記憶部54に含まれる一次幾何要素データベースDb1に保存する。
【0079】
ステップS203で幾何要素データを抽出した後、ステップS204に移行する。ステップS204では、判定部76は、幾何要素データに対して端数処理を実行するか否かを判定する、なお、この判定処理は、判定部76に代えて端数処理部74により実行されてもよい。また、ステップS204において、一次幾何要素データベースDb1に格納されている全ての幾何要素データに対して端数処理を実行しない場合に端数処理を実行しないと判定できる。さらに説明すると、一次幾何要素データベースDb1に格納されている幾何要素データの一部に対して端数処理を実行する場合、判定部76は、端数処理を実行すると判定する。
【0080】
判定部76により、端数処理を実行すると判定された場合(ステップS204でYesの場合)、ステップS205に移行する。ステップS205では、設定部70は、図12に示す処理設定テーブルTb3を作成する処理設定テーブル作成処理を実行する。続くステップS206では、処理設定テーブルTb3を参照して図17に示す端数処理を実行する。なお、処理設定テーブル作成処理及び端数処理の詳細については、後述する。
【0081】
ステップS204において、判定部76によって端数処理を実行しないと判定された場合(ステップS204でNOの場合)又はステップS206で幾何要素データの端数処理が実行された後、ステップS207に移行する。ステップS207では、図2に示す変換部77が、ステップS203で抽出された一次幾何要素データ又はステップS206で端数処理が実行された二次幾何要素データをCADデータに変換する。
【0082】
ステップS207において、変換部77は、後述の二次幾何要素データベースDb2を参照して、二次幾何要素データが存在する場合に、二次幾何要素データのCAD変換を実行する。また、二次幾何要素データが存在しない一次幾何要素データのCAD変換を実行する。なお、一次幾何要素データを変換したCADデータを一次CADデータとし、二次幾何要素データを変換したCADデータを二次CADデータとする。また、変換部77が、一次CADデータを生成するCAD変換を第1CAD変換モードとし、変換部77が、二次CADデータを生成するCAD変換を第2CAD変換モードとする。
【0083】
続く、ステップS208では、図2に示す出力部78が、ステップS207で作成されたCADデータを出力するとともに、記憶部54に記憶させる。
【0084】
また、複数の幾何要素データが作成される場合、変換部77は、複数の幾何要素データをアッセンブリ化して一のCADデータに変換できる。そして、出力部78は、変換部77によってアッセンブリ化された一のCADデータを出力する。なお、複数の幾何要素データには、一次幾何要素データ及び二次幾何要素データが混在して含まれていてもよい。すなわち、変換部77は、一次幾何要素データ及び二次幾何要素データをアッセンブリ化した一のCADデータに変換し、出力部78により出力できる。
【0085】
抽出部73は、メッシュデータから一次幾何要素データを抽出し、抽出した一次幾何要素データを記憶部54の一次幾何要素データベースDb1に格納する。ここで一次幾何要素データベースDb1について、図面を参照して説明する。図6は、一次幾何要素データベースDb1の一例の概略図である。
【0086】
図6に示す一次幾何要素データベースDb1は、識別名欄D11、特徴点欄D12、座標欄D13、長さ欄D14及び半径欄D15を有する。識別名欄D11は、抽出された幾何要素データの識別名が格納される。図6に示す一次幾何要素データベースDb1では、例えば、識別名として、「円筒1」が格納されている。
【0087】
特徴点欄D12は、識別名に関連付けられた幾何要素データを特定するために必要な点の特徴値としての「座標」の位置を明示するデータである。「円筒1」において、特徴点欄D12には、「始点」及び「終点」が格納されている。特徴点欄D12は、図3に示す基本形状一覧表Tb0の第1特徴欄T02に格納されている情報である。
【0088】
座標欄D13には、特徴点欄D12に示された位置の座標値が格納される。なお、図6に示す一次幾何要素データベースDb1の座標欄D13には、(X座標値、Y座標値、Z座標値)が格納されている。例えば、一次幾何要素データベースDb1において、始点及び終点のそれぞれに、座標値が格納されている。
【0089】
長さ欄D14は、幾何要素データの特徴値のうち、「長さ」の寸法値が格納される。なお、幾何要素データによっては、特徴値としての「長さ」を持たない場合がある。この場合、当該幾何要素データに対応する長さ欄D14は「-」で示される。例えば、図6に示す一次幾何要素データベースDb1において、「円筒1」の場合、特徴値としての「長さ」を持たないため、長さ欄D14は、「-」である。
【0090】
半径欄D15は、幾何要素データの特徴値のうち、「半径」の寸法値が格納される。なお、幾何要素データによっては、特徴値としての「半径」を持たない場合がある。この場合、当該幾何要素データに対応する半径欄D15は「-」で示される。例えば、「円筒1」の場合、特徴値としての「半径」を持つため、半径欄D15には、特徴値である「半径」の寸法値が格納されている。
【0091】
図6に示す一次幾何要素データベースDb1には、抽出部73がメッシュデータから抽出した幾何要素データ及びその特徴値が格納される。
【0092】
また、端数処理部74が一次幾何要素データを端数処理することで生成された二次幾何要素データを記憶部54の二次幾何要素データベースDb2に格納される。図7は、二次幾何要素データベースDb2の一例の概略図である。なお、二次幾何要素データベースDb2の各欄は、一次幾何要素データベースDb1の各欄と同じである。そのため、二次幾何要素データベースDb2の詳細な説明は省略し、一次幾何要素データベースDb1の各欄との対応について説明する。
【0093】
識別名欄D21は識別名欄D11と対応する。特徴点欄D22は特徴点欄D12と対応する。座標欄D23、長さ欄D24及び半径欄D25は、それぞれ、座標欄D13、長さ欄D14及び半径欄D15と対応する。識別名欄D21及び特徴点欄D22は、識別名欄D11及び特徴点欄D22と同じ値が格納される。また、座標欄D23、長さ欄D24及び半径欄D25は、座標欄D13、長さ欄D14及び半径欄D15の各数値の端数処理後の値が格納される。
【0094】
<幾何要素データ抽出処理>
図8は、幾何要素データ抽出処理のフローチャートである。図8に示すように、ステップS301では、抽出部73は、ユーザにより指定されたメッシュデータ上の位置と、基本形状の種別とに基づいて、基本形状と類似する部分(幾何要素候補)を検索し、一の幾何要素候補を特定する。さらに詳しく説明すると、抽出部73は、基本形状毎に設定された幾何要素データを抽出するアルゴリズムを利用して、基本形状と類似する部分を幾何要素候補として特定する。ステップS301で幾何要素候補を特定した後、ステップS302に移行する。ステップS302では、抽出部73は、メッシュデータにおける特定された幾何要素候補のデータを基本形状にフィットさせることで一の幾何要素データを抽出する。ステップS302で幾何要素データを抽出した後、ステップS303に移行する。
【0095】
ステップS303では、抽出部73は、ステップS302で抽出した幾何要素データの特徴値を取得する。特徴値は、図3に示す基本形状一覧表Tb0に記載のとおり、幾何要素(基本形状)を特定するための座標値や寸法値などの数値である。幾何要素データの特徴値は、幾何要素データの識別名と関連付けられて記憶部54に基本計測要素の一部として記憶される。なお、幾何要素データの特徴値及び識別名の記憶は、一時的な記憶であってもよいし、例えば、ユーザによる削除指示がある(後述の図10に示す選択画面62でキャンセルキー629が操作されたことを受付部72が受け付ける)まで保存してもよい。
【0096】
ステップS304では、抽出部73は、全ての幾何要素データを抽出したか否か判定する。ここで、「全ての幾何要素データを抽出した」とは、メッシュデータにおいて、ユーザが抽出を望む(換言すると、CADデータへの変換を望む)幾何要素データを全て抽出したことを指す。そして、「全ての幾何要素データを抽出した」ことは、ユーザによって決定される。具体的には、選択画面511のOKキー628が操作されたことを受付部72が受け付けたとき、抽出部73は、抽出部73が全ての幾何要素データを抽出したと判定する。
【0097】
全ての幾何要素データの抽出が終了していない場合(ステップS304でNoの場合)、抽出部73は、ステップS301~ステップS303を繰り返して幾何要素データの抽出を継続する。また、全ての幾何要素データの抽出が終了した場合(ステップS304でYesの場合)、ステップS305において、抽出部73は、現在の記憶部54に記憶されている基本計測要素からCAD変換対象の要素、つまり、幾何要素データを抽出する。
【0098】
続くステップS306では、抽出部73は、抽出した全ての幾何要素データを記憶部54の一次幾何要素データベースDb1(図6参照)に格納する。そして、CPU55は、幾何要素データ抽出処理を終了し、図5に示すフローチャートのステップS204に戻る。
【0099】
次に、幾何要素データを抽出する際のユーザインターフェースである三次元表示画面61について、図9を参照して説明する。図9に示す三次元表示画面61は、ワークWの三次元表示において、計測の対象となる基本計測要素を選択又は抽出するときに用いられる。なお、「基本計測要素」には、本実施形態にかかる幾何要素データが含まれ、これ以外にも、位置の確認をするための要素、距離を計測するための要素等が含まれる。これらの要素は、基本計測要素の例示であり、これらに限定されるものではない。
【0100】
図9に示す三次元表示画面61は、ワーク表示領域611と、基本形状選択領域612と、計測要素表示領域613と、幾何要素データ表示領域614と、を有する。ワーク表示領域611は、ワークWの三次元形状データを表示する領域である。ワーク表示領域611には、メッシュデータ、点群データに基づくワークWの三次元形状データが表示される。
【0101】
また、ワーク表示領域611に表示される三次元形状データは、メッシュデータ及び点群データであってもよいし、テクスチャ画像がマッピングされたメッシュデータが表示されてもよい。テクスチャ画像がマッピングされたメッシュデータをワーク表示領域611に表示させることで、表示部51上でワークWの実際の見た目を再現することができる。これにより、例えば、凹凸、亀裂等のワークWの表面の状態をユーザが容易に視認できる。
【0102】
ワーク表示領域611では、ワークWの三次元形状データを回転させることができる。これにより、視点を変更し、角度を変えながらワークWを表示することができる。なお、ワークWの三次元形状の回転は、予め決められた視点に切り替えるようにしてもよいし、マウス53等の動きに合わせて回転するようにしてもよい。
【0103】
基本形状選択領域612には、基本形状を選択するための複数の形状選択キー615が配置される。複数の形状選択キー615は、それぞれ、図3に示す基本形状と関連付けられており、形状選択キー615の下には、形状名欄T01の形状名が表示される。なお、形状選択キー615には、基本形状を示すイメージ画像が表示されてもよい。
【0104】
図9において、複数の形状選択キー615は、例えば、二次元形状、三次元形状等の基本形状の特徴が類似しているものをまとめて配置している。しかしながら、基本形状選択領域612の形状選択キー615の配置は、この配置に限定されず、例えば、ユーザが配置を変更可能であってもよいし、使用頻度順に配置されてもよい。このような、基本形状選択領域612を有することで、ユーザによる基本形状の選択が容易になる。
【0105】
図9に示すように、計測要素表示領域613には、選択された又は抽出された基本計測要素が、ツリー表示される。基本計測要素は、ワークWにおける所定の数値を測定するための要素である。基本計測要素としては、例えば、距離又は角度を計測するための2つの平面、表面積又は体積を計測するための球等を含む。また、基本計測要素には、ワークWから抽出した幾何要素データも含まれる。
【0106】
本実施形態において、ワーク表示領域611に表示されたワークWから幾何要素データが抽出されると、抽出された幾何要素データは計測要素表示領域613の基本計測要素のツリー表示に追加される。
【0107】
計測要素表示領域613のツリー表示において、幾何要素データは、識別名が表示される。ここで、識別名は、例えば、「円筒1」のように、基本形状の形状名(図3の形状名欄T01と同じ形状名)に通し番号を付加したものである。しかしながら、識別名は、これに限定されない。例えば、ユーザが任意に変更可能であってもよいし、別途決められている部品名等を採用してもよい。計測要素表示領域613では、各データの左側に、チェックボックス616が配置されている。データが選択されると、チェックボックス616のチェック状態に応じて、計測要素表示領域613に表示される幾何要素データが切り替わってもよい。
【0108】
幾何要素データ表示領域614には、計測要素表示領域613で選択されている幾何要素データの識別名及び特徴値が表示される。
【0109】
三次元表示画面61には、画面内を移動可能なカーソル617が配置される。カーソル617は、ユーザによるマウス53の操作と連動して動作する。例えば、カーソル617を移動させて形状選択キー615と重ね、マウス53をクリックすることで、基本形状が選択される。選択された基本形状を明確にするために、選択された形状選択キー615の色を変えてもよいし、形状選択キー615の周囲を囲む形状を表示するようにしてもよい。
【0110】
受付部72がマウス53の操作によって形状選択キー615が選択されたことを受け付けると、CPU55は、抽出部73に選択された基本形状の情報を通知する。受付部72が、ワーク表示領域611に表示されているワークW上で、カーソル617の操作入力を受け付けると、抽出部73は、カーソル617に対応するメッシュデータを含み、基本形状と類似する部分を幾何要素候補とする。
【0111】
そして、抽出部73は、特定された幾何要素候補のデータに対して基本形状にフィットさせることで幾何要素データを抽出する。なお、三次元表示画面61では、メッシュデータの幾何要素候補の部分に着色して表示してもよい。着色して表示することで、ユーザが抽出する幾何要素データの形状を容易に認識できるとともに、幾何要素データのワークWのおける位置及び大きさ等を認識できる。抽出部73は、幾何要素データを抽出するとき、抽出する幾何要素データの特徴値を抽出する。抽出部73は、図3に示す基本形状一覧を参照して、抽出する幾何要素データの特徴値を決定し、特徴値を取得する。
【0112】
また、表示制御部75は、ワーク表示領域611に表示されているワークWの三次元形状データに重ねて幾何要素データを表示するための表示データを作成する。そして、表示制御部75は、ワーク表示領域611に幾何要素データの表示データをワークWの三次元形状の表示に重ねて表示してもよい。
【0113】
このように表示部51に表示されたワークWの三次元形状データから幾何要素データを抽出することで、ユーザは、直感的及び迅速に幾何要素データを抽出でき、ユーザの利便性を向上することができる。また、三次元表示画面61を用いることで、複数の幾何要素データを抽出することができる。
【0114】
抽出部73は、三次元表示画面61を表示している状態で、複数の幾何要素データを抽出することができる。そのため、三次元表示画面61には、完了キー618と、キャンセルキー619とを有する。完了キー618及びキャンセルキー619は、カーソル617によって操作される。カーソル617は、上述のとおり、受付部72がマウス53の操作を受け付けることで動作する。
【0115】
完了キー618は、幾何要素データの抽出を完了するときに操作される。完了キー618が操作されたとき、抽出部73は、抽出された幾何要素データを一次幾何要素データとして、記憶部54に記憶させる。このとき、抽出部73は、抽出した幾何要素データの特徴値を関連付けて基本計測要素の一部として記憶部54に記憶する。また、キャンセルキー619が操作されたとき、抽出部73によって抽出された幾何要素データは、リセットされ、記憶部54には記憶されない。
【0116】
変換部77は、抽出部73によって抽出された幾何形状データをCADデータに変換(以下、CAD変換と称する)する。上述のとおり、図9に示す三次元表示画面61において、計測要素表示領域613に表示されている基本計測要素には、CAD変換対象の幾何要素データ以外の要素も含まれる。変換部77は、基本計測要素から選択された幾何要素データのCAD変換を実行する。
【0117】
図10は、CAD変換を実行する幾何要素データを選択する選択画面62の一例の概略図である。図10に示す、選択画面62は、基本計測要素表示領域621と、CAD変換対象表示領域622と、第1の要素表示キー623と、第2の要素表示キー624と、有効桁数の指定を受け付けるか否かを選択する選択欄625と、単位入力部626と、有効桁数入力部627と、OKキー628と、キャンセルキー629と、を有する。
【0118】
基本計測要素表示領域621には、リバースエンジニアリング支援装置7で選択又は抽出された基本計測要素が一覧表示される。なお、基本計測要素表示領域621では、基本計測要素の識別名が形状毎にまとめて表示されているが、これに限定されず、別の並び順で表示されてもよい。また、本実施形態では、基本計測要素表示領域621には、抽出部73によって、抽出された幾何要素データのみ表示されるようにしてもよい。CAD変換対象表示領域622には、基本計測要素表示領域621からユーザによって選択された幾何要素データが表示される。CAD変換対象表示領域622では、選択された順に幾何要素データが表示されてもよい。
【0119】
選択画面62において、基本計測要素表示領域621及びCAD変換対象表示領域622に表示されている識別名をユーザが変更できるようにしてもよい。例えば、基本計測要素表示領域621では、上述の三次元表示画面61で採用している識別名を採用し、CAD変換対象に選ばれた幾何要素データの識別名をユーザが変更できるようにしてもよい。このとき、ユーザが変更した識別名の幾何要素データがCAD変換対象表示領域622から削除されるとき、幾何要素データは基本計測要素表示領域621に、変更後の識別名で表示されてもよいし、元の識別名で表示されてもよい。
【0120】
なお、基本計測要素表示領域621と、CAD変換対象表示領域622の間には、追加キー6201と、削除キー6202と、が配置される。追加キー6201(CAD変換対象表示領域622に向かう矢印)は、基本計測要素表示領域621に表示されている幾何要素データから選択された幾何要素データを、CAD変換対象表示領域622に追加するときに操作される。また、削除キー6202(基本計測要素表示領域621に向かう矢印)は、CAD変換対象表示領域622に表示されている幾何要素データから選択された幾何要素データを、CAD変換対象表示領域622から削除するときに操作される。
【0121】
第1の要素表示キー623には、CAD変換候補としての幾何要素データを表示部51に表示する指示が入力される。例えば、基本計測要素表示領域621に表示された複数の幾何要素から一の幾何要素の選択を受付部72が受け付けるとともに、第1の要素表示キー623の操作入力を受付部72が受け付けることで、表示制御部75は、三次元表示画面61のワーク表示領域611に選ばれた幾何要素データを、ワークWの三次元的な立体表示に重ねて表示する。第2の要素表示キー624は、第1の要素表示キー623と同様の機能を有し、CAD変換対象表示領域622に表示されている幾何要素データを表示部51に表示する指示を受け付ける。
【0122】
CAD変換候補としての幾何要素とCAD変換対象としての幾何要素とを1つの三次元形状に重ねて表示することが可能である。この場合、CAD変換候補の幾何要素データとCAD変換対象の幾何要素データとを区別するため、異なる色で着色してもよいし、異なる形状で囲むようにしてもよいし、CAD変換候補の幾何要素データ又はCAD変換対象の幾何要素データであることを示す表示を行うようにしてもよい。CAD変換候補の幾何要素データとCAD変換対象の幾何要素データとを明確に区別できる方法を広く採用することができる。なお、第1の要素表示キー623及び第2の要素表示キー624は、共通のキーであってもよい。
【0123】
選択欄625は、端数処理時に有効桁数の指定を受け付けるか否かを選択するための選択欄である。選択欄625には、チェックボックスが設けられており、チェックボックスがチェックされているときには、有効桁数入力部627に桁数を入力できるようになっている。また、単位入力部626には、単位の入力又は選択が可能である。なお、選択欄625にチェックされているときには、端数処理部74は、端数処理を実行すると判定する。
【0124】
ここで、有効桁数とは、メッシュデータで計測される測定値をCADデータに変換する際の小数点以下の最小桁数を指す。例えば、図10に示すように、小数点以下3桁で設定されているとき、CAD変換対象として選択された幾何要素データの特徴値が小数点以下3桁の数値となるように端数処理部74により端数処理された二次幾何要素データをCADデータに変換する。
【0125】
通常、物品を設計する場合、加工精度を考慮して最小単位が設定される。このような、最小単位としては、例えば、図10に示すように小数点以下の桁数や0.05ミリメートル等の最小分解能(基準値)で表現される。一方、リバースエンジニアリングを行い、設計図又は設計図で使用できる部品図を作成する場合、作成される部品図は、現物のワークWを測定することにより得られるため、所望の最小単位に合致するデータを得ることは難しい。そのため、リバースエンジニアリングを行い、CADデータを作成する際に端数処理を行うことで、設計意図を反映したCADデータを得ることができる。
【0126】
OKキー628は、選択画面62の上述した各種入力を成立させるためのキーである。キャンセルキー629は、選択画面62の上述した各種入力をすべて破棄させるためのキーである。受付部72が、OKキー628の操作を受け付けると、抽出部73は、CAD変換対象表示領域622に表示されている幾何要素データと、幾何要素データと関連付けられた特徴値とを、一次幾何要素データとして、一次幾何要素データベースDb1に記憶させる。
【0127】
なお、図8に示す幾何要素データ抽出処理において、抽出部73は、全ての幾何要素データの抽出が完了した後に、抽出した全ての幾何要素データ及びその特徴値をまとめて、一次幾何要素データベースDb1に記憶しているが、これに限定されない。例えば、抽出部73は、メッシュデータから幾何要素データを抽出するごとに、幾何要素データ及びその特徴値を一次幾何要素データベースDb1に記憶してもよい。図8に示す幾何要素データ抽出処理が完了したとき、記憶部54には、抽出された全ての幾何要素データ及び特徴値が格納された、一次幾何要素データベースDb1が記憶される。
【0128】
上述したとおり、端数処理部74は、参照テーブルTb1及び処理設定テーブルTb3を参照して、一次幾何要素データベースDb1に含まれる幾何要素データの端数処理を実行する。ここで、参照テーブルTb1及び処理設定テーブルTb3について、図面を参照して説明する。
【0129】
<参照テーブルTb1>
図11は、参照テーブルTb1の一例を示す概略図である。図11に示す参照テーブルTb1は、幾何要素データの座標や寸法等の特徴部分に対する端数処理の可否を示すテーブルである。図11に示すように、参照テーブルTb1は、形状名欄T11と、形状属性欄T12と、形状基準欄T13と、第1指示欄T14と、第2指示欄T15と、第3指示欄T16と、を有する。形状名欄T11、第1指示欄T14、第2指示欄T15及び第3指示欄T16は、それぞれ、基本形状一覧表Tb0の形状名欄T01、第1特徴欄T02、第2特徴欄T03、第3特徴欄T04とそれぞれ対応する。
【0130】
形状名欄T11には、端数処理を行う対象となる幾何要素の形状である基本形状の一般名が格納される。形状属性欄T12は、基準形状が二次元(「2D」)であるか、三次元(「3D」)であるかを示す。なお、形状属性の情報が不要な場合、形状属性欄T12を省略してもよい。
【0131】
形状基準欄T13には、基本形状毎に、端数処理を行う基準となる部分の情報が格納される。基準となる部分とは、基本形状を特定するときの基準となる部分(点)の情報である。例えば、基準形状が「楕円」の場合、中心である。
【0132】
第1指示欄T14は、基本形状一覧表Tb0の第1特徴欄T02の座標値情報と対応し、各座標値に対して端数処理を行うか否かの情報を格納する。なお、この「座標」は、形状基準欄T13に記載されている点の「座標」を示している。図11に示す参照テーブルTb1において、第1指示欄T14には、「座標値」に対し、端数処理を実行する場合「True」、実行しない場合「False」が格納されている。
【0133】
第2指示欄T15は、基本形状一覧表Tb0の第2特徴欄T03の寸法値と対応し、各寸法値に対して端数処理を行うか否かの情報を格納する。第2指示欄T15は、第1指示欄T14と同様、「True」と「False」とが格納される。また、「点」、「楕円」等で、特徴として「長さ」の特徴を有しない基本形状の場合、当該基本形状に対応する第2指示欄T15は「-」で示される。
【0134】
第3指示欄T16は、基本形状一覧表Tb0の第3特徴欄T04の寸法値と対応し、各寸法値に対して端数処理を行うか否かの情報を格納する。第3指示欄T16には、第2指示欄T15と同様、「True」、「False」及び「-」が格納される。第3特徴は、「楕円」、「球」、「円筒」等、円と関連する形状にのみ含まれてもよい。なお、参照テーブルTb1には、第2特徴及び第3特徴以外の形状の特徴が含まれていてもよい。
【0135】
参照テーブルTb1には、抽出部73で抽出可能な幾何要素が追加されたとき、追加された幾何要素と対応する基本形状が追加される。また、参照テーブルTb1において、端数処理を実行する(True)又は実行しない(False)の設定は、予め決められていてもよく、これに限定されず、ユーザによって変更可能であってもよい。
【0136】
参照テーブルTb1の第1指示欄T14は「座標」としているが、この座標をさらに細かく分けて設定することも可能である。例えば、XYZ座標系で示される場合、各軸の端数処理を個別に設定できるようにしてもよい。例えば、X軸方向及びY軸方向には端数処理を実行し、Z軸方向には端数処理を実行しないように、設定できるようにしてもよい。
【0137】
<処理設定テーブルTb3>
次に、処理設定テーブルTb3について図面を参照して説明する。図12は、処理設定テーブルTb3の一例を示す概略図である。図12に示す処理設定テーブルTb3は、識別名欄T31と、実行判定欄T32と、基準欄T33と、桁数欄T34と、基準値欄T35と、許容度欄T36と、公差欄T37と、設計値欄T38、公差欄T39を有する。
【0138】
識別名欄T31には、抽出部73により抽出された幾何要素データを個別に特定するための識別名が格納される。
【0139】
実行判定欄T32には、識別名欄T31に表示される幾何要素に対して端数処理を実行するか否かの情報である実行判定値が格納される。図12に示す処理設定テーブルTb3では、端数処理を実行する幾何要素データには実行判定値として「True」が格納され、端数処理を実行しない幾何要素データには実行判定値として「False」が格納される。なお、端数処理を実行しない幾何要素に対応する基準欄T33、桁数欄T34、基準値欄T35、許容度欄T36及び公差欄T37は、「-」で示される。
【0140】
基準欄T33には、幾何要素データの位置決めを行う場合に基準とする幾何要素データ又は基準座標系が基準情報として格納される。基準情報には、抽出されている幾何要素データが採用されてもよい。基準欄T33に、基準情報が格納されている場合、端数処理部74は、幾何要素データの特徴値を基準情報に合わせるように位置決めする。また、基準座標系が格納されている場合、端数処理部74は、基準座標系にフィットするように幾何要素データを位置決めする。これらの位置決めは、端数処理の一例である。なお、参照テーブルTb1において、座標の端数処理が「False」の場合も、基準欄T33は、「-」で示される。
【0141】
桁数欄T34には、幾何要素データの端数処理を行うときの有効桁数が格納される。詳細は後述するが、リバースエンジニアリング支援装置7において有効桁数は、自動で設定することができるとともに、ユーザが手動で設定することも可能となっている。図11に示すように、桁数欄T34には、有効桁数の数字が格納されている。
【0142】
なお、桁数欄T34に「第1有効桁数」又は「第2有効桁数」が格納される場合がある。「第1有効桁数」又は「第2有効桁数」が格納されている場合、三次元測定装置1又は表示部51の分解能の有効桁数に合わせた有効桁数とすることを意味する。「第1有効桁数」とは、三次元測定装置1でワークWの寸法を測定するときの分解能の有効桁数である。「第2有効桁数」とは、表示部51で画像を表示できる最小単位(分解能又は解像度)の有効桁数である。
【0143】
基準値欄T35には、幾何要素データの端数処理を行うときの基準とする最小単位の値である基準値が格納される。例えば、基準値が、0.05の場合、端数処理を実行した後の二次幾何要素データは、0.05単位で変化する数値となる。より具体的には、基準値により補正された二次幾何要素データは、0.10、0.15、0.20、0.25等の数値となる。許容度欄T36には、許容度が格納される。許容度に基づく端数処理を実行しない場合、許容度欄T36は「-」で示される。
【0144】
公差欄T37には、幾何要素データの設計値及び公差に基づく判定を行うか否かの情報が格納される。公差欄T37には、公差に基づく判定を行うことを指示する情報として「True」が格納され、公差に基づく判定を行わないことを指示する情報として「False」が格納される。
【0145】
設計値欄T38には、幾何要素データの設計値が格納される。また、公差欄T39には、幾何要素データの公差が格納される。設計値欄T38及び公差欄T39には、公差欄T37が「True」のときにだけ値が格納される。換言すると、公差欄T37が「False」のときには、設計値欄T38及び公差欄T39は、「-」で示される。なお、設計値及び公差は、ユーザの手動により入力されてもよいし、例えば、設定部70が、リバースエンジニアリング支援装置7の外部に設けられたデータベース等から取得してもよい。
【0146】
<処理設定テーブル作成処理>
本実施形態にかかるリバースエンジニアリング支援装置7では、処理設定テーブル作成処理において、表示部51に処理条件入力画面63を表示した状態で、端数処理の条件の入力が実行される。
【0147】
ここで、処理条件入力画面63について、図面を参照して説明する。図14は、表示部51に表示される処理条件入力画面63の一例を示す概略図である。図14に示すように、処理条件入力画面63は、識別名表示部631と、処理指示入力部632と、基準入力部633と、桁数入力部634と、基準値入力部635と、許容度入力部636と、公差判定指示入力部637と、OKキー638と、キャンセルキー639と、を有する。
【0148】
識別名表示部631は、端数処理の設定を行う幾何要素データの識別名が表示される。なお、識別名は、選択画面62において、CAD変換対象表示領域622で表示されている識別名と同じである。なお、処理条件入力画面63で表示中において、識別名を変更できるようにしてもよい。識別名表示部631に表示されている識別名に対応する幾何要素データを、便宜上、選択された幾何要素データと称する場合がある。
【0149】
処理指示入力部632は、端数処理を実行するか否かの設定入力を受け付ける。処理指示入力部632には、左端にチェックボックス632aが設けられており、受付部72によるユーザの操作の受け付けに基づいて、チェック状態が切り替わる。チェックボックス632aがチェックされているとき、端数処理部74は、現在表示されている識別名の幾何要素データの特徴値に対して端数処理を実行する。
【0150】
処理条件入力画面63において、処理指示入力部632のチェックボックス632aにチェックが入っているときに、処理指示入力部632よりも下方に配置された項目を選択又は入力可能になっている。なお、「選択」は予め決められた条件又は設定値を選択する場合を指す。「入力」は、設定値を直接入力する場合を指す。「選択」及び「入力」は、いずれも、受付部72がユーザによる操作を受け付けることで実行される。
【0151】
図14に示す処理条件入力画面63では、処理指示入力部632のチェックボックス632aにチェックが入っている。そのため、その下の項目が選択可能になっている。例えば、表示制御部75は、チェックボックス632aのチェック状態を判定し、当該判定結果に応じて、処理条件入力画面63の表示形態を切り替えてもよい。処理指示入力部632のチェックボックス632aが未チェックの場合には、処理条件入力画面63の基準入力部633以下の項目は、OKキー638とキャンセルキー639を除いて操作不可としてもよい。このとき、表示制御部75は操作不可の各項目を薄く表示してもよいし、全て表示しないようにしてもよい。
【0152】
基準入力部633は、端数処理を実行する際の基準の指定の入力を受け付ける。ここで指定される基準は、三次元測定装置1及びリバースエンジニアリング支援装置7内で規定された座標系又はワークWの座標系が用いられてもよい。この場合、基準入力部633で指定する基準の入力は、プルダウンメニューに表示される情報から選択して入力されてもよい。
【0153】
ここで、プルダウンメニューに表示される基準は、端数処理において、位置決めを行う又は端数処理の基準となる座標系又は位置である。基準としては、例えば、上述したように、三次元測定装置1の座標系(座標系1)を挙げることができる。また、これ以外にも、選択された幾何要素データ以外の幾何要素データ、例えば、円筒1等を挙げることができる。なお、円筒1等の幾何要素データが指定されている場合、指定された幾何要素データの特徴値における座標値及び座標系を基準とするものを挙げることができる。また、円筒1等の幾何要素データが指定されている場合、端数処理部74は、選択された幾何要素データを基準に外接又は内接するように位置決めするように端数処理を実行してもよい。
【0154】
桁数入力部634には、チェックボックス634aと、桁数条件入力ボックス634bと、桁数入力ボックス634cとが含まれる。チェックボックス634aは、処理指示入力部632のチェックボックス632aと同様の構成を有し、有効桁数に基づく端数処理を実行するか否かを指定する。チェックボックス632aにチェックがされているときにのみ、桁数条件入力ボックス634b、桁数入力ボックス634cの操作が可能であってもよい。
【0155】
端数処理部74は、有効桁数に基づく端数処理を実行する場合、「処理有効桁数」に基づいて、端数処理を実行する。有効桁数に基づく端数処理の詳細については、後述する。桁数条件入力ボックス634bは、「処理有効桁数」を設定するための条件が入力される。
【0156】
端数処理部74は、例えば、三次元測定装置1の分解能の有効桁数である「第1有効桁数」、表示部51の分解能又は解像度の有効桁数である「第2有効桁数」を基準として設定された「設定有効桁数」を「処理有効桁数」として設定する。また、端数処理部74は、ユーザにより入力された「入力有効桁数」を「処理有効桁数」として設定する場合もある。
【0157】
そのため、桁数条件入力ボックス634bは、「第1有効桁数」、「第2有効桁数」及び「入力有効桁数」のいずれかから選択可能なように、プルダウンメニューが採用される。
【0158】
桁数条件入力ボックス634bにおいて、「第1有効桁数」又は「第2有効桁数」が選択される場合、端数処理部74が「第1有効桁数」又は「第2有効桁数」に基づいて「設定有効桁数」を設定する。つまり、桁数条件入力ボックス634bが「第1有効桁数」又は「第2有効桁数」の場合、ユーザにとって、端数処理を実行するための有効桁数、すなわち、「処理有効桁数」は自動的に設定される。そこで、端数処理部74が有効桁数を自動で決定することを明示するため、表示制御部75は、桁数条件入力ボックス634bに、「自動:第1有効桁数」又は「自動:第2有効桁数」のように、自動であることを明記してもよい。また、ユーザにより入力される「入力有効桁数」を表示する場合、「手動」であることを明示するため、表示制御部75は、桁数条件入力ボックス634bに、「手動:入力有効桁数」と表示してもよい。
【0159】
三次元測定装置1の分解能は、製品を製造するときの設計図で用いられる寸法の最小値(分解能)よりも細かい。そのため、受付部72が、桁数条件入力ボックス634bに「第1有効桁数」が入力されていることを受け付けた場合、端数処理部74は、「第1有効桁数」を取得し、「第1有効桁数」よりも粗い、換言すると、有効桁数が少ない「処理有効桁数」を設定できる。例えば、「第1有効桁数」が小数点以下4桁(4桁とする)とすると、端数処理部74は、「設定有効桁数」を4桁よりも少ない、小数点以下2桁(2桁とする)に設定できる。
【0160】
なお、上述の例で、端数処理部74は、「設定有効桁数」として、「第1有効桁数」よりも2桁少ない有効桁数を設定しているが、これに限定されない。例えば、端数処理部74は、「第1有効桁数」よりも1桁少ない「設定有効桁数」を設定してもよいし、3桁以上少ない「設定有効桁数」を設定してもよい。
【0161】
表示部51の解像度は、設計図で用いられる寸法の最小値より小さい場合が多い。受付部72が、桁数条件入力ボックス634bに「第2有効桁数」が入力されていることを受け付けた場合、端数処理部74は、「第2有効桁数」を取得し、「第2有効桁数」よりも粗い、換言すると、有効桁数が少ない「設定有効桁数」を設定できる。例えば、「第2有効桁数」が小数点以下3桁(3桁とする)とすると、端数処理部74は、「設定有効桁数」を3桁よりも少ない、2桁に設定できる。
【0162】
なお、上述の例で、端数処理部74は、「設定有効桁数」として、「第2有効桁数」よりも1桁少ない有効桁数を設定しているが、これに限定されない。例えば、端数処理部74は、「第2有効桁数」よりも2桁以上少ない「設定有効桁数」を設定してもよい。
【0163】
受付部72が、桁数条件入力ボックス634bへの「第1有効桁数」又は「第2有効桁数」との入力を受け付けた場合、「設定有効桁数」を端数処理部74に受け渡す。端数処理部74は、「処理有効桁数」を「設定有効桁数」とする。
【0164】
端数処理部74は、一次幾何要素データの特徴値に対し、「第1有効桁数」又は「第2有効桁数」よりも粗い「処理有効桁数」で端数処理を実行できる。端数処理により生成された二次幾何要素データの特徴値の有効桁数は、「処理有効桁数」となる。このように、二次幾何要素データを生成することで、二次幾何要素データの特徴値の最小値(分解能)を、設計図で用いられる寸法の最小値(分解能)に合わせた又は近づけた分解能とすることができる。
【0165】
また、有効桁数は、ユーザが直接入力することもできる。桁数条件入力ボックス634bに「入力有効桁数」が入力されているとき、桁数入力ボックス634cへの桁数入力が可能になる。つまり、受付部72が、桁数条件入力ボックス634bへの「入力有効桁数」との入力を受け付けた場合に、桁数入力ボックス634cへの桁数入力を受け付けることが可能であってもよい。このとき、受付部72は、桁数入力ボックス634cへの「入力有効桁数」(数字)の入力を受け付け、「入力有効桁数」を端数処理部74に受け渡す。端数処理部74は、「処理有効桁数」を「入力有効桁数」とする。
【0166】
ユーザが桁数入力ボックス634cに「入力有効桁数」を入力したとき、「入力有効桁数」が「第1有効桁数」よりも多い桁数が設定される場合がある。この場合、「入力有効桁数」は、端数処理に有効ではない。そのため、端数処理部74が「第1有効桁数」と、「入力有効桁数」とを比較し、「入力有効桁数」が「第1有効桁数」よりも桁数が多いと判定した場合、表示制御部75は、桁数の再入力をユーザに促すウィンドウを表示してもよい。このとき、表示制御部75は、桁数が多いことを示唆する表示を行うようにしてもよい。
【0167】
端数処理部74は、「第1有効桁数」として、記憶部54に記憶された数値を呼び出してもよいし、三次元測定装置1(例えば、制御基板)から分解能を取得してその有効桁数を設定してもよい。端数処理部74は、「第2有効桁数」として、記憶部54に記憶されてた数値を呼び出してもよいし、表示部51から分解能又は解像度を取得してその有効桁数を設定してもよい。
【0168】
基準値入力部635は、チェックボックス635aと、基準値入力ボックス635bと、を有する。チェックボックス635aは、処理指示入力部632のチェックボックス632aと同じ構成を有する。基準値入力部635のチェックボックス635aは、桁数入力部634のチェックボックス634aが未チェックのときのみチェックできてもよい。
【0169】
すなわち、表示制御部75は、受付部72によりチェックボックス634aへのチェックを受け付けたか否かを判定し、当該判定結果に応じて基準値入力部635の表示形態を切り替えることができる。この場合、受付部72がチェックボックス634aへのチェックを受け付けると、表示制御部75は、基準値入力部635をグレーアウトするなどした処理条件入力画面63を表示部51に表示させる。なお、桁数入力部634のチェックボックス634aは、基準値入力部635のチェックボックス635aが未チェックのときのみチェックできてもよい。すなわち、表示制御部75は、受付部72によりチェックボックス635aへのチェックを受け付けたか否かを判定し、当該判定結果に応じて桁数入力部634の表示形態を切り替えることができる。この場合、受付部72がチェックボックス635aへのチェックを受け付けると、表示制御部75は、桁数入力部634をグレーアウトするなどした処理条件入力画面63を表示部51に表示させる。
【0170】
基準値入力ボックス635bには、ユーザによって基準値が入力される。基準値入力ボックス635bへの基準値の入力は受付部72を介して行われる。なお、基準値入力ボックス635bは、キーボードによって入力された数値を受け付ける構成であってもよいし、プルダウンメニューによって選択された数値を受け付ける構成であってもよい。基準値とは、寸法の最小単位(分解能)を示す値である。なお、端数処理部74は、データ取得部71で取得されたメッシュデータの寸法の最小単位と、受付部72により受け付けた値とを比較し、データ取得部71で取得されたメッシュデータの最小単位よりも小さい基準値が入力されたと判定された場合は、表示制御部75は、基準値の再入力をユーザに促すウィンドウを表示してもよい。
【0171】
許容度入力部636は、チェックボックス636aと、許容度入力ボックス636bと、を有する。チェックボックス636aは、処理指示入力部632のチェックボックス632aと同じ構成を有する。チェックボックス636aがチェックされているときにだけ、許容度入力ボックス636bに許容度を入力することができてもよい。
【0172】
許容度は、一次幾何要素データの特徴値と端数処理後の幾何要素データ(以下、二次幾何要素データとする)の特徴値との差分と許容度とに基づいて、端数処理を行う範囲を表す値である。すなわち、一次幾何要素データの特徴値を端数処理して二次幾何要素データを作成する際の端数処理量が許容度よりも大きい場合は端数処理を中止し、端数処理量が許容度よりも小さい場合は端数処理を実行するようにしてもよい。このようにすることで、測定対象物に比較的大きな凹凸などの欠陥がある部分は、その欠陥を維持しつつ、設計値と類似する部分は、端数処理を行い、設計値に丸めることができる。
【0173】
また、一次幾何要素データの特徴値を端数処理して二次幾何要素データを作成する際の端数処理量が許容度よりも小さい場合は端数処理を中止し、端数処理量が許容度よりも大きい場合は端数処理を実行するようにしてもよい。このようにすることで、測定対象物表面の許容度以下の形状を維持することで、測定対象物の実際の微細形状を再現しつつ、設計値から乖離する部分は端数処理を行うことで簡略化した表示とできる。このような許容度としては、端数処理前後の特徴値の差分値を規定してもよいし、端数処理前後の特徴値の変化率を規定してもよい。
【0174】
公差判定指示入力部637は、チェックボックス637aと、設計値入力ボックス637bと、公差入力ボックス637cと、を有する。チェックボックス637aは、処理指示入力部632のチェックボックス632aと同じ構成を有する。チェックボックス637aがチェックされているときにだけ、設計値入力ボックス637b及び公差入力ボックス637cに設計値と公差との入力が可能であってもよい。
【0175】
設計値入力ボックス637bには、端数処理の設定を行う幾何要素データの設計値がユーザによる手動で入力可能である。設計値入力ボックス637bと同様に公差入力ボックス637cには、設計値及び公差がユーザによる手動で入力することが可能である。なお、設計値及び公差は、手動による入力に限定されない。例えば、別途設けられている設計条件にアクセスし、設計値及び公差のデータを受け取り、その設計値及び公差のデータを用いるようにしてもよい。設計値及び公差のデータを、例えば、データ取得部71が、外部のストレージ、クラウド等から取得するようにしてもよい。設計値及び公差に基づく端数処理の具体的な説明は、後述の第3端数処理に示す。
【0176】
OKキー638及びキャンセルキー639は、処理条件入力画面63の入力の決定及び破棄をそれぞれ指示する。つまり、受付部72がOKキー638の操作入力を検知したとき、端数処理部74は、処理条件の入力が完了したと判定する。また、受付部72がキャンセルキー639の操作入力を検知すると、表示制御部75は、処理条件入力画面63を一旦閉じる。このとき、表示制御部75は、処理条件入力画面63の最初の表示(各種設定入力が実行されていない状態の表示)を表示部51に表示させてもよい。
【0177】
上述した処理設定テーブルの作成処理におけるリバースエンジニアリング支援装置7の動作について図面を参照して説明する。図13は、処理設定テーブル作成処理の動作を示すフローチャートである。図8に示す幾何要素データ抽出処理で抽出された幾何要素データは、その識別名とともに、記憶部54の一次幾何要素データベースDb1に記憶されている。処理設定テーブルTb3は、設定部70によって作成される。
【0178】
ステップS401では、設定部70は、記憶部54の一次幾何要素データベースDb1から幾何要素データを呼び出す。ここでは、幾何要素データ毎に、端数処理の条件を設定し、処理設定テーブルTb3に格納するものである。そのため、ステップS401では、幾何要素データの識別名のみ呼び出してもよいし、特徴値も併せて呼び出してもよい。
【0179】
続くステップS402では、表示制御部75は、一次幾何要素データベースDb1に含まれる一の識別名の処理条件入力画面63(図14参照)を表示部51に表示する。なお、処理条件入力画面63の表示の順番は、例えば、一次幾何要素データベースDb1に記載の順番、換言すると、格納された順番を挙げることができるが、これに限定されない。例えば、形状、位置に基づいた所定の順番であってもよい。
【0180】
ステップS403では、設定部70は、現在選択されている幾何要素に対して端数処理を実行するか、否かを判定する。具体的には、処理条件入力画面63で処理指示入力部632のチェックボックス632aが未チェックの状態でOKキー638の操作入力を受付部72が受け付けたとき、設定部70は、選択されている幾何要素データに対して、端数処理をしないと判定する。
【0181】
現在選択されている幾何要素データに対して端数処理を実行しないと判断された場合(ステップS403でNoの場合)、ステップS407に移行する。ステップS407では、設定部70は、現在、処理条件の入力を実行している幾何要素の識別名と実行判定欄T32に端数処理を実行しないことを示すデータを処理設定テーブルTb3に格納する。
【0182】
現在選択されている幾何要素データに対して端数処理を実行すると判断された場合(ステップS403でYesの場合)、ステップS404に移行する。なお、処理条件入力画面63で処理指示入力部632のチェックボックス632aへのチェックを受付部72が受け付けると、設定部70は選択されている幾何要素データに対して端数処理を実行すると判定する。
【0183】
ステップS404では、受付部72によって、処理条件入力画面63への条件入力を受け付ける。上述のとおり、端数処理を実行することが選択されている場合において、基準座標系、桁数、基準値、許容度、公差判定のうち、必要なデータの入力が受け付けられる。つまり、受付部72は、基準入力部633、桁数入力部634、基準値入力部635、許容度入力部636及び公差判定指示入力部637の少なくとも一のデータ入力を受け付ける。ステップS405では、設定部70は、端数処理の条件の入力が完了したか否か判定する。端数処理の条件の入力が完了したか否かの判定は、受付部72が、OKキー638又はキャンセルキー639が操作されたことによって判定される。
【0184】
受付部72が、OKキー638又はキャンセルキー639の操作入力を受け付けると、ステップS406に移行する。ステップS406では、受付部72が、受け付けた操作入力がOKキー638の操作を受け付けたか否か判定する。受付部72が、キャンセルキー639の操作入力を受け付けた場合(ステップS406でNoの場合)、表示制御部75は、現在、表示部51に表示している処理条件入力画面63を、一旦、消去し、ステップS402に戻る。ステップS402では、表示制御部75は、改めて、現在の幾何要素に対する端数処理の条件の入力のための処理条件入力画面63の表示を実行する。
【0185】
受付部72が、OKキー638の操作入力を受け付けた場合(ステップS406でYesの場合)、ステップS407に移行する。ステップS407では、設定部70は、受付部72が受け付けた処理条件入力画面63への端数処理の条件の入力を識別名とともに処理設定テーブルTb3に格納する。そして、ステップS408に移行する。
【0186】
ステップS408では、設定部70は、一次幾何要素データベースDb1に格納されている全ての幾何要素データに対して、端数処理の条件の設定が実行されか否か判定する。具体的には、設定部70は、一次幾何要素データベースDb1に格納されている識別名と、処理設定テーブルTb3に格納されている識別名とを比較することで実行される。
【0187】
設定部70が、一次幾何要素データベースDb1に、端数処理の条件の設定が実行されていない幾何要素データが含まれると判定した場合(ステップS408でNoの場合)、ステップS402に戻り、表示制御部75が、次の幾何要素データの端数処理の条件の処理条件入力画面63を表示部51に表示し、受付部72が、ユーザによる処理条件入力画面63への入力操作を受け付ける。
【0188】
設定部70が、一次幾何要素データベースDb1の含まれる全ての幾何要素データに対して端数処理の条件の設定が行われた場合(ステップS408でYesの場合)、図5に示すステップS206に戻る。これにより、処理設定テーブルTb3が完成する。
【0189】
本実施形態の処理テーブル作成処理では、一次幾何要素データベースDb1に格納されている幾何要素データの、端数処理を実行するか否かの情報を含む端数処理を実行する場合の端数処理の条件を、順次、処理設定テーブルTb3に格納する構成としている。しかしながら、これに限定されず、例えば、一次幾何要素データベースDb1に格納されている全ての幾何要素データに対する端数処理をバッファしておき、最終的に全ての幾何要素データに関する端数処理を処理設定テーブルTb3に格納するようにしてもよい。
【0190】
<第1端数処理>
ここで、端数処理について説明する。図15は、三次元測定装置1で測定した球体Spのメッシュデータである。図16は、図15に示す球体Spの半径の分布を示す概略図である。図16は、同じ半径の部分を線でつないで図示している。
【0191】
三次元測定装置1では、ワークWに測定光を照射するとともにワークWの撮像画像から、ワークWの表面形状を測定し、メッシュデータを作成している。球体に見えるメッシュデータでは、球体に見える場合であっても、実際には、図16に示すように半径にr1、r2、r3等のばらつきがある。つまり、図16に示す球体Spの形状は、半径にばらつきがあるため、正確に球ではなく、球に類似した形状である。
【0192】
この球体Spの半径のばらつきの原因として、例えば、製造誤差、使用による摩耗、変形等を挙げることができる。抽出部73は、このような半径のばらつきも含むメッシュデータから、上述のアルゴリズムを用いて、球体の座標値や寸法値といった特徴値を取得している。そのため、球体の特徴値は、細かい端数を有するデータ(以下、「端数を含むデータ」とする)である。
【0193】
上述したとおり、設計図には、ユーザによる設計意図が含まれる。しかしながら、三次元測定装置1により得られたメッシュデータは必ずしもユーザによる設計意図を反映したものとはならない。つまり、一次幾何要素データは、端数を含むデータである。そこで、端数処理部74が、一次幾何要素データの所定の特徴値を四捨五入、切り捨て、切り上げ等の端数処理をした二次幾何要素データを作成することで、ユーザの設計意図を反映した幾何要素データを取得する。
【0194】
<第1端数処理(有効桁数に基づく端数処理)>
次に、端数処理の動作について、図17に示すフローチャートを参照して説明する。本例の「第1端数処理」では、有効桁数に基づいて端数処理を行う方法を例に説明する。
【0195】
ステップS501では、端数処理部74は、一次幾何要素データベースDb1から一の幾何要素データを呼び出す。ステップS502では、端数処理部74は、処理設定テーブルTb3を参照し、ステップS501で呼び出された一の一次幾何要素データが端数処理の対象か否かを判定する。ここで、端数処理部74は、処理設定テーブルTb3の実行判定欄T32に記載されている情報に基づいて、ステップS501で呼び出された一の一次幾何要素データが端数処理の対象か否を判定する。
【0196】
ステップS502で一の一次幾何要素データが端数処理の対象ではない場合(ステップS502でNoの場合)、ステップS511に移行する。
【0197】
ステップS502で一の一次幾何要素データが端数処理の対象の場合(ステップS502でYesの場合)、ステップS503に移行する。ステップS503では、端数処理部74は、参照テーブルTb1を参照する。そして、端数処理部74は、参照テーブルTb1に基づいて、ステップS501で呼び出した一の一次幾何要素データの端数処理の対象である特徴値を取得する。なお、端数処理部74は、図11に示す参照テーブルTbの第1指示欄T14、第2指示欄T15及び第3指示欄T16を参照し、端数処理の対象である特徴値を特定するとともに、該当する特徴値を一次幾何要素データベースDb1から呼び出す。
【0198】
続く、ステップS504では、端数処理部74は、処理設定テーブルTb3の桁数欄に格納されている有効桁数を呼び出し、処理有効桁数として設定する。処理有効桁数は、端数処理を実行するときの有効桁数である。そして、ステップS505に移行する。
【0199】
ステップS505では、端数処理部74は、一次幾何要素データの特徴値に対して、端数処理を実行し、二次幾何要素データの特徴値を生成する。ここで端数処理の詳細について説明する。まず、特徴値として長さ、直径等の寸法値の場合の端数処理について説明する。ここでは、数値の端数処理は、四捨五入とする。なお、切り捨て、切り上げは、四捨五入と処理が異なるが、実質上同じ内容である。
【0200】
例えば、特徴値が、小数点以下5桁までの数値であるとする。処理有効桁数が小数点以下2桁に設定されているとすると、特徴値の小数点以下3桁目の数字を四捨五入して、二次幾何要素データの特徴値を生成する。このように、一次幾何要素データの特徴値の桁数が、ユーザによる設計意図の桁数と異なる場合であっても、ユーザによる設計意図にあった有効桁数又はユーザによる設計意図に近づいた有効桁数の二次幾何要素データを生成できる。
【0201】
なお、特徴値が座標値で、座標値に端数処理を実行する場合、各座標値を指定された有効桁数で四捨五入することで実現される。なお、幾何要素が長方形等の二次元形状や多面体の三次元形状である場合は、基準座標系に基づいて幾何要素を回転させたうえで、幾何要素の頂点や重心の座標が格子点上に配置されるように平行移動させることで実現してもよい。なお、上述の座標値に対する端数処理は、一例であり、これに限定されない。これ以外の処理が実行されてもよい。
【0202】
続くステップS506では、判定部76は、端数処理の有効性判定を許容度に基づいて行うか否か判定する。なお、判定部76は、処理設定テーブルTb3の許容度欄T36に許容度の数値がある場合、許容度に基づく端数処理の有効性判定を実行すると判定する。
【0203】
判定部76が、許容度に基づく端数処理の有効性判定を行わないと判定した場合(ステップS506でNoの場合)、ステップS509に移行する。ステップS509では、端数処理部74は、端数処理した二次幾何要素データを記憶部54の二次幾何要素データベースDb2に記憶させる。判定部76が、端数処理の有効性判定を行うと判定した場合(ステップS506でYesの場合)、ステップS507に移行する。
【0204】
ステップS507では、判定部76は、二次幾何要素データと一次幾何要素データとを比較するための比較値の演算を実行する。比較値の演算としては、例えば、二次幾何要素データ及び一次幾何要素データの端数処理対象の特徴値の差を計算することを挙げることができる。また、これ以外にも、一次幾何要素データと二次幾何要素データの長さ、面積、体積等の形状に依存する物理量の差を比較値としてもよい。また、上述では、比較値として差を求めているが、一次幾何要素データと二次幾何要素データとの比を比較値としてもよい。ステップS507で判定部76が比較値を算出した後、ステップS508に移行する。
【0205】
ステップS508では、判定部76は、比較値が許容度未満であるか否かを判定する。判定部76が、比較値が許容値よりも小さいと判定した場合(ステップS508でYesの場合)、ステップS509に移行する。ステップS509では、端数処理部74は、端数処理にて生成された二次幾何要素データを二次幾何要素データベースDb2に格納する。そして、ステップS511に移行する。
【0206】
また、ステップS508で、判定部76が、比較値が許容度を超えていると判定した場合(ステップS508でNoの場合)、ステップS510に移行する。ステップS510では、端数処理部74は、ステップS508における判定部76の判定結果に基づいて、端数処理にて生成された二次幾何要素データを破棄する。ステップS508、ステップS510をさらに説明すると、判定部76は、生成された二次幾何要素データは、ユーザの設計意図に適していないと判定する。端数処理部74は、端数処理した一の二次幾何要素データを、二次幾何要素データベースDb2に格納せず、破棄する。
【0207】
また、ステップS510において、表示制御部75が、端数処理が不適切である情報を示す表示画面を生成し表示部51に表示してもよい。
【0208】
そして、ステップS509又はステップS510に続く、ステップS511では、端数処理部74は、一次幾何要素データベースDb1に格納されている全ての幾何要素データに対して端数処理の実行の要否の判定が行われたか否か判定する。全ての幾何要素データに対して端数処理の実行の要否の判定が行われていてない場合(ステップS511でNoの場合)、ステップS501に戻り、一次幾何要素データベースDb1の次の一の幾何要素データ及び特徴値の呼出を行う。
【0209】
また、端数処理部74が、一次幾何要素データベースDb1に格納されている全ての幾何要素データに対して端数処理の実行の要否の判定が行われた場合(ステップS511でYesの場合、図5のステップS207に戻る。
【0210】
このようにすることで、端数処理部74は、記憶部54の一次幾何要素データベースDb1に記憶されたすべての一次幾何要素データの特徴値に、必要に応じて端数処理を実行する。そして、端数処理部74は、一次幾何要素データの特徴値に端数処理を実行して二次幾何要素データを生成し、記憶部54の二次幾何要素データベースDb2に記憶させる。
【0211】
図5のステップS207では、変換部77は記憶部54に記憶されている一次幾何要素データベースDb1に格納された一次幾何データ及び二次幾何要素データベースDb2に格納された二次幾何データの少なくとも一方CADデータに変換する。
【0212】
リバースエンジニアリング支援装置7では、一次幾何要素データベースDb1及び二次幾何要素データベースDb2は、記憶部54にそれぞれ独立して記憶されていてもよい。これにより、リバースエンジニアリング支援装置7では、メッシュデータから抽出された一次幾何要素データを保存したまま、一次幾何要素データに端数処理を実行した二次幾何要素データを生成することができる。
【0213】
そして、ステップS508で判定部76は、比較値が許容度未満のときに、適切な端数処理が実行されたと判定している。これにより、端数処理によって生成された二次幾何要素データが一次幾何要素データから大きく外れていない場合に、二次幾何要素データをCAD変換する。そのため、二次幾何要素データを変換した二次CADデータを、別の部材の設計用のデータとして用いることができる。
【0214】
一方で、判定部76が、比較値が許容値以上のときに、端数処理を実行した二次幾何要素データを残すようにしてもよい。
【0215】
ここで、有効桁数に基づく端数処理の具体的な例について、図面を参照して説明する。図18は、一例の一次幾何要素データを説明するための図である。図19は、図18に示す一次幾何要素データを端数処理した二次幾何要素データを説明するための図である。図18に示すように、幾何要素としてここでは、「球1」を例に説明する。
【0216】
図18及び図19に示す幾何要素データは、図9に示す三次元表示画面61の幾何要素データ表示領域614と同様の表示である。そのため、ここでは、幾何要素データ表示領域614として、説明する。図18に示すように、幾何要素データ表示領域614は、テーブルであり、識別名欄641と、特徴部分欄642と、特徴値欄643と、単位欄644とを有する。
【0217】
識別名欄641には、幾何要素データを個別に識別する識別名が格納される。ここでは、「球1」が格納されている。特徴部分欄642には、幾何要素を特定するため特徴値が、図3に示す基本形状一覧表Tb0の記載に従って特徴部分が記載されている。ここでは、半径R、中心座標X1、中心座標Y1、中心座標Z1、である。特徴値欄643には、一次幾何要素データベースDb1から呼び出した特徴値が格納されている。単位欄644には、特徴値欄643に格納されているデータの単位が表示される。ここでは、ミリメートルである。
【0218】
上述したとおり、端数処理部74は、端数処理を実行するときの処理有効桁数を、処理設定テーブルTb3の有効桁数欄T34から取得する。図12に示す処理設定テーブルTb3において、「球1」の処理有効桁数は2桁である。
【0219】
端数処理部74は、まず、図12に示す処理設定テーブルTb3の「球1」の実行判定欄T32を確認して端数処理を実行するか否か判定する。そして、端数処理部74は、端数処理を実行することを確認すると、端数処理部74は、図11に示す参照テーブルTb1を参照し、「球1」について、どの特徴値の端数処理を行うか確認する。図11に示す参照テーブルTb1において「球」は、座標と径が端数処理対象の特徴値であり、長さは、端数処理の対象ではない。そのため、図18に示す特徴値のうち、中心座標X1、中心座標Y1、中心座標X1及び半径Rの端数処理を行う。
【0220】
図18に示すように、「球1」の処理対象の特徴値は、半径R:68.397、中心座標X1:43.763、始点座標Y1:97.431、始点座標Z1:0.298である。これらの数値に対して、有効桁数を小数点以下2桁として端数処理を行った。ここでは、座標値の端数処理として指定桁数以下(小数点以下3桁)の数字の切り捨て処理を実行した。しかしながら、座標値の端数処理としては、これに限定されず、指定桁数での四捨五入や指定桁数での切り上げ等を行うようにしてもよい。
【0221】
図19に示すように、端数処理部74により端数処理が実行されることで、半径R:68.39、中心座標X1:43.76、中心座標Y1:97.43、中心座標Z1:0.29とする二次幾何要素データが生成される。二次幾何要素データは、一次幾何要素データの有効桁数よりも粗く、ユーザによる設計意図を反映した有効桁数で端数処理を行っているので、より設計意図が反映された値になっているといえる。このように、端数処理を行う場合、参照テーブルTb1を参照して、幾何要素データに含まれる特徴値に対して、端数処理を実行する。なお、端数処理部74の端数処理によって、生成された二次幾何要素データは、図7に示す二次幾何要素データベースDb2に、識別名と関連付けて格納される。
【0222】
<第2端数処理(基準値に基づく端数処理)>
端数処理の他の例について図面を参照して説明する。図20は、端数処理の他の例の一部を示すフローチャートである。図20に示すフローチャートは、図17に示すフローチャートのステップS502~S505に替わる処理である。図20に示すフローチャートは、図17に示すステップS502の後から始まり、ステップS506又はステップS511に接続する処理である。第2端数処理は、基準値を用いた端数処理である。
【0223】
図20に示すように、ステップS502において、端数処理部74は、端数処理を実行するか否かを判定する。端数処理部74により、端数処理を実行すると判断された場合(ステップS502でYesの場合)、ステップS601に移行し、端数処理部74は、参照テーブルTb1を参照して幾何要素データから端数処理の対象の特徴値を取得する。ステップS601の処理は、ステップS503の処理と同じであるため詳細は省略する。そして、ステップS602に移行し、端数処理部74は、処理設定テーブルTb3の基準値欄T35から端数処理の基準値を取得する。そして、ステップS603に移行し、端数処理部74は端数処理を実行する。
【0224】
端数処理部74は、取得した基準値が処理後の幾何要素データの最小単位となるように、端数処理を実行する。例えば、基準値が0.5の場合、端数処理後の数値が、例えば、(0.5、2.5、4.0、5.0)等0.5刻みの数値になるように端数処理される。より具体的には、基準値が0.5のとき、小数点第1位の数値が、(0.0、0.1、0.2)のときは、0.0となるように端数処理する。また、(0.3、0.4.0.5、0.6、0.7)のときは、0.5となるように端数処理する。さらに、(0.8、0.9)のときは、繰り上がり1.0となるように端数処理する。補正の方法は一例であり、基準値が同じであっても、異なる法則に従って端数処理するようにしてもよい。これら以外にも基準値が最小単位となるように幾何要素データを処理する処理方法を広く採用することができる。端数処理後、ステップS506に移行する。
【0225】
基準値に基づく端数処理を実行する場合において、端数処理部74は、幾何要素データの特徴値は、最小単位が基準値となるように処理する。このとき、特徴値の端数処理前後の差は、基準値よりも小さくなる。一次幾何要素データと二次幾何要素データとの差分値と許容度とを比較して判定を行う場合、許容度は、基準値よりも小さい値で設定されてもよい。なお、選択画面511において、受付部72が受け付けた許容度が基準値よりも大きいと判定部76により判定された場合に、許容度が適切ではないとの報知を行うようにしてもよい。
【0226】
ここで、基準値に基づく端数処理の具体的な例について、図面を参照して説明する。図21は、一例の一次幾何要素データの概略図である。図22は、図21に示す幾何要素の幾何要素データを端数処理した二次幾何要素データの概略図である。図21に示すように、幾何要素としてここでは、円筒1としている。
【0227】
図21及び図22に示す幾何要素データ表示領域614は、図18及び図19に示す幾何要素データ表示領域614と同じである。そのため、実質的に同じ部分には、同じ符号を付すとともに、同じ部分の詳細な説明は省略する。
【0228】
端数処理部74は、まず、抽出部73により抽出された幾何要素データの中から一の幾何要素データを特定する。そして、端数処理部74は、処理設定テーブルTb3を参照して特定された一の幾何要素データに対して端数処理を実行するか否かを判定する。処理設定テーブルTb3において、特定された一の幾何要素データの例である「円筒1」の実行判定欄T32は、「True」である。そのため、端数処理部74は、特定された一の幾何要素データに対して端数処理を実行する。そして、端数処理部74は、参照テーブルTb1を参照して、座標値を端数処理対象の特徴値として特定する。
【0229】
さらに、端数処理部74は、処理設定テーブルTb3の基準値欄T35を参照して、基準値を取得する。「円筒1」の基準値は、「0.05」であるため、端数処理部74は、始点座標X1、始点座標Y1、始点座標X1、終点座標X2、終点座標Y2、終点座標Z2の各特徴値に対して、寸法の最小単位が0.05になるように、端数処理を実行する。
【0230】
具体的には、図21に示すように、始点座標X1:-2.274、始点座標Y1:60.533、始点座標Z1:7.661、終点座標X2:-2.288、終点座標Y2:57.941、終点座標Z2:8.352である。基準値が「0.05」なので、0.05刻みとなるように、すなわち、小数点以下第2位の数字が、「0」、「1」、「2」のときは、小数点以下第2位の数字を「0」にする。小数点以下第2位の数字が、「3」、「4」、「5」、「6」、「7」のときは、少数点以下第2位の数字を「5」にする。小数点以下第2位の数字が、「8」、「9」のときは、小数点以下第1位の数字を切り上げ、小数点第2位の数字を「0」とする。
【0231】
このことを踏まえて、端数処理部74は、始点座標X1:-2.30、始点座標Y1:60.55、始点座標Z1:7.65、終点座標X2:-2.30、終点座標Y2:57.95、終点座標Z2:8.35となるように端数処理を実行する(図22参照)。
【0232】
基準値に基づいた端数処理は、設計意図が小数点以下の桁数ではなく、0.01や0.05等の基準値で表現されている場合に特に有効である。このような場合であって抽出部により抽出された幾何要素データに対して設計意図を反映したうえでCADデータに変換することができる。
【0233】
「第1端数処理」では、端数処理部74は、三次元測定装置1の分解能である第1有効桁数又は表示部51の解像度(分解能)の有効桁数である第2有効桁数よりも粗い処理有効桁数を設定して端数処理を実行する場合を説明した。また、「第2端数処理」では、端数処理部74は、ユーザにより設定された基準値に基づいて端数処理を行う場合を説明した。上述の実施形態では、「第1端数処理」と「第2端数処理」とをそれぞれ、別の処理として記載しているが、これに限定されない。これらの処理を一連の処理として実行するようにしてもよい。
【0234】
また、端数処理部74は、有効桁数に基づく端数処理及び基準値に基づく端数処理のいずれか一方を、ユーザによる選択に基づいて或いは端数処理部74等による選択に基づいて選択的に実行するようにしてもよい。
【0235】
<第3端数処理(公差による判定)>
端数処理の他の例について図面を参照して説明する。図23は、端数処理の他の例の一部を示すフローチャートである。第3端数処理は、公差に基づいて端数処理の良否の判定を行う。図23に示すフローチャートは、一の一次幾何要素データが端数処理部74による端数処理の対象である場合において、対象の一次幾何要素データと設計値との差分値を算出し、算出された差分値に基づいて端数処理を実行するか否かを判定するフローチャートである。
【0236】
例えば、一次幾何要素データを端数処理した二次幾何要素データを変換したCADデータを設計図に直接利用できれば、CADデータの作成の手間を省くことができる。
【0237】
一方で、例えば、製造上の不具合、使用による摩耗、破損等により、ワークWの幾何要素データを抽出した元の形状と、設計値との差が許容誤差範囲から外れる場合がある。このようにワークWと設計値との差が許容誤差範囲から外れる場合は、製造上の誤差等ではなく、ワークWに欠陥が生じている可能性が高い。一次幾何要素データと設計値との差分値が公差よりも小さい場合に端数処理を実行することで、ワークWの製造上の誤差等は端数処理し、ワークWに生じている欠陥部分の形状はそのまま維持することができる。
【0238】
また、ワークWの表面の微細な形状は確認したいが、公差以上の変化がある部分は大まかに確認できればよい場合がある。このような場合、一次幾何要素データと設計値との差分値が公差よりも大きい場合に端数処理を実行することで、ユーザの関心が高い部分の形状は維持しつつ、ユーザの関心が低い部分の形状は簡略化することができる。
【0239】
そこで、「第3端数処理」において、端数処理部74は、端数処理を実行する前に、一次幾何要素データが、設計値の公差の範囲内にあるか否かで端数処理を実行するか否かを決定する。以下に、このような公差判定の詳細について説明する。
【0240】
ステップS701では、判定部76は、公差判定を実行するか否かを判定する。なお、公差判定を行うか否かの判定は、判定部76が、処理設定テーブルTb3の公差欄T37を参照することによって実行される。より詳しく説明すると、判定部76は、公差欄T37に、公差判定値として「True」が格納されている場合、公差判定を行うと判定する。
【0241】
ここで、公差判定は、端数処理を実行しようとする幾何要素データに対して実行される。そのため、ステップS701は、図17示すフローチャートのステップS504で端数処理部74が処理有効桁数を取得した後又は図20に示すフローチャートのステップS603で端数処理部74が基準値を取得した後に実行される。つまり、ステップS701の判定は、端数処理部74による端数処理の実行の直前に実行される。なお、ステップS701は、端数処理の実行前であればよく、ステップS504又はステップS603の後でなくてもよい。
【0242】
判定部76が公差判定を実行しないと判定した場合(ステップS701でNoの場合)、ステップS505又はステップS603に移行する。判定部76が公差判定を実行すると判定した場合(ステップS701でYesの場合)、ステップS702に移行する。ステップS702では、判定部76は、処理設定テーブルTb3を参照して、端数処理対象の一次幾何要素データに対応する設計値及び公差を取得する。さらに詳しくは、判定部76は、設計値及び公差が処理設定テーブルTb3の設計値欄T38及び公差欄T39に格納されている、設計値及び公差を取得する。また、処理設定テーブルTb3とは別途設けられたデータベースに各一次幾何要素データと対応付けて設計値と公差とが記憶され、判定部76が当該データベースを参照することで設計値と公差とを取得してもよい。さらには、判定部76は、インターネット等に接続されたクラウドに保存されている設計値及び公差を取得してもよい。
【0243】
例えば、ワークWが工業製品の場合、パイプ、鋼材、鋼板、ベアリング等は、公共機関が定めた工業規格等によって規格が決められた汎用品が用いられる場合が多い。このような汎用品を用いる場合には、工業規格を定めた機関によって、インターネットに接続されたクラウドに設計値及び公差が公開されている場合がある。このような場合、判定部76は、クラウドから設計値及び公差を取得してもよい。
【0244】
ステップS702で判定部76が設計値及び公差を取得した後、ステップS703に移行する。ステップS703では、判定部76は、現在の一次幾何要素データと設計値との差分値を算出する。さらに詳しく説明すると、判定部76は、一次幾何要素データの端数処理対象の特徴値と、この特徴値と対応する設計値との差分値を求める。
【0245】
ステップS704では、判定部76は、差分値が公差よりも大きいか否かを判定する。判定部76によって差分値が公差以下と判定された場合(ステップS704でNoの場合)、判定部76によって、ワークWの一次幾何要素データが示す形状が、設計値(ユーザが所望する形状)と一致しているものと判断される。換言すると、一次幾何要素データを差分処理して変換することでユーザの設計意図を反映したCADデータを生成可能であると判定する。そして、ステップS505又はステップS603に移行して、端数処理を実行する。
【0246】
一方、判定部76によって差分値が公差よりも大きいと判定された場合(ステップS704でYesの場合)、ステップS511に移行する。ここでは、判定部76によって差分値が公差以下と判定された場合に、一次幾何要素データに対して端数処理を行う場合を説明したが、これに限定されるものではない。上述の通り、ユーザの設計意図や関心領域に応じて、判定部76によって差分値が公差よりも大きいと判定された場合に、一次幾何要素データに対して端数処理を行ってもよい。
【0247】
端数処理部74が、第1端数処理及び第2端数処理の一方を実行した後、判定部76が、許容度に基づく有効性の判定又は公差に基づく有効性の判定で有効ではないと判定した場合、端数処理部74が、他方の端数処理を実行するようにしてもよい。このようにすることで、端数処理後の二次幾何要素データをユーザの設計意図により近づけることができる。
【0248】
例えば、有効桁数を2桁とした場合、二次幾何要素データの寸法の基準値は0.01mmとなる。部材の設計図を作成するときの最小単位が、マイクロメータを用いる場合は0.01であり、ノギスを用いる場合は0.05というように、異なる最小単位のCADデータが存在する場合がある。そのため、許容度に基づく有効性を判定し、有効と判定された端数処理を実行することで、製造に適した、すなわち、より設計意図に合った二次幾何要素データ及び二次CADデータをユーザに提供することができる。また、公差による判定を実行することで、二次CADデータと設計図とを近づけることができる。これにより、ワークWの幾何要素が、設計図に対してどの程度再現されているかの確認を正確に実行できる。
【0249】
また、メッシュデータから抽出された一次幾何要素データもCADデータに変換することができる。これにより、例えば、ワークWの製造誤差、使用による変形等の定量化、変形、摩耗等の原因の究明といった設計図に直接利用する以外のリバースエンジニアリングが実行できる。
【0250】
また、三次元測定装置1等で取得したメッシュデータから予めきめられた基本形状と一致又は類似する幾何要素データを抽出し、そのデータの端数処理を実行した後にCADデータに変換することができる。これにより、メッシュデータから抽出した幾何要素データに対して設計意図を反映させることができる。
【0251】
本実施形態において、端数処理前の幾何要素データが一次幾何要素データとして記憶部54に保持されるとともに、端数処理部74は一次幾何要素データを記憶部54に保持しつつ、一次幾何要素データを複製し、複製した一次幾何要素データに対して端数処理を実行して二次幾何要素データを生成する。
【0252】
このような構成とすることで、端数処理を実施する前の一次幾何要素データを残しつつ、端数処理を実施した二次幾何要素データを取得することができる。これにより、端数処理を実行して二次幾何要素データを作成したとしても、端数処理前の一次幾何要素データが保持される。そのため、端数処理前の一次幾何要素データを用いて測定対象のワークWの設計データに対する誤差、ひずみ等の変形状態を容易に確認できる。
【0253】
本実施形態において、変換部77は、一次幾何要素データを変換した一次CADデータの生成、及び、二次幾何要素データを変換した二次CADデータの生成が可能である。
【0254】
これにより、実際に測定したワークWの形状を再現した一次CADデータの生成ができるとともに、ユーザの設計意図が反映された二次CADデータの生成ができる。例えば、一次CADデータと設計図とを比較することで、ワークWの製造誤差、使用による変形等の定量化、変形、摩耗等の原因の究明といった解析が実行できる。また、端数処理によって一定の範囲内に収まる製造誤差が吸収された二次幾何要素データを変換した二次CADデータは、設計図としての利用が容易である。これにより、再現したい構成に適したCADデータを出力可能であり、ユーザの利便性を高めることができる。
【0255】
本実施形態では、端数処理部74は、一次幾何要素データに対して、有効桁数が、測定時の有効桁数である第1有効桁数よりも粗い処理有効桁数となるように端数処理を実行した二次幾何要素データを取得できる。
【0256】
このように端数処理を実行することで、一次幾何要素データに含まれる一定の範囲内に収まる製造誤差等のわずかな誤差を吸収し、一次幾何要素データに対して設計意図を反映させた二次幾何要素データを取得することできる。
【0257】
本実施形態において、表示制御部75は、第2有効桁数で表示部51にワークWの三次元形状を表示する。端数処理部74は、一次幾何要素データに対して、有効桁数が、第2有効桁数よりも粗い処理有効桁数となるように、端数処理した二次幾何要素データを取得できる。
【0258】
このように端数処理を実行することで、一次幾何要素データに含まれる一定の範囲内に収まる製造誤差等のわずかな誤差を吸収し、一次幾何要素データに対して設計意図を反映させた二次幾何要素データを取得することできる。
【0259】
本実施形態において、受付部72は、設計値と公差の設定を受け付けることができる。端数処理部74は、一次幾何要素データと設計値との差分値と公差とに基づいて、端数処理を実行するか否かを判定する。設計値との公差に応じて端数処理の有無を切り替えることができる。
【産業上の利用可能性】
【0260】
本発明によると、三次元形状を計測したデータからCAD図面を作成するリバースエンジニアリングを支援するリバースエンジニアリング支援装置に利用することができる。
【符号の説明】
【0261】
1 三次元測定装置
2 測定部
3 ライトガイド
4 コントローラ
5 情報処理端末
7 リバースエンジニアリング支援装置
21 ステージ
211 ステージプレート
212 ステージベース
22 回転駆動部
23、23a、23b 撮像部
231 受光レンズ
232 撮像素子
24 投光部
241 投光用光源
242 コレクタレンズ
243 パターン生成ユニット
244 投光レンズ
25 テクスチャ照明出射部
26 制御基板
27 ベース筐体
41 テクスチャ光源
42 制御基板
43 電源
51 表示部
52 キーボード
53 マウス
54 記憶部
55 CPU
56 三次元データ生成部
61 選択画面
62 三次元表示画面
63 処理条件入力画面
71 データ取得部
72 受付部
73 抽出部
74 端数処理部
75 表示制御部
76 判定部
77 変換部
78 出力部
511 選択画面
611 ワーク表示領域
612 基本形状選択領域
613 計測要素表示領域
614 幾何要素データ表示領域
615 形状選択キー
616 チェックボックス
617 カーソル
618 完了キー
619 キャンセルキー
621 基本計測要素表示領域
622 CAD変換対象表示領域
623 第1の要素表示キー
624 第2の要素表示キー
625 選択欄
626 単位入力部
627 有効桁数入力部
628 OKキー
629 キャンセルキー
631 識別名表示部
632 処理指示入力部
632a チェックボックス
633 基準入力部
634 桁条件指定部
634a チェックボックス
634b 桁条件指定ボックス
634c 桁数入力ボックス
635 基準値入力部
635a チェックボックス
635b 基準値入力ボックス
636 許容度入力部
636a チェックボックス
636b 許容度入力ボックス
637 公差判定指示入力部
637a チェックボックス
637b 公差入力ボックス
638 OKキー
639 キャンセルキー
641 識別名欄
642 特徴部分欄
643 特徴値欄
644 単位欄
FP 焦点位置
J1 受光軸
J11、J12 受光軸
J2 投光軸
J4 回転軸
PC 汎用
R1、R2 測定可能領域
Rc 長方形
Tb0 基本形状一覧表
Tb1 参照テーブル
Tb3 処理設定テーブル
W ワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23