(57)【特許請求の範囲】
【請求項１】
点の集合として対象物の表面形状モデルを記述する点群データを大域的な位相幾何学的情報を有する位相幾何データに変換するについて、前記点群データから幾何学的な特徴形状の面要素をフィーチャとして抽出し、そのフィーチャに基づいて前記位相幾何データを生成させる表面形状データ変換方法において、
前記フィーチャの抽出は、前記点群データの前記点に対して任意に指定したシード点から領域を拡張しながら抽出対象のフィーチャを含むフィーチャ包含面に属するフィーチャ包含面所属点を前記点群データから探索することで前記フィーチャ包含面を求める過程、前記フィーチャ包含面について境界を求める過程、および前記過程で求めた境界に沿って前記フィーチャ包含面をトリミングして前記フィーチャを切り出す過程を含んでおり、
前記フィーチャ包含面所属点の探索は、当該時点までに求められたフィーチャ包含面に隣接している点である隣接点を前記点群データから探索とするとともに、探索された隣接点が所定の所属条件を満たすことを条件に当該隣接点を新たなフィーチャ包含面所属点とするようにしてなすようにされ、
前記フィーチャ包含面の境界は、前記所属条件を満たす点に隣接し、かつ前記所属条件を満たさない点を探索することで求めるようにされていることを特徴とする表面形状データ変換方法。
【請求項２】
点の集合として対象物の表面形状モデルを記述する点群データを大域的な位相幾何学的情報を有する位相幾何データに変換するについて、前記点群データから幾何学的な特徴形状の面要素をフィーチャとして抽出し、そのフィーチャに基づいて前記位相幾何データを生成させる表面形状データ変換方法において、
前記フィーチャの抽出は、前記点群データの前記点に対して任意に指定したシード点から領域を拡張しながら抽出対象のフィーチャを含むフィーチャ包含面に属するフィーチャ包含面所属点を前記点群データから探索することで前記フィーチャ包含面を求める過程、前記フィーチャ包含面について境界を求める過程、および前記過程で求めた境界に沿って前記フィーチャ包含面をトリミングして前記フィーチャを切り出す過程を含んでおり、
前記フィーチャ包含面を求める過程は、抽出対象とする複数のフィーチャのそれぞれについて前記シード点を一括的に指定する過程、前記過程でシード点を一括的に指定された複数のフィーチャのそれぞれについて前記フィーチャ包含面を求める過程を含んでおり、 前記フィーチャ包含面所属点の探索は、当該時点までに求められたフィーチャ包含面に隣接している点である隣接点を前記点群データから探索とするとともに、探索された隣接点が所定の所属条件を満たすことを条件に当該隣接点を新たなフィーチャ包含面所属点とするようにしてなすようにされ、
前記フィーチャ包含面の境界は、前記所属条件を満たす点に隣接し、かつ前記所属条件を満たさない点を探索することで求めるようにされていることを特徴とする表面形状データ変換方法。
【請求項３】
点の集合として対象物の表面形状モデルを記述する点群データを大域的な位相幾何学的情報を有する位相幾何データに変換するについて、前記点群データから幾何学的な特徴形状の面要素をフィーチャとして抽出し、そのフィーチャに基づいて前記位相幾何データを生成させる表面形状データ変換装置において、
前記フィーチャの抽出を行うフィーチャ定義手段を備え、
前記フィーチャ定義手段は、前記点群データの前記点に対して任意に指定されたシード点から領域を拡張しながら抽出対象のフィーチャを含むフィーチャ包含面に属するフィーチャ包含面所属点を前記点群データから探索することで前記フィーチャ包含面を求めるフィーチャ包含面定義手段、および前記フィーチャ包含面について境界を求め、その求めた境界に沿って前記フィーチャ包含面をトリミングして前記フィーチャを切り出すトリミング手段を備え、
前記フィーチャ包含面定義手段による前記フィーチャ包含面所属点の探索は、当該時点までに求められたフィーチャ包含面に隣接している点である隣接点を前記点群データから探索とするとともに、探索された隣接点が所定の所属条件を満たすことを条件に当該隣接点を新たなフィーチャ包含面所属点とするようにしてなすようにされ、
前記トリミング手段は、前記所属条件を満たす点に隣接し、かつ前記所属条件を満たさない点を探索することで前記フィーチャ包含面の境界を求めるようにされていることを特徴とする表面形状データ変換装置。
【請求項４】
点の集合として対象物の表面形状モデルを記述する点群データを大域的な位相幾何学的情報を有する位相幾何データに変換するについて、前記点群データから幾何学的な特徴形状の面要素をフィーチャとして抽出し、そのフィーチャに基づいて前記位相幾何データを生成させる表面形状データ変換装置において、
前記フィーチャの抽出を行うフィーチャ定義手段を備え、
前記フィーチャ定義手段は、前記点群データの前記点に対して任意に指定されたシード点から領域を拡張しながら抽出対象のフィーチャを含むフィーチャ包含面に属するフィーチャ包含面所属点を前記点群データから探索することで前記フィーチャ包含面を求めるフィーチャ包含面定義手段、および前記フィーチャ包含面について境界を求め、その求めた境界に沿って前記フィーチャ包含面をトリミングして前記フィーチャを切り出すトリミング手段を備え、
前記フィーチャ包含面定義手段は、抽出対象とする複数のフィーチャのそれぞれについて前記シード点を一括的に指定できるようにされるとともにそのシード点を一括的に指定された複数のフィーチャのそれぞれについて前記フィーチャ包含面を求めるようにされ、 前記フィーチャ包含面定義手段による前記フィーチャ包含面所属点の探索は、当該時点までに求められたフィーチャ包含面に隣接している点である隣接点を前記点群データから探索とするとともに、探索された隣接点が所定の所属条件を満たすことを条件に当該隣接点を新たなフィーチャ包含面所属点とするようにしてなすようにされ、
前記トリミング手段は、前記所属条件を満たす点に隣接し、かつ前記所属条件を満たさない点を探索することで前記フィーチャ包含面の境界を求めるようにされていることを特徴とする表面形状データ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の立体形状における表面形状を表す表面形状モデルの作成に関し、特に表面形状モデルを記述している点群データを操作性や利用性の高いＢ−ｒｅｐｓデータのような位相幾何データに変換する表面形状データの変換に関する。
【背景技術】
【０００２】
対象物の立体形状を計測してその表面形状を記述するデータ（表面形状モデル）を生成するには、Ｘ線ＣＴ装置、表面計測プローブ、レーザ計測機、ＣＣＤカメラなどの３次元計測装置（３次元ディジタイザ）が用いられる。これらの３次元計測装置のなかで、Ｘ線ＣＴ装置は局所的なセルの集合であるビットマップデータを出力し、それ以外の装置は局所的な点の集合である点群データを出力する。これらビットマップデータや点群データは、表面形状についての局所的な情報を持つだけで大域的な位相幾何学的情報を持っていない。一方、表面形状を記述するデータ形式として、一般のＣＡＤにおけるデータ形式がある。このＣＡＤにおけるデータ形式は、「Ｂ−ｒｅｐｓ」（Boundary-representations：境界表現）と呼ばれ、大域的な位相幾何学的情報を持つ位相幾何データであり、操作性や利用性においてビットマップデータや点群データよりも優れている。こうしたことから、３次元計測装置による計測で得られたビットマップデータや点群データを位相幾何データ、具体的にはＢ−ｒｅｐｓデータに変換して操作性や利用性を高めることが行われている。
【０００３】
ビットマップデータや点群データのように大域的な位相幾何学的情報を有しない表面形状データをＢ−ｒｅｐｓデータのように大域的な位相幾何学的情報を有する位相幾何データ形式の表面形状データに変換する技術としては、例えば特許文献１や特許文献２に記載される例が代表的なものとして知られている。これらの表面形状データ変換技術では、変換対象の表面形状データから幾何学的な特徴形状の面要素（幾何学的に定義された平面や円柱面あるいは球面などの面要素）をフィーチャとして抽出し、そのフィーチャについての情報とフィーチャ間の位相情報から大域的な位相幾何学的情報を生成させてＢ−ｒｅｐｓデータへの変換を行う。この手法を仮にフィーチャ抽出法と呼ぶとして、フィーチャ抽出法では、変換対象の表面形状データにシード点を指定し、そのシード点から所定の条件の下で順次領域を探索して拡張しながら抽出すべきフィーチャを含む面であるフィーチャ包含面をまず求め、それからそのフィーチャ包含面を抽出すべきフィーチャの輪郭に沿ってトリミングしてフィーチャを抽出する。こうした一連の処理において従来のフィーチャ抽出法では、フィーチャ包含面からのフィーチャのトリミングを利用者によるマニュアル操作で行うようになっている。
【０００４】
図１３に示すのは、フィーチャ抽出法においてフィーチャ包含面からフィーチャをトリミングする操作の様子である。表示画面には変換対象の表面形状データＭがポリゴンデータ形式で表示されており、この表面形状データＭに利用者が指定したシード点（図示せず）からの領域拡張でフィーチャ包含面ＩＦが求められ、そのフィーチャ包含面ＩＦが表面形状データＭに重ねられて表示される。この状態で利用者は、抽出すべきフィーチャの輪郭の見当を表面形状データＭから付け、その見当付けした輪郭上に複数のトリミング点Ｔを指定する。これを受けて表面形状データ変換システムがフィーチャＦをフィーチャ包含面ＩＦから切り出すことでフィーチャの抽出がなされる。
【０００５】
【特許文献１】特開２００２−２３００５６号公報
【特許文献２】特開２００４−４６５４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のフィーチャ抽出法では、上述のようにフィーチャを抽出するについてフィーチャ包含面からマニュアル操作でフィーチャをトリミングする処理を必要としており、そのトリミング処理では利用者が抽出すべきフィーチャについて輪郭の見当付けをして複数のトリミング点を指定する必要がある。このため従来のフィーチャ抽出法では利用者に大きな負担を強いる結果になっていた。すなわち表面形状データ変換の対象物が複雑な構造の機械部品などである場合には抽出すべきフィーチャの数が数千といった膨大な数に達することも少なくなく、マニュアル操作によるトリミング処理は利用者にとって大きな負担となる。
【０００７】
またマニュアル操作によるトリミング処理は、膨大な数のフィーチャの抽出を個々に行う必要性を招くことにもなっていた。すなわちマニュアル操作によるトリミング処理を行う必要があることから、シード点の指定、フィーチャ包含面の抽出、フィーチャ包含面からのフィーチャのトリミングという一連の処理を個々のフィーチャごとに行わねばならず、このことも利用者に大きな負担を強いる結果になっていた。
【０００８】
本発明は、以上のような事情を背景になされたものであり、フィーチャ抽出法による表面形状データ変換について、フィーチャの抽出に伴うトリミングを自動的に行えるようにすることで、利用者の操作負担をより少なくできるようにすることを第１の目的とし、またその自動トリミングにより、複数のフィーチャの一括的な抽出を可能とすることで、利用者の操作負担をさらに少なくできるようにすることを第２の目的としている。
【課題を解決するための手段】
【０００９】
本発明では上記第１の目的のために、点の集合として対象物の表面形状モデルを記述する点群データを大域的な位相幾何学的情報を有する位相幾何データに変換するについて、前記点群データから幾何学的な特徴形状の面要素をフィーチャとして抽出し、そのフィーチャに基づいて前記位相幾何データを生成させる表面形状データ変換方法において、前記フィーチャの抽出は、前記点群データの前記点に対して任意に指定したシード点から領域を拡張しながら抽出対象のフィーチャを含むフィーチャ包含面に属するフィーチャ包含面所属点を前記点群データから探索することで前記フィーチャ包含面を求める過程、および前記フィーチャ包含面について求めた境界に沿って前記フィーチャ包含面をトリミングして前記フィーチャを切り出す過程を含んでいることを特徴としている。
【００１０】
また本発明では上記第２の目的のために、点の集合として対象物の表面形状モデルを記述する点群データを大域的な位相幾何学的情報を有する位相幾何データに変換するについて、前記点群データから幾何学的な特徴形状の面要素をフィーチャとして抽出し、そのフィーチャに基づいて前記位相幾何データを生成させる表面形状データ変換方法において、  前記フィーチャの抽出は、前記点群データの前記点に対して任意に指定したシード点から領域を拡張しながら抽出対象のフィーチャを含むフィーチャ包含面に属するフィーチャ包含面所属点を前記点群データから探索することで前記フィーチャ包含面を求める過程、および前記フィーチャ包含面について求めた境界に沿って前記フィーチャ包含面をトリミングして前記フィーチャを切り出す過程を含んでおり、そして前記フィーチャ包含面を求める過程は、抽出対象とする複数のフィーチャのそれぞれについて前記シード点を一括的に指定する過程、前記過程でシード点を一括的に指定された複数のフィーチャのそれぞれについて前記フィーチャ包含面を求める過程を含んでいることを特徴としている。
【００１１】
また本発明では上記第１の目的のために、点の集合として対象物の表面形状モデルを記述する点群データを大域的な位相幾何学的情報を有する位相幾何データに変換するについて、前記点群データから幾何学的な特徴形状の面要素をフィーチャとして抽出し、そのフィーチャに基づいて前記位相幾何データを生成させる表面形状データ変換装置において、  前記フィーチャの抽出を行うフィーチャ定義手段を備えており、前記フィーチャ定義手段は、前記点群データの前記点に対して任意に指定されたシード点から領域を拡張しながら抽出対象のフィーチャを含むフィーチャ包含面に属するフィーチャ包含面所属点を前記点群データから探索することで前記フィーチャ包含面を求めるフィーチャ包含面定義手段、および前記フィーチャ包含面について求めた境界に沿って前記フィーチャ包含面をトリミングして前記フィーチャを切り出すトリミング手段を備えていることを特徴としている。
【００１２】
また本発明では上記第２の目的のために、点の集合として対象物の表面形状モデルを記述する点群データを大域的な位相幾何学的情報を有する位相幾何データに変換するについて、前記点群データから幾何学的な特徴形状の面要素をフィーチャとして抽出し、そのフィーチャに基づいて前記位相幾何データを生成させる表面形状データ変換装置において、  前記フィーチャの抽出を行うフィーチャ定義手段を備えており、前記フィーチャ定義手段は、前記点群データの前記点に対して任意に指定されたシード点から領域を拡張しながら抽出対象のフィーチャを含むフィーチャ包含面に属するフィーチャ包含面所属点を前記点群データから探索することで前記フィーチャ包含面を求めるフィーチャ包含面定義手段、および前記フィーチャ包含面について求めた境界に沿って前記フィーチャ包含面をトリミングして前記フィーチャを切り出すトリミング手段を備え、そして前記フィーチャ包含面定義手段は、抽出対象とする複数のフィーチャのそれぞれについて前記シード点を一括的に指定できるようにされるとともにそのシード点を一括的に指定された複数のフィーチャのそれぞれについて前記フィーチャ包含面を求めるようにされていることを特徴としている。
【発明の効果】
【００１３】
本発明によれば、フィーチャ抽出法による表面形状データ変換について、フィーチャの抽出に伴うトリミングが自動的になされ、利用者の操作負担をより少なくすることができ、またその自動トリミング機能により、複数のフィーチャの一括的な抽出を行えるようにしているので、利用者の操作負担をさらに少なくすることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施するための形態について説明する。図１に、一実施形態による表面形状データ変換装置の構成を示す。本実施形態の表面形状データ変換装置は、入力された点群データＤ１またはビットマップデータＤ２をＢ−ｒｅｐｓデータに変換して出力する。そのために、ビットマップデータ／点群データ変換手段Ｃ１、点群データ記憶手段Ｃ２、フィーチャ記憶手段Ｃ３、入力手段Ｃ４、フィーチャ定義手段Ｃ５、位相関係定義手段Ｃ６、フィーチャ選択手段Ｃ７、拘束関係定義手段Ｃ８、Ｂ−ｒｅｐｓデータ構成手段Ｃ９、コーナー定義手段Ｃ１０、コーナー選択手段Ｃ１１、基準部位指定手段Ｃ１２、シード点指定手段Ｃ１３および表示手段Ｃ１４を備えている。
【００１５】
ビットマップデータ／点群データ変換手段Ｃ１は、ビットマップデータＤ２を点群データに変換して点群データ記憶手段Ｃ２に出力する。すなわち表面形状データ変換装置は、変換対象の表面形状データとして点群データＤ１とビットマップデータＤ２を扱えるものの、データ変換処理は点群データに対して行うようにされ、変換対象の表面形状データとして点群データＤ１が入力された場合、その点群データＤ１はそのまま点群データ記憶手段Ｃ２に格納し、一方、変換対象の表面形状データとしてビットマップデータＤ２が入力された場合、そのビットマップデータＤ２をビットマップデータ／点群データ変換手段Ｃ１で点群データＤ１に変換して点群データ記憶手段Ｃ２に格納する。なお、点群データの表示手段Ｃ１４への表示は、ポリゴンデータの形式で行われる。したがって、表面形状データ変換装置は、予めポリゴンデータ化されている表面形状データも扱うことができる。
【００１６】
点群データ記憶手段Ｃ２は、メモリやハードディスクなどで構成されており、点群データを記憶して必要な時に出力する機能を持ち、入力された点群データＤ１またはビットマップデータ／点群データ変換手段Ｃ１でビットマップデータＤ２から生成された点群データＤ１を記憶する。
【００１７】
フィーチャ記憶手段Ｃ３は、同様にメモリやハードディスクなどで構成されており、変換対象の表面形状データである点群データから後述のようにして抽出されるフィーチャについてフィーチャデータ１８を記憶して必要な時に出力する機能を持つ。ここで、フィーチャとは、上述のように、平面や円柱面あるいは球面などの幾何学的な特徴形状として変換対象の表面形状データから抽出される面要素である。幾何学的な特徴形状の面を定義するには、平面や円柱面といった形態（形状）の分類を表す種別情報と、それらの形態を詳細に規定する特徴量が必要である。したがってフィーチャは、種別情報と特徴量、および点群データを構成する点の内で当該フィーチャに属する点（フィーチャ所属点）の集合で定義される。またフィーチャデータ１８には、フィーチャ所属点の集合、フィーチャ包含面の求め方の分類を表す領域選択法、フィーチャの種別情報、フィーチャの特徴量に関する項目などが記述されている。
【００１８】
入力手段Ｃ４は、キーボードやマウスで構成され、利用者が必要なコマンドなどの入力操作をするのに用いられる。入力される主なコマンドとしては、コーナー定義コマンドＤ３、コーナー選択コマンドＤ４、基準部位指定コマンドＤ５、フィーチャ定義コマンドＤ６、フィーチャ選択コマンドＤ７、拘束関係定義コマンドＤ８、Ｂ−ｒｅｐｓデータ構成コマンドＤ９などがある。
【００１９】
フィーチャ定義手段Ｃ５は、フィーチャ包含面定義手段Ｃ１５、トリミング手段Ｃ１６、および特徴量定義手段Ｃ１７を含んでおり、変換対象の点群データに対してフィーチャを定義する、つまり変換対象の点群データからフィーチャを抽出する。フィーチャ定義手段Ｃ５によるフィーチャの抽出は、フィーチャ包含面定義手段Ｃ１５がフィーチャ包含面を点群データから求めてフィーチャ包含面データＤ１６を出力する過程と、求めたフィーチャ包含面からトリミング手段Ｃ１６がトリミングによりフィーチャを切り出してフィーチャ所属点群データ１７をフィーチャ記憶手段Ｃ３に送る過程を含む。そして抽出されたフィーチャについて特徴量定義手段Ｃ１７が特徴量を定義してフィーチャ特徴量データＤ２０をフィーチャ記憶手段Ｃ３に送る。
【００２０】
フィーチャ包含面とは、抽出対象のフィーチャを含む面、つまり抽出対象のフィーチャと同じ種別で境界（輪郭）が不確定な面であり、点群データの点に対して任意に指定したシード点から順次領域を拡張しながらフィーチャ包含面に属するフィーチャ包含面所属点を点群データから探索することで求められる。
【００２１】
こうしたフィーチャの抽出は、フィーチャ定義コマンドＤ６とシード点の指定を受けて行われる。フィーチャ定義コマンドＤ６は、領域選択法とフィーチャの種別情報を利用者が指定するためのコマンドである。シード点の指定は、シード点指定手段Ｃ１３を用いて利用者により行われ、シード点指定手段Ｃ１３からはシード点指定データＤ１３がフィーチャ定義手段Ｃ５に送られる。
【００２２】
位相関係定義手段Ｃ６は、抽出したフィーチャ間の接続関係から各フィーチャ間の位相関係を決定し、その結果をフィーチャ位相関係データＤ２１としてフィーチャ記憶手段Ｃ３に送って記憶させる。
【００２３】
フィーチャ選択手段Ｃ７は、フィーチャ選択コマンドＤ７を受け、選択フィーチャデータＤ１４をフィーチャ記憶手段Ｃ３に送り、利用者が選択したフィーチャをフィーチャ記憶手段Ｃ３に記憶させる。選択フィーチャデータＤ１４は、利用者が選択したフィーチャを記述するデータである。
【００２４】
拘束関係定義手段Ｃ８は、拘束関係定義コマンドＤ８を受け、フィーチャ拘束関係定義データＤ１５をフィーチャ記憶手段Ｃ３に送って記憶させる。フィーチャ拘束関係定義データＤ１５は、フィーチャの組み合わせを指定し、その幾何学的な拘束関係を記述するデータである。
【００２５】
Ｂ−ｒｅｐｓデータ構成手段Ｃ９は、大域的な位相幾何学的情報を有する位相幾何データであるＢ−ｒｅｐｓデータを生成する位相幾何データ構成手段であり、抽出された全てのフィーチャとそれらの位相関係に基づいてＢ−ｒｅｐｓデータＤ１９を生成させる。Ｂ−ｒｅｐｓデータ構成手段Ｃ９によるＢ−ｒｅｐｓデータＤ１９の生成は、Ｂ−ｒｅｐｓデータ構成コマンドＤ９を受けてなされる。
【００２６】
コーナー定義手段Ｃ１０は、コーナー定義コマンドＤ３を受けてコーナー定義データＤ１１を点群データ記憶手段Ｃ２に送り、利用者が選択したコーナー位置に対応する点のコーナー属性を有効にして（例えば、コーナー属性＝１にして）、点群データ記憶手段Ｃ２に記憶させる。コーナー定義データＤ１１は、利用者が指定したコーナーの位置を記述するデータである。
【００２７】
コーナー選択手段Ｃ１１は、コーナー選択コマンドＤ４を受けて選択コーナーデータＤ１１を点群データ記憶手段Ｃ２に送り、利用者が選択したコーナーを点群データ記憶手段Ｃ２に記憶させる。選択コーナーデータＤ１１は、利用者が選択したコーナーの位置を記述するデータである。
【００２８】
基準部位指定手段Ｃ１２は、基準部位指定コマンドＤ５を受けて基準部位座標変換データＤ１２を点群データ記憶手段Ｃ２に送り、利用者が指定した基準部位が予め決められた向きとなるように、点群データ記憶手段Ｃ２に点群データＤ１を座標変換させる。基準部位座標変換データＤ１２は、利用者が指定した基準部位が予め決められた向きとなるような座標変換を記述するデータである。
【００２９】
シード点指定手段Ｃ１３は、フィーチャ包含面を点群データに対して求める際のシード点を点群データに利用者が指定するのに用いられ、抽出対象とする複数のフィーチャのそれぞれについてシード点を一括的に指定できるようにされている。複数のフィーチャに対するシード点の一括的指定は、フィーチャの種別を単位として行うことも可能であり、また種別の異なるフィーチャについても一括的指定を行うことも可能である。
【００３０】
表示手段Ｃ１４は、後述するようなデータ変換処理過程でなされる利用者による操作で必要な各種データなどを所定の様式で表示する機能を持ち、点群データの表示は、上述のようにポリゴンデータの形式で行われる。
【００３１】
以上が表面形状データ変換装置の構成である。以下では表面形状データ変換装置における処理の内容を説明する。なお、表面形状データ変換装置における処理は３次元のデータに対して行われるのが通常であるが、ここでは理解を容易にするために２次元のデータを例にして説明する。但し、説明における用語は３次元データの処理における用語としてある。図２に表面形状データ変換装置でなされる表面形状データ変換処理の流れを示す。
【００３２】
変換対象のデータとしてビットマップデータＤ２が入力された場合、まずステップＰ１（ビットマップデータ／点群データ変換過程）として、ビットマップデータ／点群データ変換手段Ｃ１によるビットマップデータＤ２の点群データＤ１への変換がなされる。ビットマップデータＤ２は、対象物の内部形状も含むデータであるので、そこから表面形状データだけを取り出すことで点群データに変換する。その変換は、対象物の表面のすぐ内側に位置するセルの中心点を求める方法（第１の変換方法）と対象物の表面を挟んで隣接する２つのセルの中心点を求める方法（第２の変換方法）の何れかで行うことができる。
【００３３】
図３に示すのは、ビットマップデータＤ２の例である。（ａ）はビットマップデータＤ２の全体図を示し、（ｂ）はビットマップデータＤ２の一部を拡大して示している。ビットマップデータＤ２は、直交格子に沿って配列した細かい立方体の領域によって構成されており、各領域は「セル」と呼ばれる。個々のセルは、その中心点が対象物の立体形状の内部か外部のどちらであるかを表す情報を有する。図３では、ハッチングを付けたセルが立体形状の内部であることを示し、ハッチングのないセルが立体形状の外部であることを示している。
【００３４】
図４に、図３（ｂ）のビットマップデータＤ２から点群データＤ１を求めた例を示す。（ａ）は第１の変換方法で変換した例であり、（ｂ）は第２の変換方法で変換した例である。図４で●印が点群データＤ１における点に対応している。この変換によって得られる点群データＤ１は、点群データ記憶手段Ｃ２に記憶される。
【００３５】
第１の変換方法を用いて図３（ａ）のビットマップデータＤ２から得られる点群データＤ１の例を図５に示す。（ａ）は点群データＤ１の全体を示し、（ｂ）は（ａ）におけるＡ部を拡大して示す。
【００３６】
点群データＤ１のデータ構成(構造）例を図６に示す。図６は、図５の(ｂ）における３つの点ａ、ｂ、ｃに関する点群データのデータ構成を示す。点群データＤ１は、個々の点を記述する点レコードＱの集合である。点レコードＱは、座標レコードＱ１、コーナーフラグレコードＱ２、点選択フラグレコードＱ３を有する。
【００３７】
座標レコードＱ１には、各点の座標が記述される。図６では、３つの点ａ、ｂ、ｃの座標として、（Ｘａ、Ｙａ、Ｚａ）、（Ｘｂ、Ｙｂ、Ｚｂ）、（Ｘｃ、Ｙｃ、Ｚｃ）が記述されている。
【００３８】
コーナーフラグレコードＱ２には、各点がコーナー位置にあるかないかを示すフラグが記述される。図６では、点ａ及びｃに対してはコーナー位置にないことを示すフラグ０（無効）が記述され、点ｂに対してはコーナー位置にあることを示すフラグ１（有効）が記述されている。
【００３９】
点選択フラグレコードＱ３には、コーナーまたは点が選択されているかいないかを示すフラグが記述される。図６では、点ａ及びｂに対しては選択されていないことを示すフラグ０（無効）が記述され、点ｃに対しては選択されていることを示すフラグ１（有効）が記述されている。
【００４０】
図２のステップＰ２（基準部位指定過程）では、基準部位の指定処理がなされる。基準部位指定処理では、基準部位指定手段Ｃ１２が点群データＤ１を表示手段Ｃ１４に表示し、基準部位を指定するかどうかを利用者に問い合わせる。利用者は、表示手段Ｃ１４に表示された点群データＤ１の中から基準部位としたい点（点群）を入力手段Ｃ４により選択することで基準部位を指定する。
【００４１】
表示手段Ｃ１４に表示される画面で基準部位指定処理を進める様子の例を図７に示す。図７の例では表示画面の左側にメニュー画面Ｍ１が表示される。メニュー画面Ｍ１は、利用者が指定可能な複数のコマンドを含んでいる。基準部位指定処理では「基準部位指定」コマンドが選択的に強調表示されている。選択的な強調表示は、例えばカーソルの点滅表示で行う。利用者は、基準部位を指定する場合、メニュー画面Ｍ１上で強調表示されている「基準部位指定」をマウスでクリックする（選択する）。基準部位を指定しない場合には、例えば表示画面に表示された「次の処理」（図示せず）をマウスでクリックすることにより、ステップＰ３に進む。
【００４２】
「基準部位指定」が選択されると、点群データＤ１が表示画面の右側のデータ表示画面Ｍ２に表示される。利用者は、例えばマウスを用いて、表示画面Ｍ２に表示された点群データＤ１に対して、矢印カーソルをドラッグして領域Ｆ（点線で表示）を指定することにより、この領域内に含まれる点（点群）を基準部位として指定することができる。
【００４３】
この操作により、領域Ｆ内の点群ｄ１を基準部位とする基準部位指定コマンドＤ５が基準部位指定手段Ｃ１２に送られる。基準部位指定手段Ｃ１２は、基準部位に含まれる点の集合（点群ｄ１）を最もよく近似する平面を最小自乗法により求め、この平面が予め決められた向き（基準方向）となるように基準部位座標変換データＤ１２を決定する。基準方向は、水平方向、垂直方向などを予め決めておくか、予め利用者が指定する。
【００４４】
こうして求められた基準部位座標変換データＤ１２は、点群データ記憶手段Ｃ２に送られる。これを受けて、基準部位座標変換データＤ１２にしたがって点群データＤ１を座標変換した点群データ（座標変換後の点群データ）Ｄ１が点群データ記憶手段Ｃ２に保存されるとともに、座標変換後の点群データＤ１が表示手段Ｃ１４の表示画面に表示される。
【００４５】
以上のようにして基準部位が基準方向となるように座標変換された点群データＤ１を表示画面に表示することにより、利用者は、基準部位に対して垂直、平行などの関係にある部位を表示画面上で容易に認識することができる。これにより、後述のフィーチャ間の幾何学的拘束関係を指定する操作をより行い易くなる。
【００４６】
図２のステップＰ３（コーナー定義過程）では、点群データＤ１を表示手段Ｃ１４に表示するとともに、新しいコーナーを定義するかどうかを利用者に問い合わせる。利用者は、表示手段Ｃ１４に表示の点群データＤ１の中から新しいコーナーとしたい点を入力手段Ｃ４により選択することで新しいコーナーを定義する。
【００４７】
コーナー定義処理を進める様子の例を図８に示す。コーナー定義処理では、図８(ａ)に示すように、メニュー画面Ｍ１に表示された複数のコマンドのうち「コーナー定義」が強調表示されている。利用者は、新しいコーナーを定義する場合、メニュー画面Ｍ１上で「コーナー定義」をマウスでクリックする（選択する）。新しいコーナーを定義しない場合には、例えば表示画面に表示された「次の処理」（図示せず）をマウスでクリックすることにより、ステップＰ４に進む。
【００４８】
「コーナー定義」が選択されると、点群データＤ１がデータ表示画面Ｍ２に表示される。利用者は、データ表示画面Ｍ２に表示された点群データＤ１のうち利用者がコーナーであると判断した点（コーナー点）を選択することにより、その点をコーナーとして定義する。
【００４９】
コーナー点の選択は、一例として以下のようにして行われる。図８（ａ）は、利用者がコーナーであると判断した点（コーナー点）Ｄｃを含む領域Ｆ（点線で表示）をデータ表示画面Ｍ２上での矢印カーソルによるドラッグで指定している状態を示している。利用者は、領域Ｆを指定後、例えば表示画面に表示された「拡大」（図示せず）をマウスでクリックすることにより、図８（ｂ）が表示される。利用者は、図８（ｂ）のデータ表示画面Ｍ２上で矢印カーソルによりコーナー点Ｄｃを選択することで、この点をコーナーとして定義する。
【００５０】
この操作により、コーナー点Ｄｃをコーナーとして定義するコーナー定義コマンドＤ３がコーナー定義手段Ｃ１０に送られる。コーナー定義手段Ｃ１０は、コーナー定義コマンドＤ３に対応するコーナー定義データＤ１０を点群データ記憶手段Ｃ２に送り、点群データ記憶手段Ｃ２に保存されている点群データＤ１に対して、利用者が定義したコーナー位置と一致する点のコーナーフラグレコードＱ２を１（有効）にする。
【００５１】
図２のステップＰ４（フィーチャ定義過程）では、表示手段Ｃ１４に点群データＤ１を表示するとともに、定義済み（抽出済み）のフィーチャがある場合にはそのフィーチャデータを表示し、新しいフィーチャの定義を行うか否かを利用者に問い合わせる。利用者は、入力手段Ｃ４を用いてフィーチャ定義コマンドＤ６、具体的には領域選択法と種別情報を入力することで新しいフィーチャの定義を指示する。
【００５２】
領域選択についてはいくつかの方法が可能であるが、基本的にはシード点の指定によるシード点法を用いる。ここで、「シード点」は、フィーチャ包含面が最初に含む点のことである。
【００５３】
フィーチャの種別情報は、例えば、法線が既知の平面、法線が未知の平面、半径が既知の円柱面、半径が未知の円柱面、半径が既知の球面、半径が未知の球面、２次曲面、自由曲面、回転面などの幾何形状の中から選択する。
【００５４】
フィーチャ定義処理を進める様子の例を図９に示す。フィーチャ定義処理では、図９に示すように、メニュー画面Ｍ１に表示された複数のコマンドのうち「フィーチャ定義」が強調表示されている。利用者は、新しいフィーチャを定義する場合、メニュー画面Ｍ１上で「フィーチャ定義」をマウスでクリックする（選択する）。新しいフィーチャを定義しない場合には、例えば表示画面に表示された「次の処理」（図示せず）をマウスでクリックすることにより、ステップＰ５に進む。
【００５５】
「フィーチャ定義」が選択されると、指定することができる領域選択法と種別情報の一覧が画面の右側に表示される。すなわち、領域選択法が画面右側の上部に位置する選択情報画面（選択情報表示画面）Ｍ３に表示され、種別情報が画面右側の下部に位置する選択情報画面（選択情報表示画面）Ｍ４に表示される。なお領域選択法は、上述のようにシード点法を基本とするので、図の例では「シード点指定」だけが表示されている。
【００５６】
利用者は、選択情報画面Ｍ３に表示された領域選択法をマウスでクリックする（選択する）ことにより、新しいフィーチャの定義のための領域選択法を定義する。また、利用者は、選択情報画面Ｍ４に表示された複数の種別情報のうち１つをマウスでクリックする（選択する）ことにより、新しいフィーチャの種別情報を定義する。図９では、選択情報画面Ｍ４上で「半径が未知の円柱面」が選択された状態を示している。
【００５７】
この操作により、フィーチャ定義コマンドＤ６がフィーチャ定義手段Ｃ５に送られる。フィーチャ定義手段Ｃ５は、フィーチャ定義コマンドＤ６にしたがって１つまたは複数のフィーチャを一括的に定義してそれぞれのフィーチャデータＤ１８をフィーチャ記憶手段Ｃ３に送るとともに、各フィーチャの特徴量を定義してフィーチャ特徴量データＤ２０をフィーチャ記憶手段Ｃ３に送り、フィーチャ記憶手段Ｃ３に保存のフィーチャデータＤ１８を更新する。
【００５８】
フィーチャデータＤ１８のデータ構成（構造）例を図１０に示す。フィーチャデータＤ１８は、個々のフィーチャを記述するフィーチャレコードＲと個々の稜線を記述する稜線レコードＳの集合である。フィーチャレコードＲは、点群レコードＲ１、領域選択法レコードＲ２、種別情報レコードＲ３、特徴量レコードＲ４、位相情報レコードＲ５、フィーチャ選択レコードＲ６を有する。
【００５９】
点群レコードＲ１には、フィーチャに属する点が列記される。領域選択法レコードＲ２には、フィーチャの領域選択法が記述される。種別情報レコードＲ３には、フィーチャの種別情報が記述される。図１０の場合、フィーチャａは、点群レコードＲ１：点ａ１、ａ２、ａ３、…ａｐ、領域選択法レコードＲ２：シード点指定、種別情報レコードＲ３：法線が既知の平面、フィーチャｂは、点群レコードＲ１：点ｂ１、ｂ２、ｂ３、…ｂｑ、領域選択法レコードＲ２：シード点指定、種別情報レコードＲ３：法線が未知の平面である。
【００６０】
特徴量レコードＲ４には、フィーチャの幾何形状の形態を一意に規定するための特徴量が記述される。例えば種別情報が「法線が既知の平面」の場合、基準点を一つ定義すればフィーチャの幾何形状の形態を一意に規定できるので、特徴量レコードＲ４は基準点レコードを一つ持っていればよい。特徴量レコードＲ４の内容は、種別情報レコードＲ３に記述されたフィーチャの種別情報に応じて、次のように変わる。
【００６１】
（種別情報）        （特徴量レコードＲ４の内容）
法線が既知の平面  ：  基準点
法線が未知の平面  ：  基準点、単位法線ベクトル
半径が既知の円柱面：  中心軸の基準点、中心軸の単位方向ベクトル
半径が未知の円柱面：  中心軸の基準点、中心軸の単位方向ベクトル、半径
半径が既知の球面  ：  中心点
半径が未知の球面  ：  中心点、半径
２次曲面          ：  Ｘ、Ｙ、Ｚを元とする２次方程式の係数
自由曲面          ：  曲面の次数、制御点、ノット列
回転面            ：  中心軸の基準点、中心軸の単位方向ベクトル、母線
図１０の場合、フィーチャａの特徴量レコードＲ４は基準点レコードＲ４１：（Ｘａ、Ｙａ、Ｚａ）で、フィーチャｂの特徴量レコードＲ４は基準点レコードＲ４２：（Ｘｂ、Ｙｂ、Ｚｂ）と単位法線レコードＲ４３：（ＮＸｂ、ＮＹｂ、ＮＺｂ）である。
【００６２】
位相情報レコードＲ５には、フィーチャの境界を構成する稜線が記述される。フィーチャ選択レコードＲ６には、フィーチャが選択されているかいないかを示すフラグが記述されている。図１０の場合、フィーチャａは、位相情報レコードＲ５：稜線ａ、稜線ｃ、…、フィーチャ選択レコードＲ６：フィーチャが選択されていないことを示すフラグ０（無効）、フィーチャｂは、位相情報レコード５：稜線ａ、稜線ｂ、…、フィーチャ選択レコードＲ６：フィーチャが選択されていることを示すフラグ１（有効）、である。
【００６３】
稜線レコードＳには、稜線を規定する二つの隣接するフィーチャが記述される。位相情報レコードＲ５と稜線レコードＳによりフィーチャ間の接続関係が規定される。図１０の場合、稜線ａの稜線レコードＳ：フィーチャａ、フィーチャｂ、稜線ｂの稜線レコードＳ：フィーチャｂ、フィーチャｄである。
【００６４】
次に、フィーチャ定義手段Ｃ５によるフィーチャの定義（抽出）の詳細について説明する。フィーチャ定義手段Ｃ５によるフィーチャの定義は、上述のように、フィーチャ包含面定義手段Ｃ１５がフィーチャ包含面を点群データから求める過程と、求めたフィーチャ包含面からトリミング手段Ｃ１６がフィーチャをトリミングする過程を含む。図１１に、こうしたフィーチャ定義における処理の流れを示す。
【００６５】
ステップＰ４ａ（シード点指定過程）では、表示手段Ｃ１４の表示画面に表示された点群データＤ１に対して抽出対象のフィーチャについてのシード点を利用者が任意に指定する。シード点の指定は、点群データＤ１の中からシード点とすべき点をクリックすることで行い、また抽出対象のフィーチャが複数ある場合にはその複数のフィーチャに対してそれぞれシード点を指定するシード点の一括的指定を行う。なお、表示手段Ｃ１４への点群データＤ１の表示では、既に定義済みのフィーチャがある場合、その定義済みのフィーチャに属する点はシード点として指定できないものとして区別できるように、例えば淡色で表示される。
【００６６】
ステップＰ４ｂ（代表面決定過程）では、フィーチャ種別情報に基づいて、フィーチャ、より具体的にはフィーチャ包含面に属する点つまりフィーチャ包含面所属点の集合を最もよく近似する面（代表面）を定義対象のフィーチャ包含面ごとに求める。代表面は、フィーチャ包含面の座標に基づいて最小自乗法で求める。この方法では、フィーチャ包含面が１つのシード点しか含んでいない場合に代表面を求めることができないが、ステップＰ４ｃ〜ステップＰ４ｊの処理でシード点に隣接するいくつかの点を追加することで代表面を求めることができるようになる。代表面決定処理は、後述のようにしてフィーチャ包含面にフィーチャ包含面所属点が追加されるごとになされ、フィーチャ包含面所属点の追加がなされなくなるまで繰り返される。
【００６７】
ステップＰ４ｃ〜ステップＰ４ｊでは、フィーチャ包含面の拡張を行う。具体的には、その時点までに求められたフィーチャ包含面について当該フィーチャ包含面に隣接している点を探索し（ステップＰ４ｃ：隣接点探索過程）、その隣接点が所定の所属条件を満たしていればフィーチャ包含面所属点としてフィーチャ包含面に追加する（ステップＰ４ｈ：所属点追加過程）。このフィーチャ包含面の拡張は、フィーチャ包含面に新たなフィーチャ包含面所属点が追加されなくなるまで繰り返される。隣接点の所属条件は、定義済みのフィーチャ包含面に含まれないこと、コーナー位置にないこと、代表面との距離がしきい値以下であること、隣接点における法線ベクトルと、および隣接点位置での代表面の法線ベクトルとのなす角度がしきい値以下であることである。これら所属条件を全て満たすか否かを隣接点ごとにステップＰ４ｄ〜ステップ４ｇの各条件評価過程で評価し、満たすと評価された隣接点をフィーチャ包含面所属点としてステップＰ４ｈでフィーチャ包含面に追加する。
【００６８】
隣接点における法線ベクトルは、隣接点とその周辺の点の座標値に基づいて、これらの点を最も良く近似する平面を最小自乗法により求め、この平面の法線ベクトルに一致するものとして求める。距離に関するしきい値は、例えば、図３に例示したセルの幅(一辺の長さ）の０.５倍〜０.７５倍(０.５倍以上０.７５倍以下）とすればよい。角度に関するしきい値は、例えば４５度とすればよい。
【００６９】
ステップＰ４ｉ（評価判定過程）では、１回のフィーチャ包含面拡張過程における全ての隣接点について評価したか判定する。そしてこの評価判定過程の結果が肯定的になるまでステップＰ４ｃ〜ステップＰ４ｊの処理を繰り返し、肯定的になったらステップ４ｊ（拡張判定過程）に進む。
【００７０】
拡張判定過程では、フィーチャ包含面に新たなフィーチャ包含面所属点が追加されたか否かを判定する。その結果が肯定的な場合にはステップＰ４ｂに戻り、フィーチャ包含面所属点の追加によって変化した代表面を求め直す。一方、拡張判定の結果が否定的となった場合にはステップ４ｋ（トリミング過程）に進む。
【００７１】
トリミング過程では、トリミング手段Ｃ１６がフィーチャ包含面をトリミングしてフィーチャを切り出す。フィーチャ包含面のトリミングでは、フィーチャ包含面について境界を求め、その境界に沿ってフィーチャ包含面をトリミングする。フィーチャ包含面の境界は、上記所属条件を満たす点と満たさない点の隣接関係から求める。すなわち所属条件を満たす点に隣接する点で所属条件を満たさない点を探索することで境界を求める。  
【００７２】
ステップ４ｋに続くステップ４ｌ（コーナー追加過程）では、フィーチャに隣接しかつコーナー位置にある点をフィーチャに追加する。
【００７３】
図２に戻って、ステップＰ５（フィーチャ特徴量定義過程）では、ステップＰ４で抽出されたフィーチャについて特徴量定義手段Ｃ１７が特徴量の値を求める。具体的には、特徴量定義手段Ｃ１７が各フィーチャにおけるフィーチャ所属点の座標と種別情報に基づいて最小自乗法により特徴量を計算する。
【００７４】
ステップＰ６（フィーチャ定義判定過程）では、指定したシード点に対応するフィーチャを全て定義し終えたかを判定する。その結果が否定的な場合にはステップＰ４に戻って処理を繰り返し、肯定的になった場合にはステップＰ７（フィーチャ位相関係定義過程）に進む。
【００７５】
フィーチャ位相関係定義過程では、ステップＰ４で抽出されたフィーチャについて位相関係定義手段Ｃ６が位相関係を求める。具体的には、位相関係を求めようとするフィーチャに接続（隣接）するフィーチャを検出し、これらのフィーチャ間の接続関係から図１０における位相情報レコードＲ５と稜線レコードＳを更新する。
【００７６】
ステップＰ８（位相関係定義判定過程）では、ステップＰ４で抽出されたフィーチャの全てについてフィーチャ位相関係を定義し終えたかを判定する。その結果が否定的な場合にはステップＰ７に戻って処理を繰り返し、肯定的になった場合にはステップＰ９（フィーチャ拘束関係定義過程）に進む。
【００７７】
フィーチャ拘束関係定義過程では、フィーチャデータＤ１８の一覧を表示手段Ｃ１４に表示するとともに、拘束関係を定義するかどうかを利用者に問い合わせる。利用者は、入力手段Ｃ４を用いて拘束関係の種類とフィーチャの組合せを指定することでフィーチャ拘束関係を定義する。
【００７８】
ステップＰ１０（フィーチャ特徴量再定義過程）では、ステップＰ９で拘束関係が指定されているフィーチャに対して、特徴量定義手段Ｃ１７がその拘束関係を満足するようにフィーチャの特徴量を再計算する。拘束関係は、拘束関係を指定するフィーチャの特徴量の間に成り立つ関係式で表現される。
【００７９】
ステップＰ１０では、フィーチャの特徴量に対して、制約条件つきの最小自乗計算を反復計算によって解く必要がある。この反復計算を確実に収束させるためには、フィーチャの特徴量の初期値を適切に設定する必要がある。本実施形態では、ステップＰ５で、各フィーチャについて特徴量を求めており、この値は初期値として適切なものである。これにより、幾何学的な拘束関係を指定した部位に対しても精度よく幾何形状を定義することができる。
【００８０】
ステップＰ１１（拘束関係判定過程）では、全ての拘束関係を指定し終えたかを判定する。その結果が否定的な場合は、ステップＰ９に戻って処理を繰り返す。一方、肯定的になった場合にはステップＰ１２（Ｂ−ｒｅｐｓデータ構成過程）に進む。
【００８１】
Ｂ−ｒｅｐｓデータ構成過程では、Ｂ−ｒｅｐｓデータ構成手段Ｃ９が、フィーチャデータとフィーチャ位相関係データに基づいてＢ−ｒｅｐｓデータＤ１９を生成させて出力する。
【００８２】
以上のような処理で生成されるＢ−ｒｅｐｓデータの例を図１２に示す。図では、面要素の接続点を○印で示し、１階微分連続の拘束条件を指定した面要素を太線で示している。このＢ−ｒｅｐｓデータは１７個の面要素で記述されており、コーナーの形状情報が失われることがなく、しかも拘束関係を指定した部位でも精度よく幾何形状が定義されたＣＡＤデータが得られている。
【図面の簡単な説明】
【００８３】
【図１】一実施形態による表面形状データ変換装置の構成を示す図である。
【図２】図１の表面形状データ変換装置でなされる表面形状データ変換処理の流れを示す図である。
【図３】ビットマップデータの例を示す図である。
【図４】図３のビットマップデータから生成される点群データの例を示す図である。
【図５】図３のビットマップデータから第１の変換方法で生成される点群データの例を示す図である。
【図６】点群データのデータ構成例を示す図である。
【図７】基準部位を指定する方法の例を説明する図である。
【図８】コーナーを定義する方法の例を説明する図である。
【図９】フィーチャを定義する方法の例を説明する図である。
【図１０】フィーチャデータの構成例を示す図である。
【図１１】フィーチャ定義処理の流れを示す図である。
【図１２】図３のビットマップデータのデータ変換で生成されたＢ−ｒｅｐｓデータの例を示す図である。
【図１３】フィーチャ抽出法においてフィーチャ包含面からフィーチャをトリミングする操作の様子を示す図である。
【符号の説明】
【００８４】
Ｃ２    点群データ記憶手段
Ｃ３    フィーチャ記憶手段
Ｃ４    入力手段
Ｃ５    フィーチャ定義手段
Ｃ６    位相関係定義手段
Ｃ９    Ｂ−ｒｅｐｓデータ構成手段
Ｃ１３    シード点指定手段
Ｃ１４    表示手段
Ｃ１５    フィーチャ包含面定義手段
Ｃ１６    トリミング手段
Ｃ１７    特徴量定義手段
【図１】
0004707581.tif 000002
【図２】
0004707581.tif 000003
【図３】
0004707581.tif 000004
【図４】
0004707581.tif 000005
【図５】
0004707581.tif 000006
【図６】
0004707581.tif 000007
【図７】
0004707581.tif 000008
【図８】
0004707581.tif 000009
【図９】
0004707581.tif 000010
【図１０】
0004707581.tif 000011
【図１１】
0004707581.tif 000012
【図１２】
0004707581.tif 000013
【図１３】
0004707581.tif 000014