(57)【要約】【課題】本発明の目的は、３次元のビットマップデータや点群データをデータ容量がより小さいＢ−ｒｅｐｓデータに変換でき、この際、コーナーの形状情報を失わずに、幾何学的な拘束関係が指定されている部位でも精度良く幾何形状を定義できる装置及び方法を提供することにある。【解決手段】本発明の装置は、ビットマップデータ又は点群データからコーナーを定義する手段と、コーナーを境界として含み、幾何形状の種別を規定する種別情報を有するグループを定義する手段と、種別情報とグループに含まれるセル又は点の座標とに基づいてグループの幾何形状の特徴量を定義する手段と、グループ間の接続関係からグループの位相関係を定義する手段と、グループ間の幾何学的な拘束関係を指定する手段と、拘束関係に基づいて特徴量を再定義する手段と、幾何形状と位相関係からＢ−ｒｅｐｓデータを構成する手段とを備える。【選択図】　図１
2004046545.tif 000002
【特許請求の範囲】
【請求項１】
ビットマップデータ又は点群データを位相幾何データに変換する立体形状データ変換装置であって、
前記ビットマップデータ又は前記点群データからコーナーを定義する手段と、前記コーナーを境界として含み、幾何形状の種別を規定する種別情報を有するグループを定義する手段と、前記種別情報と前記グループに含まれるセル又は点の座標とに基づいて、前記グループの前記幾何形状の特徴量を定義する手段と、前記グループ間の接続関係から前記グループの位相関係を定義する手段と、前記グループ間の幾何学的な拘束関係を指定する手段と、前記拘束関係に基づいて前記特徴量を再定義する手段と、前記幾何形状と前記位相関係からＢ−ｒｅｐｓデータを構成する手段と、を備えることを特徴とする立体形状データ変換装置。
【請求項２】
請求項１において、前記ビットマップデータ，前記点群データ，前記コーナー又は前記グループを画面上に表示する表示手段と、前記セル，前記点，前記コーナー又は前記グループに対する利用者の選択入力を前記表示手段の画面上で受け付ける手段と、を備えることを特徴とする立体形状データ変換装置。
【請求項３】
請求項２において、前記点群データ上の基準となる部位に対する指定入力に基づいて、該指定された部位が予め決められた向きとなるように前記ビットマップデータ又は前記点群データを座標変換する手段を備えることを特徴とする立体形状データ変換装置。
【請求項４】
請求項２において、前記ビットマップデータ又は前記点群データから前記コーナーの位置を推定する手段と、該推定した位置を前記コーナーとして定義するかしないかに関する利用者の選択入力を前記表示手段の画面上で受け付ける手段と、を備えることを特徴とする立体形状データ変換装置。
【請求項５】
請求項２において、前記ビットマップデータ又は前記点群データから前記グループを推定する手段と、推定した領域を前記グループとして定義するかしないかに関する利用者の選択入力を前記表示手段の画面上で受け付ける手段と、を備えることを特徴とする立体形状データ変換装置。
【請求項６】
請求項２において、定義済みの前記コーナー又は前記グループを削除する手段を備えることを特徴とする立体形状データ変換装置。
【請求項７】
請求項２において、前記グループの中からその前記幾何形状が隣接する前記グループの前記幾何形状と未接続状態であるものを検索し、前記表示手段の画面上に表示する手段を備えることを特徴とする立体形状データ変換装置。
【請求項８】
請求項２において、前記点群データと前記グループの前記幾何形状を重ね合わせて前記表示手段の画面上に表示する手段と、前記点群データと前記グループの前記幾何形状の差異を前記表示手段の画面上に表示する手段と、を備えることを特徴とする立体形状データ変換装置。
【請求項９】
ビットマップデータ又は点群データを位相幾何データに変換する立体形状データ変換方法であり、
前記ビットマップデータ又は前記点群データからコーナーを定義する過程と、前記コーナーを境界として含み、幾何形状の種別を規定する種別情報を有するグループを定義する過程と、前記種別情報と前記グループに含まれるセル又は点の座標とに基づいて前記グループの前記幾何形状の特徴量を定義する過程と、前記グループ間の接続関係から前記グループの位相関係を定義する過程と、前記グループ間の幾何学的な拘束関係を指定する過程と、前記拘束関係に基づいて前記特徴量を再定義する過程と、前記幾何形状と前記位相関係からＢ−ｒｅｐｓデータを構成する過程と、を備えることを特徴とする立体形状データ変換方法。
【請求項１０】
請求項９において、前記ビットマップデータ又は前記点群データから前記コーナーの位置を推定する過程と、該推定した位置を前記コーナーとして定義するかしないかを選択する過程と、を備えることを特徴とする立体形状データ変換方法。
【請求項１１】
請求項９において、前記ビットマップデータ又は前記点群データから前記グループを推定する過程と、推定した領域を前記グループとして定義するかしないかを選択する過程と、を備えることを特徴とする立体形状データ変換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元のビットマップデータや点群データを、操作性・利用性の高い３次元のＣＡＤデータに変換する立体形状データ変換装置及び方法に関する。
【０００２】
【従来の技術】
実際物の立体形状を計測してデータとして記述するには、Ｘ線ＣＴ装置，表面計測プローブ，レーザ計測機などの３次元ディジタイザが利用される。これらの装置は、局所的なセルや点の集合であるビットマップデータや点群データを出力する。これに対して一般の３次元ＣＡＤは、大域的な位相幾何学的な情報を持つ「Ｂ−ｒｅｐｓ」（Ｂｏｕｎｄａｒｙ−ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ：境界表現）と呼ばれるデータを利用している。そのため計測された立体形状を３次元ＣＡＤで利用するには、適切なデータ変換技術が不可欠である。
【０００３】
局所的な情報しか持たず、大域的な情報を持たないビットマップデータや点群データを変換して大域的な情報を持つＢ−ｒｅｐｓデータ（位相幾何データ）を得るには、これまで主に２つの方法が利用されていた。第１の方法は、ビットマップデータや点群データが表す立体形状を、多面体（ポリゴン）を使用して近似的に記述する方法である。この方法は、特開平１１−３３９０７１号公報に記載されている。第２の方法は、立体形状を平行な多数の平面でスライスし、得られた断面形状をＢ−ｓｐｌｉｎｅなどの自由曲線で記述してから、これらを結合してＮＵＲＢＳ（ＮＯＮ−ＵＮＩＦＯＲＭ　ＲＡＴＩＯＮＡＬ　Ｂ−ＳＰＬＩＮＥ：非一様有理Ｂ−ｓｐｌｉｎｅ面）などの自由曲面とする方法である。この方法は、「ＣＯＮＳＴＲＵＣＴＩＯＮ　ＯＦ　Ａ　ＳＵＲＦＡＣＥ　ＭＯＤＥＬ　ＡＮＤ　ＬＡＹＥＲＥＤ　ＭＡＮＵＦＡＣＴＵＲＩＮＧ　ＤＡＴＡ　ＦＲＯＭ　３Ｄ　ＨＯＭＯＧＥＮＩＺＡＴＩＯＮ　ＯＵＴＰＵＴ」（Ａ．Ｌ．　ＭＡＲＳＡＮ，　Ｄ．　ＤＵＴＴＡ）　Ｊｏｕｒｎａｌ　ｏｆ　Ｍｅｃｈａｎｉｃａｌ　Ｄｅｓｉｇｎ，　Ｖｏｌ．　１１８（Ｓｅｐｔｅｍｂｅｒ　１９９６）に記載されている。
【０００４】
【発明が解決しようとする課題】
前記従来技術では、立体形状の全体を多面体や自由曲面で近似することにより、ほぼ自動的にビットマップデータや点群データをＢ−ｒｅｐｓデータに変換することができる。しかし、例えば工業分野の機械部品を対象とした場合、ビットマップデータが膨大なデータ量になるため、多面体や自由曲面で近似すると、変換後のＢ−ｒｅｐｓデータが大きくなり過ぎる。このＢ−ｒｅｐｓデータを３次元ＣＡＤで使用する際や、工作機械での加工に用いる際に、作業効率の悪化を招くことになる。
【０００５】
また、前記従来技術では、グループ内部にコーナーが含まれる可能性があり、この場合コーナーの形状情報が失われてしまう問題がある。更に、前記従来技術では、グループ間に幾何学的な拘束関係が指定されている場合、最小自乗計算が収束せず、フィッテング曲面が精度良く求められないという問題がある。
【０００６】
本発明の目的は、３次元のビットマップデータや点群データを、データ容量がより小さいＢ−ｒｅｐｓデータに変換でき、この際に、コーナーの形状情報が失われることがなく、かつ幾何学的な拘束関係が指定されている部位でも精度良く幾何形状を定義することが可能な立体形状データ変換装置及び立体形状データ変換方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明の立体形状データ変換装置は、ビットマップデータ又は点群データからコーナーを定義する手段と、コーナーを境界として含み、幾何形状の種別を規定する種別情報を有するグループを定義する手段と、種別情報とグループに含まれるセル又は点の座標とに基づいてグループの幾何形状の特徴量を定義する手段と、グループ間の接続関係からグループの位相関係を定義する手段と、グループ間の幾何学的な拘束関係を指定する手段と、拘束関係に基づいて特徴量を再定義する手段と、幾何形状と位相関係からＢ−ｒｅｐｓデータを構成する手段とを備える。
【０００８】
【発明の実施の形態】
（第１実施例）
本発明による立体形状データ変換装置の第１実施例の構成を図１に示す。立体形状データ変換装置Ｃは、入力された点群データＤ１又はビットマップデータ
Ｄ２をＢ−ｒｅｐｓデータＤ０に変換して出力する機能を備え、ビットマップデータ／点群データ変換手段Ｃ０，点群記憶手段Ｃ１，グループ記憶手段Ｃ２，入力手段Ｃ３，コーナー定義手段Ｃ４，グループ定義手段Ｃ５，特徴量定義手段
Ｃ６，位相関係定義手段Ｃ７，拘束関係定義手段Ｃ８，Ｂ−ｒｅｐｓデータ構成手段Ｃ９，点選択手段Ｃ１０，コーナー選択手段Ｃ１１，グループ選択手段Ｃ１２，表示手段Ｃ１３，基準部位指定手段Ｃ１４などから構成されている。
【０００９】
ビットマップデータ／点群データ変換手段Ｃ０は、点群データＤ１が入力された場合、この点群データＤ１をそのまま点群記憶手段Ｃ１に出力する。ビットマップデータＤ２が入力された場合、このビットマップデータＤ２を点群データ
Ｄ１に変換して点群記憶手段Ｃ１に出力する。点群記憶手段Ｃ１は、ビットマップデータ／点群データ変換手段Ｃ０からの点群データＤ１を記憶する。この処理の詳細は図４を用いて後述する。
【００１０】
点群記憶手段Ｃ１及びグループ記憶手段Ｃ２は、メモリやハードディスクで構成されており、入力されたデータを記憶して、必要な時に出力する機能を持つ。点群記憶手段Ｃ１が記憶する点群データＤ１は、実際物（実際の３次元構造物）の表面に位置する点の座標を記述するデータであり、その点が「コーナー」であるかどうかを表すコーナー属性を付加することもできる。「コーナー」とは、立体形状の表面上でその曲面の微分値が不連続となる部位のことである。
【００１１】
座標データは、３次元ディジタイザから立体形状データ変換装置Ｃに入力される。点群データＤ１は、たとえば次のようなデータ構成となっている。
【００１２】
点１＝（点の座標（Ｘ１，Ｙ１，Ｚ１），コーナー属性）
点２＝（点の座標（Ｘ２，Ｙ２，Ｚ２），コーナー属性）
点３＝（点の座標（Ｘ３，Ｙ３，Ｚ３），コーナー属性）
：
点ｎ＝（点の座標（Ｘｎ，Ｙｎ，Ｚｎ），コーナー属性）
コーナー属性に関しては、例えば、その点が「コーナー」である場合にコーナー属性＝１、その点が「コーナー」でない場合にコーナー属性＝０とする。
【００１３】
グループ記憶手段Ｃ２が記憶するグループデータＤ６は、「グループ」を記述するデータである。「グループ」とは、点群データＤ１に含まれている点の集合によって定義される単一の領域のことであり、一つのグループは一つの「幾何形状」と対応している。「幾何形状」とは、平面，円筒面などの幾何学的に定義された形状のことであり、Ｂ−ｒｅｐｓデータを構成する要素である。幾何形状を定義するには、平面，円筒面といった形態（形状）の分類を表す「種別情報」と、形態を詳細に規定する「特徴量」が必要である。
【００１４】
グループデータＤ６には、各グループに含まれる点の集合，点の集合の求め方の分類を表す「領域選択方法」，各グループに対応する幾何形状の種別情報，幾何形状の特徴量が記述されている。さらに、グループの「位相関係」を付加することもできる。「位相関係」とは、グループ間のつながり具合（接続関係，接続状況）を表す関係のことであり、Ｂ−ｒｅｐｓデータを構成する要素である。グループデータＤ６は、たとえば次のようなデータ構成となっている。
【００１５】
グループａの記述（点の集合，領域選択方法，種別情報，特徴量，位相関係）
グループｂの記述（点の集合，領域選択方法，種別情報，特徴量，位相関係）
：
グループｍの記述（点の集合，領域選択方法，種別情報，特徴量，位相関係）入力手段Ｃ３は、利用者から入力されるコマンドを受け取り、これを処理する機能を持つ。利用者は、コーナー定義コマンドＤ３，グループ定義コマンドＤ５，拘束関係定義コマンドＤ９，Ｂ−ｒｅｐｓデータ構成コマンドＤ１１，点選択コマンドＤ１２，コーナー選択コマンドＤ１４，グループ選択コマンドＤ１６，基準部位指定コマンドＤ１８などのコマンドを、キーボードやマウスを使って入力する。
【００１６】
コーナー定義手段Ｃ４は、コーナー定義コマンドＤ３を受け、コーナー定義データＤ４を点群記憶手段Ｃ１に送り、利用者が選択したコーナー位置に対応する点のコーナー属性を有効にして（例えば、コーナー属性＝１にして）、点群記憶手段Ｃ１に記憶させる機能を持つ。コーナー定義データＤ４は、利用者が指定したコーナーの位置を記述するデータである。
【００１７】
グループ定義手段Ｃ５は、グループ定義コマンドＤ５を受け、グループデータＤ６をグループ記憶手段Ｃ２に送り、新たなグループをグループ記憶手段Ｃ２に追加させる機能を持つ。グループ定義コマンドＤ５は、領域選択方法と種別情報を利用者が指定するためのコマンドである。グループ定義手段Ｃ５は、利用者が指定した領域選択方法と種別情報をもとに、グループに属する点の集合を求める。この際、コーナー位置にある点がグループの内部に含まれることが無く、常にグループの境界に含まれるように、点の集合を求めていく。
【００１８】
特徴量定義手段Ｃ６は、新たに追加されたグループデータＤ６を受け、そのグループに属する全ての点の座標とグループの種別情報とに基づいてグループの特徴量を決定し、グループ特徴量定義データＤ７をグループ記憶手段Ｃ２に送り、グループの特徴量をグループ記憶手段Ｃ２に記憶させる機能を持つ。グループ特徴量定義データＤ７は、新たに追加されたグループの特徴量を記述するデータである。
【００１９】
位相関係定義手段Ｃ７は、新たに追加されたグループデータＤ６を受け、そのグループに接続（隣接）するグループを検出し、これらのグループ間の接続関係から位相関係を決定し、グループ位相関係定義データＤ８をグループ記憶手段
Ｃ２に送り、これらのグループの位相関係をグループ記憶手段Ｃ２に記憶させる機能を持つ。グループ位相関係定義データＤ８は、新たに追加されたグループと、これに隣接するグループの位相関係を記述するデータである。
【００２０】
拘束関係定義手段Ｃ８は、拘束関係定義コマンドＤ９を受け、グループ拘束関係定義データＤ１０をグループ記憶手段Ｃ２に送る機能を持つ。グループ拘束関係定義データＤ１０は、グループの組み合わせを指定し、その幾何学的な拘束関係を記述するデータである。
【００２１】
Ｂ−ｒｅｐｓデータ構成手段Ｃ９は、Ｂ−ｒｅｐｓデータ構成コマンドＤ１１を受け、全てのグループの幾何形状及び位相関係に基づいてＢ−ｒｅｐｓデータＤ０を作成して出力する機能を備える。
【００２２】
点選択手段Ｃ１０は、点選択コマンドＤ１２を受け、選択点データＤ１３を点群記憶手段Ｃ１に送り、利用者が選択した点を点群記憶手段Ｃ１に記憶させる機能を持つ。選択点データＤ１３は、利用者が選択したコーナーの位置を記述するデータである。
【００２３】
コーナー選択手段Ｃ１１は、コーナー選択コマンドＤ１４を受け、選択コーナーデータＤ１５を点群記憶手段Ｃ１に送り、利用者が選択したコーナーを点群記憶手段Ｃ１に記憶させる機能を持つ。選択コーナーデータＤ１５は、利用者が選択したコーナーの位置を記述するデータである。
【００２４】
グループ選択手段Ｃ１２は、グループ選択コマンドＤ１６を受け、選択グループデータＤ１７をグループ記憶手段Ｃ２に送り、利用者が選択したグループをグループ記憶手段Ｃ２に記憶させる機能を持つ。選択グループデータＤ１７は、利用者が選択したグループを記述するデータである。
【００２５】
表示手段Ｃ１３は、点群記憶手段Ｃ１から点群データＤ１を、グループ記憶手段Ｃ２からグループデータＤ６を、それぞれ取り出して（入力して）、利用者に視覚的に表示する機能を持つ。さらに、点群データＤ１のうち、コーナー位置にある点群，利用者が選択した点群，利用者が選択したコーナーに位置する点群を、それぞれ選択的に表示する機能と、グループデータＤ６のうち、利用者が選択したグループを選択的に表示する機能を持つ。
【００２６】
基準部位指定手段Ｃ１４は、基準部位指定コマンドＤ１８を受け、基準部位座標変換定義データＤ１９を点群記憶手段Ｃ１に送り、利用者が指定した基準部位が予め決められた向きとなるように、点群記憶手段Ｃ１に点群データＤ１を座標変換させる機能を持つ。基準部位座標変換定義データＤ１９は、利用者が指定した基準部位が予め決められた向きとなるような座標変換を記述するデータである。
【００２７】
以上が立体形状データ変換装置Ｃの構成である。次に、具体例を用いて、立体形状データ変換装置Ｃによる処理の内容を詳細に説明する。実際の処理は３次元データで行われるが、ここでは理解を容易にするため、２次元のビットマップデータにより説明する。但し、本文では、全て３次元データの処理に使われる用語を用いて説明する。
【００２８】
図２は立体形状データ変換装置Ｃに入力されるビットマップデータＤ２の一例を示す図で、（ａ）はビットマップデータＤ２の全体図を、（ｂ）はビットマップデータＤ２の部分拡大図を、それぞれ示す。ビットマップデータＤ２は、直交格子に沿って配列した細かい立方体の領域によって構成されており、各領域を
「セル」と呼ぶ。個々のセルは、その中心点が立体形状の内部又は外部のどちらであるかを表す情報を有する。図２では、ハッチングを付けたセルが立体形状の内部であることを示し、ハッチングのないセルが立体形状の外部であることを示している。
【００２９】
立体形状データ変換装置Ｃによる立体形状データ変換方法の処理手順を図３に示す。以下、図４〜図１３を参照しつつ、図３を用いて個々の処理を説明する。
【００３０】
初めに、ステップＰ１（ビットマップデータ／点群データ変換過程）で、ビットマップデータ／点群データ変換手段Ｃ０が、入力されたビットマップデータ
Ｄ２を点群データＤ１に変換する。この変換は、立体形状の表面のすぐ内側に位置するセルの中心点を求める方法（第１の変換方法），立体形状の表面を挟んで隣接する二つのセルの中心点を求める方法（第２の変換方法）の何れかで行うことができる。
【００３１】
図４は図２（ｂ）に示したビットマップデータＤ２から点群データＤ１を求めた例を示す図で、（ａ）は上記第１の変換方法で変換した例を、（ｂ）は上記第２の変換方法で変換した例を、それぞれ示す。図４で●印が点群データＤ１に対応している。この変換によって得られる点群データＤ１は、点群記憶手段Ｃ１に記憶される。
【００３２】
上記第１の変換方法を用いて図２（ａ）に示したビットマップデータＤ２から点群データＤ１を求めた例を図５に示し、（ａ）は全体図を、（ｂ）は（ａ）のＡ部の部分拡大図を、それぞれ示す。
【００３３】
点群データＤ１のデータ構成（構造）の一例を図６に示す。図６は、図５（ｂ）の３つの点ａ，ｂ，ｃに関する点群データのデータ構成を示す。点群データＤ１は、個々の点を記述する点レコードＱの集合である。点レコードＱは、座標レコードＱ１，コーナーフラグレコードＱ２，点選択フラグレコードＱ３を有する。
【００３４】
座標レコードＱ１には、各点の座標が記述される。図６では、３つの点ａ，ｂ，ｃの座標として、（Ｘａ，Ｙａ，Ｚａ），（Ｘｂ，Ｙｂ，Ｚｂ），（Ｘｃ，
Ｙｃ，Ｚｃ）が記述されている。
【００３５】
コーナーフラグレコードＱ２には、各点がコーナー位置にあるかないかを示すフラグが記述される。図６では、点ａ及びｃに対してはコーナー位置にないことを示すフラグ０（無効）が記述され、点ｂに対してはコーナー位置にあることを示すフラグ１（有効）が記述されている。
【００３６】
点選択フラグレコードＱ３には、コーナーまたは点が選択されているかいないかを示すフラグが記述される。図６では、点ａ及びｂに対しては選択されていないことを示すフラグ０（無効）が記述され、点ｃに対しては選択されていることを示すフラグ１（有効）が記述されている。
【００３７】
次に、図３のステップＰ２（基準部位指定過程）で、点群データＤ１を表示手段Ｃ１３に表示すると共に、利用者に基準部位を指定するかどうかを問い合わせる。利用者は、入力手段Ｃ３を用いて表示手段Ｃ１３に表示された点群データ
Ｄ１の中から基準部位としたい点（点群）を選択することによって、基準部位を指定する。
【００３８】
この指定方法の一例を、図７を用いて説明する。ステップＰ２では、図７に示すように、表示手段Ｃ１３の表示画面の左側（一部）に、利用者が指定可能な複数のコマンドがメニュー画面Ｍ１として表示され、複数のコマンドのうち「基準部位指定」が選択表示されている。選択表示は、例えばカーソルの点滅表示で行う。利用者は、基準部位を指定する場合、メニュー画面Ｍ１上で「基準部位指定」をマウスでクリックする（選択する）。基準部位を指定しない場合には、例えば表示画面に表示された「次の処理」（図示せず）をマウスでクリックすることにより、ステップＰ３に進む。
【００３９】
「基準部位指定」が選択されると、点群データＤ１が表示画面の右側（一部）のデータ表示画面Ｍ２に表示される。利用者は、例えばマウスを用いて、表示画面Ｍ２に表示された点群データＤ１に対して、矢印カーソルをドラッグして領域Ｆ（点線で表示）を指定することにより、この領域内に含まれる点（点群）を基準部位として指定することができる。図７は、領域Ｆを指定している時の表示画面の一例を示す。
【００４０】
この操作により、領域Ｆ内の点群ｄ１を基準部位とする基準部位指定コマンドＤ１８が基準部位指定手段Ｃ１４に送られる。基準部位指定手段Ｃ１４は、基準部位に含まれる点の集合（点群ｄ１）を最もよく近似する平面を最小自乗法により求め、この平面が予め決められた向き（基準方向）となるように基準部位座標変換定義データＤ１９を決定する。基準方向は、水平方向，垂直方向などを予め決めておくか、予め利用者が指定する。
【００４１】
こうして求められた基準部位座標変換定義データＤ１９は、点群記憶手段Ｃ１に送られ、点群データＤ１をＤ１９に従って座標変換した点群データ（座標変換後の点群データ）Ｄ１が点群記憶手段Ｃ１に保存されると共に、座標変換後の点群データＤ１が表示手段Ｃ１３の表示画面に表示される。
【００４２】
以上のようにして基準部位が基準方向となるように座標変換された点群データＤ１を表示画面に表示することにより、利用者は、基準部位に対して垂直，平行などの関係にある部位を表示画面上で容易に認識することができる。これにより、グループ間の幾何学的拘束関係を指定する操作（後述）を容易で確実にすることができる。
【００４３】
次に、図３のステップＰ３（コーナー定義過程）で、点群データＤ１を表示手段Ｃ１３に表示するとともに、新しいコーナーを定義するかどうかを利用者に問い合わせる。利用者は、入力手段Ｃ３を用いて表示手段Ｃ１３に表示された点群データＤ１の中から新しいコーナーとしたい点を選択することによって、新しいコーナーを定義する。
【００４４】
この定義方法の一例を、図８を用いて説明する。ステップＰ３では、図８（ａ）に示すように、メニュー画面Ｍ１に表示された複数のコマンドのうち「コーナー定義」が選択表示されている。利用者は、新しいコーナーを定義する場合、メニュー画面Ｍ１上で「コーナー定義」をマウスでクリックする（選択する）。新しいコーナーを定義しない場合には、例えば表示画面に表示された「次の処理」
（図示せず）をマウスでクリックすることにより、ステップＰ４に進む。
【００４５】
「コーナー定義」が選択されると、点群データＤ１がデータ表示画面Ｍ２に表示される。利用者は、データ表示画面Ｍ２に表示された点群データＤ１のうち利用者がコーナーであると判断した点（コーナー点）を選択することにより、その点をコーナーとして定義する。
【００４６】
このコーナー点の選択方法の一例を図８により説明する。図８（ａ）は、利用者がデータ表示画面Ｍ２上で矢印カーソルをドラッグして、利用者がコーナーであると判断した点（コーナー点）Ｄｃを含む領域Ｆ（点線で表示）を指定している時の表示画面の一例を示す。利用者は、領域Ｆを指定後、例えば表示画面に表示された「拡大」（図示せず）をマウスでクリックすることにより、図８（ｂ）が表示される。利用者は、図８（ｂ）のデータ表示画面Ｍ２上で矢印カーソルによりコーナー点Ｄｃを選択することで、この点をコーナーとして定義する。図８（ｂ）は、図８（ａ）の領域Ｆの拡大図上でコーナー点Ｄｃを選択している時の表示画面の一例を示す。
【００４７】
この操作により、コーナー点Ｄｃをコーナーとして定義するコーナー定義コマンドＤ３がコーナー定義手段Ｃ４に送られる。コーナー定義手段Ｃ４は、コーナー定義コマンドＤ３に対応するコーナー定義データＤ４を点群記憶手段Ｃ１に送信し、点群記憶手段Ｃ１に保存されている点群データＤ１に対して、利用者が定義したコーナー位置と一致する点のコーナーフラグレコードＱ２を１（有効）にする。
【００４８】
次に、図３のステップＰ４（グループ定義過程）で、点群データＤ１及びグループデータＤ６を表示手段Ｃ１３に表示するとともに、新しいグループを定義するかどうかを利用者に問い合わせる。利用者は、入力手段Ｃ３を用いてグループの領域選択方法と種別情報を指定することによって、新しいグループを定義する。
【００４９】
グループの領域選択方法は、利用者が「シード点」を指定してグループに含まれる点の集合を求める方法（第１の領域選択方法），利用者が「稜線」を指定してグループに含まれる点の集合を求める方法（第２の領域選択方法）から選択する。「シード点」は、グループが最初に含んでいる点のことである。「稜線」は、２つの隣接するグループが交わった部分を表す線である。グループの境界は、いくつかの連続する稜線で構成される。上記第１及び第２の領域選択方法の詳細は、図１１及び図１２を用いて後述する。
【００５０】
グループの種別情報は、例えば、法線が既知の平面，法線が未知の平面，半径が既知の円柱面，半径が未知の円柱面，半径が既知の球面，半径が未知の球面，２次曲面，自由曲面，回転面などの幾何形状の中から選択する。
【００５１】
グループ定義方法の一例を、図９を用いて説明する。ステップＰ４では、図９に示すように、メニュー画面Ｍ１に表示された複数のコマンドのうち「グループ定義」が選択表示されている。利用者は、新しいグループを定義する場合、メニュー画面Ｍ１上で「グループ定義」をマウスでクリックする（選択する）。新しいグループを定義しない場合には、例えば表示画面に表示された「次の処理」
（図示せず）をマウスでクリックすることにより、ステップＰ５に進む。
【００５２】
「グループ定義」が選択されると、指定することができる領域選択方法と種別情報の一覧が、画面の右側に表示される。即ち、上記した２つの領域選択方法が画面右側の上部に位置する選択情報画面（選択情報表示画面）Ｍ３に表示され、上記した複数の種別情報が画面右側の下部に位置する選択情報画面（選択情報表示画面）Ｍ４に表示される。
【００５３】
利用者は、選択情報画面Ｍ３に表示された２つの領域選択方法のうち一方をマウスでクリックする（選択する）ことにより、新しいグループの領域選択方法を定義する。また、利用者は、選択情報画面Ｍ４に表示された複数の種別情報のうち１つをマウスでクリックする（選択する）ことにより、新しいグループの種別情報を定義する。図９は、選択情報画面Ｍ３上で「シード点指定」が選択され、選択情報画面Ｍ４上で「半径が未知の円柱面」が選択された後の表示画面の一例を示す。
【００５４】
この操作により、グループ定義コマンドＤ５がグループ定義手段Ｃ５に送られる。グループ定義手段Ｃ５は、グループ定義コマンドＤ５に対応するグループデータＤ６をグループ記憶手段Ｃ２に送信し、グループ記憶手段Ｃ２に保存されているグループデータを更新する。
【００５５】
グループデータＤ６のデータ構成（構造）の一例を図１０に示す。グループデータＤ６は、個々のグループを記述するグループレコードＲと個々の稜線を記述する稜線レコードＳの集合である。グループレコードＲは、点群レコードＲ１，領域選択方法レコードＲ２，種別情報レコードＲ３，特徴量レコードＲ４，位相情報レコードＲ５，グループ選択フラグレコードＲ６を有する。
【００５６】
点群レコードＲ１には、グループに属する点が列記される。領域選択方法レコードＲ２には、グループの領域選択方法が記述される。種別情報レコードＲ３には、グループの種別情報が記述される。図１０の場合、グループａは、点群レコードＲ１：点ａ１，ａ２，ａ３，…ａｐ、領域選択方法レコードＲ２：シード点指定、種別情報レコードＲ３：法線が既知の平面、グループｂは、点群レコードＲ１：点ｂ１，ｂ２，ｂ３，…ｂｑ、領域選択方法レコードＲ２：稜線指定、種別情報レコードＲ３：法線が未知の平面、である。
【００５７】
特徴量レコードＲ４には、グループの幾何形状の形態を一意に規定するための特徴量が記述される。例えば種別情報が「法線が既知の平面」の場合、基準点を一つ定義すればグループの幾何形状の形態を一意に規定できるので、特徴量レコードＲ４は基準点レコードを一つ持っていればよい。特徴量レコードＲ４の内容は、種別情報レコードＲ３に記述されたグループの種別情報に応じて、次のように変わる。
【００５８】
（種別情報）　　　　（特徴量レコードＲ４の内容）
法線が既知の平面　：　基準点
法線が未知の平面　：　基準点，単位法線ベクトル
半径が既知の円柱面：　中心軸の基準点，中心軸の単位方向ベクトル
半径が未知の円柱面：　中心軸の基準点，中心軸の単位方向ベクトル，半径
半径が既知の球面　：　中心点
半径が未知の球面　：　中心点，半径
２次曲面　　　　　：　Ｘ，Ｙ，Ｚを元とする２次方程式の係数
自由曲面　　　　　：　曲面の次数，制御点，ノット列
回転面　　　　　　：　中心軸の基準点，中心軸の単位方向ベクトル，母線
図１０の場合、グループａの特徴量レコードＲ４は基準点レコードＲ４１：（Ｘａ，Ｙａ，Ｚａ）で、グループｂの特徴量レコードＲ４は基準点レコードＲ４２：（Ｘｂ，Ｙｂ，Ｚｂ）と単位法線レコードＲ４３：（ＮＸｂ，ＮＹｂ，ＮＺｂ）である。
【００５９】
位相情報レコードＲ５には、グループの境界を構成する稜線が記述される。グループ選択フラグレコードＲ６には、グループが選択されているかいないかを示すフラグが記述されている。図１０の場合、グループａは、位相情報レコード
Ｒ５：稜線ａ，稜線ｃ，…、グループ選択フラグレコードＲ６：グループが選択されていないことを示すフラグ０（無効）、グループｂは、位相情報レコード５：稜線ａ，稜線ｂ，…、グループ選択フラグレコードＲ６：グループが選択されていることを示すフラグ１（有効）、である。
【００６０】
稜線レコードＳには、稜線を規定する二つの隣接するグループが記述される。位相情報レコードＲ５と稜線レコードＳによりグループ間の接続関係が規定される。図１０の場合、稜線ａの稜線レコードＳ：グループａ，グループｂ，稜線ｂの稜線レコードＳ：グループｂ，グループｄ、である。
【００６１】
次に、上記した第１の領域選択方法の詳細を図１１を用いて説明する。図９の選択情報画面Ｍ３で「シード点指定」が選択されると、ステップＰ４ａ（シード点選択過程）において、点群データＤ１が表示手段Ｃ１３のデータ表示画面Ｍ２に表示され（図示せず）、利用者は画面表示された点群データＤ１の中からシード点とすべき点をクリックすることによりシード点を選択する。この画面上では、定義済みのグループに属する点が例えば淡色で表示され、これらの点をシード点として選択することはできない。
【００６２】
次に、ステップＰ４ｂ（代表面決定過程）では、図９の選択情報画面Ｍ４で選択された種別情報に基づいて、グループに含まれる点の集合を最もよく近似する面（代表面）を求める。この代表面は最小自乗法を利用して求める。この方法では、グループが１つのシード点しか含んでいない場合、代表面を求めることができない。この場合にも代表面を求めることができるように、シード点に隣接するいくつかの点を要素としてグループに追加する。
【００６３】
このため、ステップＰ４ｃ（隣接点検索過程）では、グループに隣接している点を検索する。隣接点が、既に定義済みのグループに含まれず（ステップＰ４ｄ）、且つコーナー位置になく（ステップＰ４ｅ）、且つ代表面との距離がしきい値以下（ステップＰ４ｆ）で、且つ隣接点における法線ベクトルと、隣接点位置での代表面の法線ベクトルとのなす角度がしきい値以下（ステップＰ４ｆ２）であれば、ステップＰ４ｇ（グループ拡張過程）で、その隣接点をグループに追加する。
【００６４】
隣接点における法線ベクトルは、隣接点とその周辺の点の座標値に基づいて、これらの点を最も良く近似する平面を最小自乗法により求め、この平面の法線ベクトルに一致するものとして求める。距離に関するしきい値は、例えば、図２に例示したセルの幅（一辺の長さ）の０．５倍〜０．７５倍（０．５倍以上０．７５倍以下）とすれば良い。角度に関するしきい値は、例えば４５度とすれば良い。ステップＰ４ｈでは、グループの全ての隣接点を評価するまで、上記ステップＰ４ｄ〜Ｐ４ｇを行う。
【００６５】
ステップＰ４ｇでグループに隣接点が追加された場合、ステップＰ４ｉにおいて、処理をステップＰ４ｂに戻し、点の追加によって変化した代表面を求め直す。こうして、上記ステップＰ４ｂ〜Ｐ４ｈは、グループに新しい隣接点が追加されなくなるまで繰り返される。
【００６６】
グループに属する点が変化しなくなった場合（グループに新しい隣接点が追加されなくなった場合）、ステップＰ４ｊ（コーナー追加過程）で、グループに隣接し且つコーナー位置にある点をグループに追加する。以上が、ステップＰ４において、シード点を指定してグループに含まれる点の集合を求める方法である。
【００６７】
次に、上記した第２の領域選択方法の詳細を図１２を用いて説明する。図９の選択情報画面Ｍ３で「稜線指定」が選択されると、ステップＰ４ｋ（新規稜線指定過程）において、点群データＤ１が表示手段Ｃ１３のデータ表示画面Ｍ２に表示され（図示せず）、利用者は画面表示された点群データＤ１の中から稜線とすべき点をクリックすることにより新規に稜線を指定する。この画面上では、定義済みのグループに属する点が例えば淡色で表示され、これらの点を稜線として指定することはできない。
【００６８】
ステップＰ４ｌ（既存稜線指定過程）では、グループデータＤ６が表示手段
Ｃ１３のデータ表示画面Ｍ２に表示され（図示せず）、利用者は定義済みのグループの境界を構成する稜線を画面上でクリックすることにより、既存の稜線を指定する。ステップＰ４ｍで、指定した稜線の集合が閉ループを構成するまで、ステップＰ４ｋ及びステップＰ４ｌは繰り返される。
【００６９】
指定した稜線の集合が閉ループを構成すれば、ステップＰ４ｎ（内部点検索過程）において、閉ループ内部に含まれる点を検索する。ステップＰ４ｏでは、コーナー位置にある点が閉ループ内部（閉ループの内側）に含まれる場合には、指定した稜線を無効にして、処理をステップＰ４ｋ及びステップＰ４ｌに戻す。コーナー位置にある点が閉ループ内部に含まれなくなったら、閉ループと閉ループ内部に含まれる点をグループに追加する。以上が、ステップＰ４において、稜線を指定してグループに含まれる点の集合を求める方法である。
【００７０】
上記した方法によれば、シード点を指定する場合及び稜線を指定する場合の何れにおいても、コーナーは、グループの内部に含まれることはなく、常にグループの境界に含まれるので、コーナーの形状情報を失うことなく、Ｂ−ｒｅｐｓデータに変換することができる。
【００７１】
次に、図３のステップＰ５（グループ特徴量定義過程）で、特徴量定義手段
Ｃ６が、新たに追加されたグループに対して、グループに含まれる点の座標とグループの種別情報に基づいて、最小自乗法を用いてグループの特徴量を計算する。
【００７２】
ステップＰ６（グループ位相関係定義過程）では、位相関係定義手段Ｃ７が、新たに追加されたグループに対して、そのグループに接続（隣接）するグループを検出し、これらのグループ間の接続関係から図１０に示したグループの位相情報レコードＲ５及び稜線レコードＳを更新して、グループの位相関係を求める。
【００７３】
ステップＰ７では、グループの定義が全て完了し、点群データＤ１に含まれる全ての点が何れかのグループに属するまで、上記ステップＰ４〜Ｐ６が繰り返される。グループの定義が全て完了した時点で、処理はステップＰ８に移る。
【００７４】
ステップＰ８（グループ拘束関係定義過程）では、グループデータＤ６の一覧を表示手段Ｃ１３に表示するとともに、拘束関係を定義するかどうかを利用者に問い合わせる。利用者は、入力手段Ｃ３を用いて拘束関係の種類とグループの組合せを指定することによって、グループ拘束関係を定義する。
【００７５】
この定義方法の一例を、図１３を用いて説明する。ステップＰ８では、図１３に示すように、メニュー画面Ｍ１に表示された複数のコマンドのうち「拘束関係定義」が選択表示されている。利用者は、グループ拘束関係を定義する場合、メニュー画面Ｍ１上で「拘束関係定義」をマウスでクリックする（選択する）。グループ拘束関係を定義しない場合には、例えば表示画面に表示された「次の処理」（図示せず）をマウスでクリックすることにより、ステップＰ９に進む。
【００７６】
「拘束関係定義」が選択されると、グループデータＤ６の一覧と、グループの組合せに対して定義することのできる拘束関係の一覧が、画面の右側に表示される。即ち、グループデータＤ６の一覧が画面右側の上部及び中央に位置する選択情報画面Ｍ３及びＭ４に表示され、上記した拘束関係の一覧が画面右側の下部に位置する選択情報画面Ｍ５に表示される。
【００７７】
利用者は、選択情報画面Ｍ３及びＭ４に表示された複数のグループ（図１３では３つのグループａ〜ｃ）の中からそれぞれ１つをマウスでクリック（選択）することにより、グループの組合せを定義する。更に、利用者は、選択情報画面
Ｍ５に表示された複数の拘束関係のうち１つをマウスでクリック（選択）することにより、選択情報画面Ｍ３とＭ４で選択したグループ間の拘束関係を定義する。
【００７８】
拘束関係の種類は、例えば、同一の面，垂直，平行，１階微分連続、の中から選択する。図１３は、選択情報画面Ｍ３及びＭ４上で「グループｂ」及び「グループｃ」が選択され、選択情報画面Ｍ５上で「平行」が選択された後の表示画面の一例を示す。
【００７９】
この操作により、拘束関係定義コマンドＤ９が拘束関係定義手段Ｃ８に送られる。拘束関係定義手段Ｃ８は、拘束関係定義コマンドＤ９に対応するグループ拘束関係定義データＤ１０をグループ記憶手段Ｃ２に送信し、グループ記憶手段
Ｃ２に保存されているグループデータを更新する。
【００８０】
次に、図３のステップＰ９（グループ特徴量再定義過程）で、特徴量定義手段Ｃ６が、拘束関係が指定されているグループに対して、拘束関係を満足するようにグループの特徴量を再計算する。拘束関係は、拘束関係を指定するグループの特徴量の間に成り立つ関係式で表現される。例えば平面と円柱面が１階微分連続で接続する場合には、平面の基準点Ａ１，単位法線ベクトルＮ１と、円柱面の中心軸の基準点Ａ２及び単位方向ベクトルＬ１，半径ｒとの間に次の２つの関係式が成り立つ。
【００８１】
Ｎ１・Ｌ１＝０　　　　｜Ｎ１・（Ａ２−Ａ１）｜＝ｒ
上式において「・」はベクトルの内積を表す。従って、グループの特徴量の間に成り立つ制約条件の下で、最小自乗法を用いてグループの特徴量を計算することにより、拘束関係を満たすグループの特徴量を求めることができる。
【００８２】
ステップＰ９では、グループの特徴量に対して、制約条件つきの最小自乗計算を反復計算によって解く必要がある。この反復計算を確実に収束させるためには、グループの特徴量の初期値を適切に設定する必要がある。本実施例は、ステップＰ５で、各グループに対してグループの特徴量を求めており、この値は初期値としては適切なものである。これにより、幾何学的な拘束関係を指定した部位に対しても精度良く幾何形状を定義することができる。
【００８３】
ステップＰ１０では、全ての拘束関係を指定するまで、上記ステップＰ８及びＰ９を繰り返す。ステップＰ１１（Ｂ−ｒｅｐｓデータ構成過程）では、Ｂ−
ｒｅｐｓデータ構成手段Ｃ９が、グループの幾何形状及び位相関係に基づいて、Ｂ−ｒｅｐｓデータＤ０を作成して出力する。
【００８４】
以上が、立体形状データ変換装置Ｃによるデータ変換方法である。このデータ変換処理方法で得られたＢ−ｒｅｐｓデータＤ０の一例を図１４に示す。同図では、面要素の接続点を○印で示し、１階微分連続の拘束条件を指定した面要素を太線で示している。このＢ−ｒｅｐｓデータＤ０は１７個の面要素で記述されており、コーナーの形状情報が失われることがなく、且つ拘束関係を指定した部位でも精度良く幾何形状が定義されているＣＡＤデータが得られている。
【００８５】
本実施例によれば、３次元のビットマップデータや点群データをデータ容量がより小さいＢ−ｒｅｐｓデータに変換でき、この変換の際に、コーナーの形状情報が失われることがなく、幾何学的な拘束関係が指定されている部位でも精度良く幾何形状を定義することが可能となる。
【００８６】
（第２実施例）
次に、本発明による立体形状データ変換装置及び立体形状データ変換方法の第２実施例を説明する。
【００８７】
第１実施例では、利用者が、ステップＰ３でコーナー位置を指定し、ステップＰ４でグループ定義のためにシード点又は稜線を指定する必要があった。しかし、対象物の形状が複雑になると、定義すべきコーナーやグループの数が増大するため、上記利用者の指定作業は煩雑なものとなる。この課題を解決するために、第２実施例では、立体形状データ変換装置がコーナー位置とグループに含まれる点の集合を推定して利用者に提示する機能を備える。
【００８８】
第２実施例の立体形状データ変換装置Ｃａの構成を図１５に示す。立体形状データ変換装置Ｃａが図１の第１実施例と異なる点は、コーナー推定手段Ｃ１５及びグループ推定手段Ｃ１６が追加され、これに伴ってコーナー定義手段Ｃ４ａ，グループ定義手段Ｃ５ａ及び表示手段Ｃ１３ａの機能が変更されていることである。その他の構成は、基本的に第１実施例と同様であるので、ここでは説明を省略する。
【００８９】
コーナー推定手段Ｃ１５は、コーナー推定コマンドＤ２１を受けてコーナー位置を推定し、コーナーの推定位置データＤ２２をコーナー定義手段Ｃ４ａに送る。また、コーナー推定手段Ｃ１５は、推定位置データＤ２２を表示手段Ｃ１３ａに送り、利用者に視覚的に表示させて、推定位置データＤ２２のうち利用者が選択したものだけをコーナー定義手段Ｃ４ａに送る機能も有する。推定位置データＤ２２は、コーナー推定手段Ｃ１５が推定したコーナー位置を記述するデータである。コーナー位置の推定方法の詳細は、図１６を用いて後述する。
【００９０】
コーナー定義手段Ｃ４ａは、図１のコーナー定義手段Ｃ４の持つ機能に加えて、推定位置データＤ２２を受けてコーナー定義データＤ４を点群記憶手段Ｃ１に送り、推定した位置に対応する点のコーナーフラグレコードＱ２を有効にして点群記憶手段Ｃ１に記憶させる機能を有する。
【００９１】
グループ推定手段Ｃ１６は、グループ推定コマンドＤ２３を受けて、利用者が指定したグループの種別情報をもとにグループに含まれる点の集合を推定し、推定領域データＤ２４をグループ定義手段Ｃ５ａに送る機能を有する。また、グループ推定手段Ｃ１６は、推定領域データＤ２４を表示手段Ｃ１３ａに送り、利用者に視覚的に表示させて、推定領域データＤ２４のうち利用者が選択したものだけをグループ定義手段Ｃ５ａに送る機能も有する。推定領域データＤ２４は、グループ推定手段Ｃ１６が推定したグループに含まれる点の集合を記述するデータである。グループに含まれる点の集合を推定する方法の詳細は、図１７を用いて後述する。
【００９２】
グループ定義手段Ｃ５ａは、図１のグループ定義手段Ｃ５の持つ機能に加えて、推定領域データＤ２４を受けてグループデータＤ６をグループ記憶手段Ｃ２に送り、新たなグループをグループ記憶手段Ｃ２に追加する機能を有する。表示手段Ｃ１３ａは、図１の表示手段Ｃ１３の持つ機能に加えて、推定位置データＤ２２又は推定領域データＤ２４を利用者に視覚的に表示する機能を有する。
【００９３】
次に、コーナー位置の推定方法の詳細を図１６を用いて説明する。ステップ
Ｐ３０（平面決定過程）では、点群データＤ１に含まれる１点に着目し、この点とその隣接点の座標値に基づいて、これらの点を最もよく近似する平面を最小自乗法により求める。ステップＰ３１（平面／点間垂直距離計算過程）では、平面と着目点の間の垂直距離を求める。
【００９４】
ステップＰ３１で求めた垂直距離がしきい値以上であれば（ステップＰ３２）、ステップＰ３３（推定位置登録過程）で、着目点の位置をコーナー推定位置として登録する。しきい値は、例えばセルの幅（一辺長さ）の２倍〜３倍とする。ステップＰ３４では、点群データＤ１に含まれる全ての点を評価するまで、ステップＰ３０〜Ｐ３３が繰り返される。
【００９５】
次に、グループに含まれる点の集合を推定する方法の詳細を図１７を用いて説明する。ステップＰ４０ａ（グループ種別情報指定過程）では、利用者がグループの種別情報を画面上で指定する。ステップＰ４０ｂ（パラメータ空間定義過程）では、「形状パラメータ」を座標軸とするパラメータ空間を定義する。「形状パラメータ」とは、グループの特徴量を規定するための独立なパラメータのことである。
【００９６】
例えば、グループの種別情報が「法線が未知の平面」の場合、グループの特徴量である基準点Ａと単位法線ベクトルＮは３つの独立なパラメータθ（０≦θ≦π），φ（０≦φ＜２π），ρ（０≦ρ）を用いて、
Ａ＝（ρｓｉｎθ・ｃｏｓφ，ρｓｉｎθ・ｓｉｎφ，ρｃｏｓθ）
Ｎ＝（ｓｉｎθ・ｃｏｓφ，ｓｉｎθ・ｓｉｎφ，ｃｏｓθ）
と表すことができる。
【００９７】
この場合、形状パラメータはθ，φ，ρであり、θφρ空間がパラメータ空間となる。各座標軸を等間隔に分割して、パラメータ空間全体を小さなセルに分割する。各セルは一つの整数値をセル値として持ち、その値を０に初期化する。各座標軸の分割数は、例えば５０〜１００とする。パラメータ空間上の一点は、実空間上の一つの曲面に対応している。上記例の場合、θφρ空間上の一点（θｃ，φｃ，ρｃ）は、実空間上の一つの平面ｓｉｎθｃ・ｃｏｓφｃ・Ｘ＋ｓｉｎθｃ・
ｓｉｎφｃ・Ｙ＋ｃｏｓθｃ・Ｚ＝ρｃに対応している。
【００９８】
次に、ステップＰ４０ｃ（グループ未所属点検索過程）で、既に定義済みのどのグループにも属さない点を検索する。ステップＰ４０ｄ（形状パラメータ決定過程）では、ステップＰ４０ｃで検索した一つの点に着目し、この点とその隣接点の座標値、及びグループの種別情報に基づいて、最小自乗法を利用して代表面と形状パラメータを求める。
【００９９】
ステップＰ４０ｅ（パラメータ空間登録過程）では、パラメータ空間上において、求めた形状パラメータを座標値とする点が属するセルを検索し、そのセルのセル値を１増やす。ステップＰ４０ｆでは、ステップＰ４０ｃで検出した全ての点を評価するまで、ステップＰ４０ｄ〜Ｐ４０ｅが繰り返される。
【０１００】
ステップＰ４０ｆで全ての点を評価後、ステップＰ４０ｇ（セル検索過程）で、セル値がしきい値以上となるセルを検索する。しきい値は、例えば５〜１０とする。セルの位置をセルの重心点で代表させると、あるセルのセル値が大きいということは、このセルの重心点に対応する実空間上の曲面が、立体形状の表面に含まれる可能性が高いことを意味している。
【０１０１】
ステップＰ４０ｈ（曲面決定過程）では、ステップＰ４０ｇで検索した一つのセルに着目し、このセルの重心点に対応する実空間上の曲面を求める。ステップＰ４０ｉ（曲面近傍点検索過程）では、既に定義済みのどのグループにも属さず、かつコーナー位置になく、かつステップＰ４０ｈで求めた曲面との距離がしきい値以下となる点を検索する。しきい値は、例えばセルの幅（一辺長さ）の０．５倍〜０．７５倍とする。
【０１０２】
ステップＰ４０ｊ（領域定義過程）では、ステップＰ４０ｉで検索した点群に対して、隣接した点群をグルーピングして領域を定義する。ステップＰ４０ｋでは、ステップＰ４０ｊで定義した一つの領域に着目し、その領域に含まれる点の数がしきい値以上であれば、ステップＰ４０ｌを実行する。しきい値は、例えば２０〜３０とする。
【０１０３】
ステップＰ４０ｌ（コーナー追加過程）では、ステップＰ４０ｊで定義した領域に隣接しかつコーナー位置にある点を、その領域に追加する。ステップＰ４０ｍ（推定領域登録過程）では、この領域を、グループに含まれる点集合の推定領域として登録する。ステップＰ４０ｎでは、全ての領域を評価するまで、ステップＰ４０ｋ〜Ｐ４０ｍが繰り返される。さらに、ステップＰ４０ｏでは、ステップＰ４０ｇで検索した全てのセルを評価するまで、ステップＰ４０ｈ〜Ｐ４０ｎが繰り返される。
【０１０４】
本実施例でも、第１実施例と同様な効果が得られる。更に、本実施例によれば、立体形状データ変換装置がコーナー位置を推定することにより、利用者がコーナー位置を定義する作業を簡略化できる。また、推定位置をコーナーとして登録するかどうかを利用者に問い合わせることにより、利用者が不適切であると判断したものを予め除外でき、データ変換の操作を容易且つ確実にすることができる。
【０１０５】
更に、立体形状データ変換装置がグループを推定することにより、利用者がグループを定義する作業を簡略化できる。また、推定領域をグループとして登録するかどうかを利用者に問い合わせることにより、利用者が不適切であると判断したものを予め除外でき、データ変換の操作を容易且つ確実にすることができる。
【０１０６】
（第３実施例）
次に、本発明による立体形状データ変換装置の第３実施例を説明する。第１実施例では、利用者が一旦コーナーやグループを定義した後は、これらを削除することはできなかった。これに対して、第３実施例では、利用者が自由にコーナーやグループを修正できるように、定義したコーナーやグループを削除できる機能を備える。
【０１０７】
第３実施例の立体形状データ変換装置Ｃｂの構成を図１８に示す。立体形状データ変換装置Ｃｂが図１の第１実施例と異なる点は、コーナー削除手段Ｃ１７及びグループ削除手段Ｃ１８が追加され、これに伴ってグループ記憶手段Ｃ２の機能が追加されていることである。その他の構成は、基本的に第１実施例と同様であるので、ここでは説明を省略する。
【０１０８】
コーナー削除手段Ｃ１７は、コーナー削除コマンドＤ２５を受け、点群データＤ１の中からＤ２５で選択されているコーナーを検索し、これらを削除するコーナーとみなして削除コーナーデータＤ２６を点群記憶手段Ｃ１に送る。さらに、削除するコーナー位置に対応する点のコーナーフラグレコードＱ２を無効にして、点群記憶手段Ｃ１に記憶させる機能を持つ。削除コーナーデータＤ２６は、削除するコーナーの位置を記述するデータである。
【０１０９】
グループ削除手段Ｃ１８は、グループ削除コマンドＤ２７を受け、グループデータＤ６の中からＤ２７で選択されているグループを検索し、これらを削除するグループとみなして削除グループデータＤ２８をグループ記憶手段Ｃ２に送る。さらに、これらのグループをグループ記憶手段Ｃ２に削除させる機能を持つ。削除グループデータＤ２８は、削除するグループを記述するデータである。グループ記憶手段Ｃ２は、削除グループデータＤ２８を受け、グループデータＤ６の中から削除グループデータＤ２８に記述されているグループを削除する。
【０１１０】
本実施例でも、第１実施例と同様な効果が得られる。更に、本実施例では、利用者が自由にコーナーやグループを修正できる。
【０１１１】
（第４実施例）
次に、本発明による立体形状データ変換装置の第４実施例を説明する。第４実施例の立体形状データ変換装置Ｃｃの構成を図１９に示す。立体形状データ変換装置Ｃｃが図１の第１実施例と異なる点は、未接続幾何形状検出手段Ｃ１９，差異計算手段Ｃ２０及び重ね合わせ手段Ｃ２１が追加され、これに伴って表示手段Ｃ１３ｃの機能が追加されていることである。その他の構成は、基本的に第１実施例と同様であるので、ここでは説明を省略する。
【０１１２】
未接続幾何形状検出手段Ｃ１９は、グループデータＤ６の中からグループの幾何形状がこのグループと隣接するグループの幾何形状と未接続状態にあるものを検出する機能を持つ。表示手段Ｃ１３ｃはグループデータＤ６を表示する際に、未接続幾何形状検出手段Ｃ１９で検出されたグループを強調して表示する。幾何形状が未接続の状態ままＢ−ｒｅｐｓデータに変換すると、立体形状の表面に隙間が生じ、不正なＣＡＤデータとなる。未接続の幾何形状を検出しそれらを強調して表示することにより、利用者に注意を促し、不正なＣＡＤデータを出力することを未然に防ぐことができる。
【０１１３】
差異計算手段Ｃ２０は、点群データＤ１とグループデータＤ６の幾何形状の差異を計算し、差異データＤ３０を重ね合わせ手段Ｃ２１に送る機能を持つ。差異データＤ３０は点群データＤ１とグループデータＤ６の幾何形状の差異を記述するデータである。両者の差異としては、例えば、点群データＤ１とグループデータＤ６の幾何形状の間の垂直距離を計算する。
【０１１４】
重ね合わせ手段Ｃ２１は、点群データＤ１とグループデータＤ６の幾何形状を重ね合わせて重ね合わせデータＤ３１を作成し、これを表示手段Ｃ１３ｃに送る機能を持つ。また、差異データＤ３０を受け、差異の値に応じて点群データＤ１又はグループデータＤ６の幾何形状に色付けして、重ね合わせデータＤ３１を作成し、これを表示手段Ｃ１３ｃに送る機能も持つ。重ね合わせデータＤ３１は点群データＤ１とグループデータＤ６の幾何形状を重ね合わせたデータである。
【０１１５】
表示手段Ｃ１３ｃは、表示手段Ｃ１３の持つ機能に加えて、グループデータ
Ｄ６を表示する際に、未接続幾何形状検出手段Ｃ１９で検出されたグループを強調して表示する機能と、重ね合わせデータＤ３１を表示する機能を持つ。
【０１１６】
点群データＤ１とグループデータＤ６の幾何形状を重ね合わせて画面上に表示することにより、Ｂ−ｒｅｐｓデータへの変換の際に生じる誤差を、利用者が容易に確認することができる。また、両者の差異に応じて、例えば片方を色付けして画面上に表示することにより、上記誤差をより容易に確認することができる。
【０１１７】
本実施例でも、第１実施例と同様な効果が得られる。更に、本実施例では、不正なＣＡＤデータが出力されることを未然に防ぐことができ、利用者はデータ変換の際に生じる誤差を容易に確認することができる。
【０１１８】
【発明の効果】
本発明によれば、３次元のビットマップデータや点群データをデータ容量がより小さいＢ−ｒｅｐｓデータに変換でき、この変換の際に、コーナーの形状情報が失われることがなく、幾何学的な拘束関係が指定されている部位でも精度良く幾何形状を定義することが可能となる。
【図面の簡単な説明】
【図１】本発明による立体形状データ変換装置の第１実施例の構成を示す図。
【図２】ビットマップデータＤ２の一例を示す図で、（ａ）はＤ２の全体図を、（ｂ）はＤ２の部分拡大図を、それぞれ示す。
【図３】図１の装置による立体形状データ変換方法を示す図。
【図４】図２（ｂ）に示したビットマップデータＤ２から点群データＤ１を求めた例を示す図で、（ａ）は第１の変換方法で変換した例を、（ｂ）は第２の変換方法で変換した例を、それぞれ示す。
【図５】第１の変換方法を用いて図２（ａ）に示したビットマップデータＤ２から点群データＤ１を求めた例を示す図で、（ａ）は全体図を、（ｂ）は（ａ）のＡ部の部分拡大図を、それぞれ示す。
【図６】図５（ｂ）の３つの点ａ，ｂ，ｃに関する点群データのデータ構成を示す図。
【図７】ステップＰ２で基準部位を指定する方法の一例を説明する図。
【図８】ステップＰ３でコーナーを選択する方法の一例を説明する図で、（ａ）は点群データＤ１の全体図を、（ｂ）はＤ１の部分拡大図を、それぞれ示す。
【図９】ステップＰ４でグループを定義する方法の一例を説明する図。
【図１０】グループデータＤ６のデータ構成の一例を示す図。
【図１１】ステップＰ４における第１の領域選択方法の説明図。
【図１２】ステップＰ４における第２の領域選択方法の説明図。
【図１３】ステップＰ８でグループ拘束関係を定義する方法の一例を説明する図。
【図１４】図３のデータ変換方法で得られたＢ−ｒｅｐｓデータＤ０の一例を示す図。
【図１５】本発明による立体形状データ変換装置の第２実施例の構成を示す図。
【図１６】第２実施例でコーナー位置を推定する方法の説明図。
【図１７】第２実施例でグループに含まれる点の集合を推定する方法の説明図。
【図１８】本発明による立体形状データ変換装置の第３実施例の構成を示す図。
【図１９】本発明による立体形状データ変換装置の第４実施例の構成を示す図。
【符号の説明】
Ｃ，Ｃａ，Ｃｂ，Ｃｃ…立体形状データ変換装置、Ｃ１…点群記憶手段、Ｃ２…グループ記憶手段、Ｃ３…入力手段、Ｃ４，Ｃ４ａ…コーナー定義手段、Ｃ５，Ｃ５ａ…グループ定義手段、Ｃ６…特徴量定義手段、Ｃ７…位相関係定義手段、Ｃ８…拘束関係定義手段、Ｃ９…Ｂ−ｒｅｐｓデータ構成手段、Ｃ１０…点選択手段、Ｃ１１…コーナー選択手段、Ｃ１２…グループ選択手段、Ｃ１３，Ｃ１３ａ，Ｃ１３ｃ…表示手段、Ｃ１４…基準部位指定手段、Ｃ１５…コーナー推定手段、Ｃ１６…グループ推定手段、Ｃ１７…コーナー削除手段、Ｃ１８…グループ削除手段、Ｃ１９…未接続幾何形状検出手段、Ｃ２０…差異計算手段、Ｃ２１…重ね合わせ手段。
【図１】
2004046545.tif 000003
【図２】
2004046545.tif 000004
【図３】
2004046545.tif 000005
【図４】
2004046545.tif 000006
【図５】
2004046545.tif 000007
【図６】
2004046545.tif 000008
【図７】
2004046545.tif 000009
【図８】
2004046545.tif 000010
【図９】
2004046545.tif 000011
【図１０】
2004046545.tif 000012
【図１１】
2004046545.tif 000013
【図１２】
2004046545.tif 000014
【図１３】
2004046545.tif 000015
【図１４】
2004046545.tif 000016
【図１５】
2004046545.tif 000017
【図１６】
2004046545.tif 000018
【図１７】
2004046545.tif 000019
【図１８】
2004046545.tif 000020
【図１９】
2004046545.tif 000021