(57)【要約】【課題】高速に形状データの同一性を判定するためのデータベース管理プログラム、データベース管理装置、データベース管理方法を提供する。【解決手段】第１形状データを構成する稜線を取得する第１稜線取得ステップと、第１稜線取得ステップにより取得された稜線の特徴を示す情報を第１稜線特徴情報として生成し、第１稜線特徴情報を第１形状データに対応付け、データベースへ登録する情報登録ステップと、検索条件を表す第２形状データを構成する稜線を取得する第２稜線取得ステップと、第２稜線取得ステップにより取得された稜線の稜線特徴情報を第２稜線特徴情報として生成する情報生成ステップと、第１稜線特徴情報と第２稜線特徴情報とに基づいて、第１形状データのうち第２形状データに一致するものである第３形状データを検索する検索ステップとをコンピュータに実行させる。【選択図】図１
2008059297.tif 000002
【特許請求の範囲】
【請求項１】
形状データに関するデータベースの管理をコンピュータに実行させるデータベース管理プログラムであって、
予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得ステップと、
前記第１稜線取得ステップにより取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録ステップと、
検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得ステップと、
前記第２稜線取得ステップにより取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成ステップと、
前記情報登録ステップにより登録された第１稜線特徴情報と前記情報生成ステップにより生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索ステップと
をコンピュータに実行させるデータベース管理プログラム。
【請求項２】
請求項１に記載のデータベース管理プログラムにおいて、
前記稜線特徴情報は、稜線の形状を示す稜線形状情報と、該稜線が属する形状データにおける他の稜線との位置関係を表す稜線位置情報とを含むことを特徴とするデータベース管理プログラム。
【請求項３】
請求項２に記載のデータベース管理プログラムにおいて、
前記検索ステップは、前記第１形状データの前記稜線形状情報及び前記第２形状データの前記稜線形状情報に基づいて、前記第１形状データのうち、該第１形状データの前記稜線形状情報が前記第２形状データの前記稜線形状情報に一致するものを、候補形状データとし、前記候補形状データの前記稜線位置情報及び前記第２形状データの前記稜線位置情報に基づいて、前記候補形状データのうち、該候補形状データを構成する稜線間の位置関係が前記第２形状データを構成する稜線間の位置関係に一致するものを前記第３形状データとすることを特徴とするデータベース管理プログラム。
【請求項４】
形状データに関するデータベースの管理を行うデータベース管理装置であって、
予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得部と、
前記第１稜線取得部により取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録部と、
検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得部と、
前記第２稜線取得部により取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成部と、
前記情報登録部により登録された第１稜線特徴情報と前記情報生成部により生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索部と
を備えるデータベース管理装置。
【請求項５】
形状データに関するデータベースの管理を行うデータベース管理方法であって、
予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得ステップと、
前記第１稜線取得ステップにより取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録ステップと、
検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得ステップと、
前記第２稜線取得ステップにより取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成ステップと、
前記情報登録ステップにより登録された第１稜線特徴情報と前記情報生成ステップにより生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索ステップと
を実行するデータベース管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形状データに関するデータベースを管理するデータベース管理プログラム、データベース管理装置、データベース管理方法に関するものである。
【背景技術】
【０００２】
製造業における製品開発は、常に３次元形状モデルや２次元図面の要素を新規に作成して設計を進めていくものではない。納期短縮やコスト削減のために、既存の３次元形状モデルや２次元図面の全部または一部のデータが複写され、再利用されることが多い。そのために、何度も利用する３次元形状モデルや２次元図面の要素は、再利用する単位のモデル（標準モデルや共通モデル）として、「モデルＬ（Library）ＤＢ（Database）」と呼ばれるＤＢ（Database）に格納される。これにより、設計者が必要に応じてモデルＬＤＢからデータを取り出して再利用する等、既存資産を流用しながらの設計が行われる。
【０００３】
このような流用設計を行う場合、既存のモデルが格納されているＤＢから、あるいは、前述のモデルＬＤＢから、設計者が必要とするモデルの検索にかかる時間の短縮は、全体の製品設計期間の短縮や開発コストダウンにつながる。なお、設計者が設計中に必要とするモデルを検索するタイミングとしては、新規に形状を作成する場合に留まらない。既存のモデルに変更が行われたとき、そのモデルの全部または一部を流用しているモデルなど、変更されたモデルと関連のあるモデルを検索し、必要があれば検索されたモデルの修正を行う場合がある。また、製品が市場へ出荷された後にその製品内のモデルに改善の必要性が出た場合には、そのモデルの修正だけにとどまらず、そのモデルを利用している製品すべてを検索し、不良のないモデルに交換する等の対策を行う場合がある。このように、製品の作成段階だけではなく、製品の設計−製造−出荷後、そして廃棄といった製品のライフサイクルのすべての工程において、モデルや形状の検索処理を必要とする場面は多く、検索時間の短縮、情報の収集期間の短縮などにより、必要とするデータに高速にアクセスしたいという市場ニーズは強い。
【０００４】
次に、モデルの検索方法について説明する。まず、予め流用するモデルや図面の名前に意味を持たせて保存しておき、ＣＡＤ（Computer Aided Design）上やデータ管理システム上のコマンドにより、モデルや図面の名前中の文字列を検索キーとして必要なデータを検索する手法である「文字列検索」がある。また、検索キーとして文字列を用いるのではなく、モデルや図面の要素に付加されている「赤」「青」といった色の情報や「鉄」「アルミ」といった素材情報等、モデルや図面が持つ属性情報を検索キーとして検索できるＣＡＤも多い。その他、２次元図面であれば、図面中に書かれている線分や円の要素の種類や数を検索キーとして、設計者の必要とする図面を検索するＣＡＤがある。また、３次元モデルの特徴を示す情報としては、色、形状、体積、面積、面、稜線等の構成要素数、輪郭線、慣性モーメント、アスペクト比等様々なものがあるため、それらの特徴の１つ或いは複数を検索キーとして、設計者の必要とするモデルを検索するＣＡＤがある。
【０００５】
また、文字列や属性情報を検索キーとするのではなく、３次元形状そのものを検索キーとして、ＤＢの中から検索キーの形状と類似するモデルを求める「形状マッチング」の研究が様々な分野で行われている。また画像処理によるマッチング処理の方式も考案されている。例えば、２次元図面を一度イメージデータに変換し、線が存在する部分の類似度に従って形状の類似性を判断する方式、３次元が画面に表示された状態をイメージデータに変換し、その輪郭形状や面の輝度による凸凹度を評価し、類似した形状かどうかを判断する方式などがある。
【０００６】
世界的に設計ツールの中心として２次元ＣＡＤに代わって３次元ＣＡＤが普及してきた現在では、設計者の必要とする形状と一致する３次元モデルを簡単に速く正確に検索できることは、市場への製品の早期投入による売上向上、開発コスト削減のためには必須になっており、そのような機能やツールの提供が求められている。その需要に応えるべく、３次元ＣＡＤデータの検索を行う類似形状検索エンジンが提供されている（例えば、非特許文献１及び非特許文献２参照）。
【０００７】
なお、本発明の関連ある従来技術として、要求仕様を実現する設計に必要な事例部品や標準部品の組み合わせを提示可能にし、更に標準部品データベースの構築を容易にする設計支援装置がある（例えば、特許文献１参照）。
【特許文献１】特開平９−１７９８９２号公報
【非特許文献１】武藤工業株式会社，”３ＤＳｅａｒｃｈＩＴ”，ＵＲＬ＝ｈｔｔｐ：／／ｗｗｗ．ｍｕｔｏｈ．ｃｏ．ｊｐ／ｉｔ／ｐｒｏｄｕｃｔｓ／３ｄｓｅａｒｃｈｉｔ／ｉｎｄｅｘ．ｈｔｍ，２００２年７月２９日
【非特許文献２】日本アイ・ビー・エム株式会社  東京基礎研究所，”３次元形状類似検索技術”，ＵＲＬ＝ｈｔｔｐ：／／ｗｗｗ．ｒｅｓｅａｒｃｈ．ｉｂｍ．ｃｏｍ／ｔｒｌ／ｐｒｏｊｅｃｔｓ／３ｄｗｅｂ／ＳｉｍＳｅａｒｃｈ．ｈｔｍ，１９９９年９月３０日
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したようにＣＡＤへの組み込みを前提とした類似形状検索エンジンがあるが、それらは類似形状の検索を行うツールに留まっている。しかしながら、ＣＡＤを利用した実際の設計現場において、設計者は、数値化された長さや角度などを意識した設計を行っている。そのため、例えば「１０ｍｍの穴を３つ持つ製品モデル」のように正確な条件に適合するモデルを必要とする場合がある。この場合、類似形状を検索するだけではなく、検索により得られた多くの候補の中から条件に合致する目的の形状を絞り込む必要がある。
【０００９】
また、色や輪郭線などモデルが持つ属性情報を使って検索を行う場合、ＤＢからモデルのロードを行い、メモリ上で形状の属性情報を取り出し、検索キーと比較する処理が行われる。従って、このような検索を行う場合、純粋な検索時間のほかに、システム内部へのロードやメモリの解放等の処理時間も必要となり非常に多くの検索時間がかかっていた。
【００１０】
本発明は上述した問題点を解決するためになされたものであり、高速に形状データの同一性を判定するためのデータベース管理プログラム、データベース管理装置、データベース管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するため、本発明は、形状データに関するデータベースの管理をコンピュータに実行させるデータベース管理プログラムであって、予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得ステップと、前記第１稜線取得ステップにより取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録ステップと、検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得ステップと、前記第２稜線取得ステップにより取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成ステップと、前記情報登録ステップにより登録された第１稜線特徴情報と前記情報生成ステップにより生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索ステップとをコンピュータに実行させるものである。
【００１２】
また、本発明に係るデータベース管理プログラムにおいて、前記稜線特徴情報は、稜線の形状を示す稜線形状情報と、該稜線が属する形状データにおける他の稜線との位置関係を表す稜線位置情報とを含むことを特徴とする。
【００１３】
また、本発明に係るデータベース管理プログラムにおいて、前記稜線形状情報は、稜線の種別を表す種別情報と該稜線の寸法を表す寸法情報とを含むことを特徴とする。
【００１４】
また、本発明に係るデータベース管理プログラムにおいて、前記稜線位置情報は、稜線が属する形状データにおける該稜線の位置を表す座標である代表座標と該稜線の方向を表すベクトルである代表ベクトルとを含むことを特徴とする。
【００１５】
また、本発明に係るデータベース管理プログラムにおいて、前記検索ステップは、前記第１形状データの前記稜線形状情報及び前記第２形状データの前記稜線形状情報に基づいて、前記第１形状データのうち、該第１形状データの前記稜線形状情報が前記第２形状データの前記稜線形状情報に一致するものを、候補形状データとし、前記候補形状データの前記稜線位置情報及び前記第２形状データの前記稜線位置情報に基づいて、前記候補形状データのうち、該候補形状データを構成する稜線間の位置関係が前記第２形状データを構成する稜線間の位置関係に一致するものを前記第３形状データとすることを特徴とする。
【００１６】
また、本発明に係るデータベース管理プログラムにおいて、前記検索ステップは、前記第２形状データを構成する稜線の組み合わせを選択し、該組み合わせに対応する前記稜線位置情報から該組み合わせの位置関係を算出し、前記候補形状データを構成する稜線の組み合わせを選択し、該組み合わせに対応する前記稜線位置情報から該組み合わせの位置関係を算出し、前記第２形状データから得られた全ての組み合わせの位置関係と前記候補形状データから得られた全ての組み合わせの位置関係が一致する場合、前記候補形状データを前記第３形状データとすることを特徴とする。
【００１７】
また、本発明に係るデータベース管理プログラムにおいて、前記寸法情報は該稜線の長さ、該稜線の半径、該稜線における始点から終点までの直線の距離のいずれかであり、前記代表座標は該稜線の２等分点、該稜線の中心、該稜線の始点と該稜線の終点の２等分点、該稜線の始点のいずれかであり、前記代表ベクトルは該稜線における始点から終点への方向、該稜線の中心軸の方向、前記代表座標における接線の方向のいずれかを示すことを特徴とする。
【００１８】
また、本発明に係るデータベース管理プログラムにおいて、前記種別情報は、直線、円、円弧、円弧以外の開曲線である第１曲線、円以外の閉曲線である第２曲線のいずれかであることを特徴とする。
【００１９】
また、本発明に係るデータベース管理プログラムにおいて、前記種別情報が直線である稜線に対して、前記寸法情報は該稜線の長さであり、前記代表座標は該稜線の２等分点であり、前記代表ベクトルは該稜線における始点から終点への方向を示すことを特徴とする。
【００２０】
また、本発明に係るデータベース管理プログラムにおいて、前記種別情報が円である稜線に対して、前記寸法情報は該稜線の半径であり、前記代表座標は該稜線の中心であり、前記代表ベクトルは該稜線の中心軸の方向を示すことを特徴とする。
【００２１】
また、本発明に係るデータベース管理プログラムにおいて、前記種別情報が円弧である稜線に対して、前記寸法情報は該稜線の長さであり、前記代表座標は該稜線の２等分点であり、前記代表ベクトルは該代表座標における該稜線の接線の方向を示すことを特徴とする。
【００２２】
また、本発明に係るデータベース管理プログラムにおいて、前記種別情報が第１曲線である稜線に対して、前記寸法情報は該稜線における始点から終点までの直線の距離であり、前記代表座標は該稜線における始点と終点の２等分点であり、前記代表ベクトルは該稜線における始点から終点への方向を示すことを特徴とする。
【００２３】
また、本発明に係るデータベース管理プログラムにおいて、前記種別情報が第２曲線である稜線に対して、前記寸法情報は該稜線の長さであり、前記代表座標は該稜線の２等分点であり、前記代表ベクトルは該代表座標における該稜線の接線の方向を示すことを特徴とする。
【００２４】
また、本発明に係るデータベース管理プログラムにおいて、前記情報登録ステップは、前記種別情報に基づいて利用頻度の低い種別から順に稜線形状情報をソートすることを特徴とする。
【００２５】
また、本発明に係るデータベース管理プログラムにおいて、前記情報登録ステップは、前記寸法情報により前記稜線形状情報をソートすることを特徴とする。
【００２６】
また、本発明は、形状データに関するデータベースの管理を行うデータベース管理装置であって、予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得部と、前記第１稜線取得部により取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録部と、検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得部と、前記第２稜線取得部により取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成部と、前記情報登録部により登録された第１稜線特徴情報と前記情報生成部により生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索部とを備えたものである。
【００２７】
また、本発明に係るデータベース管理装置において、前記稜線特徴情報は、稜線の形状を示す稜線形状情報と該稜線が属する形状データにおける他の稜線との位置関係を表す稜線位置情報を含むことを特徴とする。
【００２８】
また、本発明に係るデータベース管理装置において、前記検索部は、前記第１形状データの前記稜線形状情報及び前記第２形状データの前記稜線形状情報に基づいて、前記第１形状データのうち、該第１形状データの前記稜線形状情報が前記第２形状データの前記稜線形状情報に一致するものを、候補形状データとし、前記候補形状データの前記稜線位置情報及び前記第２形状データの前記稜線位置情報に基づいて、前記候補形状データのうち、該候補形状データを構成する稜線間の位置関係が前記第２形状データを構成する稜線間の位置関係に一致するものを前記第３形状データとすることを特徴とする。
【００２９】
また、本発明に係るデータベース管理装置において、前記検索部は、前記第２形状データを構成する稜線の組み合わせを選択し、該組み合わせに対応する前記稜線位置情報から該組み合わせの位置関係を算出し、前記候補形状データを構成する稜線の組み合わせを選択し、該組み合わせに対応する前記稜線位置情報から該組み合わせの位置関係を算出し、前記第２形状データから得られた全ての組み合わせの位置関係と前記候補形状データから得られた全ての組み合わせの位置関係が一致する場合、前記候補形状データを前記第３形状データとすることを特徴とする。
【００３０】
また、本発明は、形状データに関するデータベースの管理を行うデータベース管理方法であって、予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得ステップと、前記第１稜線取得ステップにより取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録ステップと、検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得ステップと、前記第２稜線取得ステップにより取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成ステップと、前記情報登録ステップにより登録された第１稜線特徴情報と前記情報生成ステップにより生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索ステップとを実行するものである。
【発明の効果】
【００３１】
本発明によれば、高速に形状データの同一性を判定することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００３３】
本実施の形態においては、本発明に係るデータベース管理装置をＣＡＤ装置に適用した場合について説明する。
【００３４】
まず、本実施の形態に係るＣＡＤ装置の構成について説明する。
【００３５】
図１は、本実施の形態に係るＣＡＤ装置の構成の一例を示すブロック図である。このＣＡＤ装置２は、入力部１、モデルＤＢ７、表示部８、稜線特徴情報ＤＢ９に接続される。ＣＡＤ装置２は、編集部３、データ管理部４、モデラカーネル部５、稜線特徴情報管理部６を備える。ここで、編集部３、データ管理部４、モデラカーネル部５、稜線特徴情報管理部６は、ＣＡＤ装置２のＣＰＵにより実行されるプログラムとして実現される。
【００３６】
入力部１は、キーボードやマウス等の入力インターフェースである。モデルＤＢ７は、ＣＡＤ装置２により作成されたモデル（形状データ）を格納するＤＢである。表示部８は、モニタ等、ＣＡＤ装置２により作成されたデータや形状を表示するものである。稜線特徴情報ＤＢ９は、高速にモデルの検索を行うための情報を格納するＤＢであり、モデルＤＢ７中の稜線に基づく稜線特徴情報を格納する。
【００３７】
次に、モデル作成時におけるＣＡＤ装置２の動作について説明する。
【００３８】
まず、ＣＡＤ装置のユーザ（モデルの設計者）から入力部１においてモデルの断面形状や寸法値など、モデルを作成するための指示が入力されると、編集部３は、入力部１からの指示に従って、モデラカーネル部５に３次元形状モデルの作成依頼を行う。次に、モデラカーネル部５は、与えられた断面形状や寸法値などに基づいて、３次元形状モデルの設計データとモデルを表示するための表示データを生成し、結果を編集部３に返す。次に、編集部３は、モデラカーネル部５から得られた設計データと表示データをデータ管理部４に渡す。データ管理部４は、設計データ中の面、稜線、頂点に対して管理ＩＤを割り振り、モデル毎の設計ファイルとしてモデルＤＢ７に格納する。また、表示データを表示部８に表示する。
【００３９】
次に、稜線特徴情報について説明する。
【００４０】
ＣＡＤの３次元モデルのデータ構造は、ワイヤフレームモデル、サーフェスモデル、ソリッドモデルの３種類に分別できる。しかし、モデルの体積や面積を求めるのでなければ、モデルの形状は、モデルを構成する単数あるいは複数の稜線（エッジ）列だけで表現されることができる。本実施の形態においては、モデルＤＢ７における稜線は、稜線特徴情報ＤＢ９における稜線特徴情報に変換される。稜線特徴情報は、稜線から得られる特徴線の種別を表す特徴線種別（種別情報）、特徴線の大きさを表す特徴線長（寸法情報）、特徴線の位置を表す代表座標、特徴線の方向を表す法線ベクトルまたは接線ベクトルである代表ベクトルの４つの情報を用いて表される。
【００４１】
また、一般的なモデルＤＢ７における全ての稜線は、直線、円、円弧、楕円弧、楕円、閉スプライン（始点と終点が同じ座標にある閉じた自由曲線）と開スプライン（開いた自由曲線）の７種類の稜線種別に分類される。本実施の形態において、全ての稜線は特徴線に変換され、直線、円、円弧、曲線１（第１曲線）、曲線２（第２曲線）の５種類の特徴線種別に分類される。図２は、本実施の形態に係る稜線種別と特徴線種別の対応付けの一例を示す表である。この表において、第１列は、稜線種別を表し、第２列は、稜線種別に対応する特徴線種別を表す。ここで、稜線種別における直線、円、円弧は、それぞれ特徴線種別における直線、円、円弧に対応付けられる。また、稜線種別における楕円弧及び開スプラインは、始点座標と終点座標が異なる曲線として統合され、特徴線種別における曲線１に対応付けられる。また、稜線種別における楕円及び閉スプラインは、始点座標と終点座標が同一の曲線として統合され、特徴線種別における曲線２に対応付けられる。
【００４２】
図３は、本実施の形態に係る特徴線種別の一例を示す概念図である。図４は、本実施の形態に係る稜線特徴情報の内容の一例を示す表である。この表は、特徴線種別毎に、特徴線種別（特徴線種別ＩＤ）、特徴線長、代表座標、代表ベクトルを示す。特徴線種別が曲線１または曲線２である場合、対応する稜線に含まれる制御点や通過点の情報は省かれる。つまり、稜線に比べて稜線特徴情報のデータ構造はシンプルであり、検索時に比較するデータ量が減少する。
【００４３】
また、特徴線種別が直線、円、円弧、曲線２である場合、対応する稜線の稜線長が算出され、特徴線長になる。また、特徴線種別が曲線１である場合、対応する稜線の始点から終点までの直線距離が算出され、特徴線長になる。
【００４４】
また、特徴線種別が円である場合、対応する稜線の中心座標がそのまま代表座標になる。また、特徴線種別が曲線２である場合、対応する稜線の始点の座標がそのまま代表座標になる。また、特徴線種別が直線、曲線１である場合、始点と終点を結ぶ線分の中点が算出され、代表座標になる。また、特徴線種別が円弧である場合、対応する稜線を２等分する稜線上の点が算出され、代表座標になる。
【００４５】
また、特徴線種別が直線、曲線１である場合、始点から終点への方向を表す単位ベクトル（接線ベクトル）が算出され、代表ベクトルになる。また、特徴線種別が円、円弧である場合、対応する稜線の中心軸の方向を表す単位ベクトル（対応する稜線の法線ベクトル）が算出され、代表ベクトルになる。また、特徴線種別が曲線２である場合、対応する稜線の始点における接線ベクトルが算出され、代表ベクトルになる。
【００４６】
次に、稜線特徴情報ＤＢ９について説明する。
【００４７】
稜線特徴情報ＤＢ９は、インデックスファイルＤＢと位置データファイルＤＢから構成される。図５は、本実施の形態に係るインデックスファイルＤＢのデータ構造の一例を示すデータ構造図である。インデックスファイルＤＢは、モデル毎のインデックスファイルを格納する。インデックスファイルの順序は、更新日の新しいものから順番にソートされる。更新した日付が新しいモデル程、設計者によりアクセスされる頻度が高いことを想定したものである。これにより、モデルの検索を高速化することができる。また、このインデックスファイルの順序により、検索処理を途中で止めるような場合であっても、設計者のアクセス頻度が高いモデル程、見つけられる可能性が高くなる。
【００４８】
モデル毎のインデックスファイルは、そのモデルの更新日、そのモデルを構成する要素（稜線）の数を示す要素数、要素毎に存在し、その要素の概要を示す要素インデックス、位置データファイルＤＢにおいて対応するモデルの位置データファイルの先頭アドレスを指し示す位置データファイルポインタ、モデルＤＢ７において対応するモデルのフルパスを含むモデル名、そのモデルに付属するコメント等のモデル任意情報を格納する。要素インデックスは、要素の稜線特徴情報のうち、特徴線種別ＩＤと特徴線長を格納する。特徴線種別ＩＤは、１，２，３，４，５のいずれかで表され、それぞれ特徴線種別の直線、円、円弧、曲線１、曲線２に対応する。
【００４９】
実際のインデックスファイルにおいて、特徴線種別ＩＤは、３ｂｉｔの符号なし整数として格納される。また、特徴線長は、特徴線長（８ｂｉｔの実数）×１０００．０−１．０が符号なし整数に変換され、格納される。このとき、特徴線長は、１μｍ〜約５３６ｍの範囲の値を表すことができる。ここで、値の範囲を０．１μｍ〜約５３ｍの範囲の値としても良い。
【００５０】
１つのインデックスファイル内の要素インデックスは、実際の設計物における要素の特徴線種別の出現頻度が少ないものから順（曲線２、曲線１、円弧、円、直線の順）にソートされる。つまり、特徴線種別ＩＤが大きいものから順にソートされる。また、同一の特徴線種別ＩＤを持つ要素が複数ある場合、要素インデックスは特徴線長の大きいものから順にソートされる。なお、同一の特徴線種別ＩＤを持つ要素が複数ある場合、要素インデックスは、特徴線長の小さいものから順にソートされても良い。ここで、データの並べ替えについては、クイックソートなどの手段が用いられる。
【００５１】
図６は、本実施の形態に係る位置データファイルＤＢのデータ構造の一例を示すデータ構造図である。位置データファイルＤＢは、モデル毎の位置データファイルを格納する。位置データファイルは、要素数、要素毎の要素位置データを格納する。要素位置データは、要素の稜線特徴情報のうち、代表座標（Ｘ、Ｙ、Ｚ）、代表ベクトル（Ｎｘ，Ｎｙ，Ｎｚ）を格納する。代表ベクトルは、次式によりから緯度と経度（θ、φ）へ変換され、格納される。
【００５２】
θ＝ａｃｏｓ（Ｎｚ）
φ＝ａｔａｎ２（Ｎｙ，Ｎｘ）
【００５３】
実際の位置データファイルにおいて、代表座標（Ｘ、Ｙ、Ｚ）は、それぞれ４ｂｉｔの実数として格納される。また、代表ベクトル（θ，φ）は、それぞれ０〜２π［ｒａｄ］の範囲の実数が０〜２16の範囲の１６ｂｉｔの符号なし整数に変換され、格納される。
【００５４】
１つの位置データファイル内の要素位置データは、要素インデックスと同様、実際の設計物における要素の特徴線種別ＩＤの大きいものから順にソートされ、同一の特徴線種別ＩＤでは、特徴線長の大きいものから順にソートされる。
【００５５】
次に、稜線特徴情報管理部６の動作について説明する。
【００５６】
図７は、本実施の形態に係る稜線特徴情報管理部の動作の一例を示すフローチャートである。まず、入力部１を介してユーザから稜線特徴情報ＤＢ９の構築の指示を受けると、稜線特徴情報管理部６は、モデルＤＢ７からモデル毎に稜線を抽出し、稜線から稜線特徴情報を生成し、１次ファイルとして格納する稜線特徴情報登録処理を行う（Ｓ１１）。１次ファイルのデータ構造は、稜線特徴情報ＤＢ９と同様のデータ構造のインデックスファイルと位置データファイルで構成される。
【００５７】
次に、稜線特徴情報管理部６は、所定のタイミングで１次ファイルの内容を稜線特徴情報ＤＢ９に反映する稜線特徴情報更新処理を行う（Ｓ１２）。
【００５８】
次に、入力部１を介してユーザから検索キーが入力されると、稜線特徴情報管理部６は、検索キーに合致するモデルを、稜線特徴情報ＤＢ９から検索する稜線特徴情報検索処理を行う（Ｓ１３）。
【００５９】
次に、稜線特徴情報登録処理について説明する。
【００６０】
図８は、本実施の形態に係る稜線特徴情報登録処理の動作の一例を示すフローチャートである。ＣＡＤ装置２により設計され、モデルＤＢ７に格納された設計モデルは、幾つかの部品のモデルで構成されている。まず、稜線特徴情報管理部６は、稜線特徴情報ＤＢ９に登録しようとする設計モデルに含まれる部品の数をカウントし、その結果を部品点数として変数ＰＣに格納する（Ｓ３１）、次に、稜線特徴情報管理部６は、ＰＣが０であるか否かの判断を行う（Ｓ３２）。
【００６１】
ＰＣが０である場合（Ｓ３２，Ｙｅｓ）、即ち稜線特徴情報を生成すべき部品がない場合、このフローは終了する。一方、ＰＣが１以上である場合（Ｓ３２，Ｎｏ）、稜線特徴情報管理部６は、モデルＤＢ７内のＰＣ個の部品のうち１つの部品を選択して着目部品とし、モデルＤＢ７から着目部品のモデルをロードし、モデルから稜線特徴情報ＤＢ９に格納する情報（モデル名、任意情報等）を取得する（Ｓ３３）。次に、稜線特徴情報管理部６は、着目部品内の稜線の数を取得し、変数ＥＣに格納する（Ｓ３４）。
【００６２】
次に、稜線特徴情報管理部６は、着目部品内のＥＣ個の稜線のうち１つの稜線を選択して着目稜線とする（Ｓ３５）。次に、稜線特徴情報管理部６は、着目稜線の情報を取得し（Ｓ３６）、稜線を稜線特徴情報に変換し（Ｓ３７）、インデックスファイル及び位置データファイルの形式で１次ファイルへ登録する（Ｓ３８）。次に、稜線特徴情報管理部６は、ＥＣを１減少させ（Ｓ３９）、ＥＣが０であるか否かの判断を行う（Ｓ４０）。ＥＣが１以上である場合（Ｓ４０，Ｎｏ）、即ち、着目部品中に選択されていない稜線が残っている場合、処理Ｓ３５へ移行する。一方、ＥＣが０である場合（Ｓ４０，Ｙｅｓ）、即ち、着目部品中の稜線を全て選択し終えた場合、稜線特徴情報管理部６は、インデックスファイルのデータ構造において説明したように、１次ファイルにおいて着目部品中の要素のソートを行い（Ｓ４１）、ＰＣを１減少させ（Ｓ４２）、処理Ｓ３２へ移行する。
【００６３】
次に、稜線特徴情報更新処理について説明する。稜線特徴情報管理部６は、ＣＡＤ装置２のＣＰＵ（Central Processing Unit）がアイドル状態である場合、前回の稜線特徴情報更新処理から所定の時間が経過し、かつ検索処理が行われていない場合、入力部２を介してユーザにより稜線特徴情報ＤＢ更新ボタンが押下され、かつ検索処理が行われていない場合、等のタイミングで稜線特徴情報更新処理を行う。ここで、編集部３によりＣＡＤ画面上に稜線特徴情報ＤＢ更新ボタンが提供される。稜線特徴情報更新処理において、稜線特徴情報管理部６は、１次ファイルにおけるインデックスファイルと位置データファイルを稜線特徴情報ＤＢ９に移動し、インデックスファイルＤＢのデータ構造で説明したようにインデックスファイルＤＢのソートを行う。また、稜線特徴情報管理部６は、位置データファイルＤＢの更新に合わせてインデックスファイルにおける位置データファイルポインタを更新する。
【００６４】
上述したように、稜線特徴情報登録処理により稜線特徴情報ＤＢ９のデータ構造と同様の１次ファイルが生成され、稜線特徴情報検索処理が行われていない時に稜線特徴情報更新処理により稜線特徴情報ＤＢ９に反映することにより、稜線特徴情報検索処理中に稜線特徴情報ＤＢ９のデータが更新されることによる稜線特徴情報検索処理の不具合を回避することができる。
【００６５】
次に、稜線特徴情報検索処理について説明する。
【００６６】
図９は、本実施の形態に係る稜線特徴情報検索処理の動作の一例を示すフローチャートである。まず、稜線特徴情報管理部６は、入力部１を介してユーザからの検索条件を受け付け、検索キーを生成する検索キー生成処理を行う（Ｓ５１）。次に、稜線特徴情報管理部６は、インデックスファイルＤＢを用いて、モデルの絞り込みを行い、その結果を候補リストとする候補絞り込み処理を行う（Ｓ５２）。次に、稜線特徴情報管理部６は、位置データファイルＤＢを用いて、検索キー中の要素の位置関係と候補リスト中の要素の位置関係の比較により検索キーに一致するモデルを検索結果のモデルとして決定する位置関係マッチング処理を行い（Ｓ５３）、このフローは終了する。
【００６７】
次に、検索キー生成処理について説明する。
【００６８】
図１０は、本実施の形態に係る検索キーのデータ構造の一例を示すデータ構造図である。検索キーは、モデル（部品）毎に、要素数、要素毎の要素インデックス、要素毎の要素位置データで構成される。稜線特徴情報ＤＢ９と同様、要素インデックスは、稜線特徴情報のうち特徴線種別ＩＤと特徴線長を格納し、要素位置データは、稜線特徴情報のうち、代表座標（Ｘ，Ｙ，Ｚ）と代表ベクトル（緯度，経度）を格納する。更に、検索キーにおける要素インデックスの順序は、インデックスファイルＤＢにおける要素インデックスの順序と同様、特徴線種別ＩＤの大きいものから順にソートされ、同一の特徴線種別ＩＤでは、特徴線長の大きいものから順にソートされる。
【００６９】
図１１は、本実施の形態に係る検索キー生成処理の動作の一例を示すフローチャートである。データ管理部４は、ユーザが設計中のモデルである設計モデルを表示部８に表示させる（Ｓ６１）。図中の処理Ｓ６１は、表示部８により表示された設計モデルを示す。次に、稜線特徴情報管理部６は、入力部１を介してユーザにより入力された検索条件を取得する（Ｓ６２）。図中の処理Ｓ６２は、表示部８により表示された設計モデルにおいて、１つの部品が選択された状態を示す。検索条件は、入力部１を介してユーザにより画面上で選択された設計モデルの全部または一部（稜線、面）である。次に、稜線特徴情報管理部６は、設計モデルのうち検索条件に含まれる稜線を取得する（Ｓ６３）。図中の処理Ｓ６３は、選択された部品の稜線を示す。次に、稜線特徴情報管理部６は、稜線特徴情報登録処理と同様、取得した稜線を稜線特徴情報に変換する（Ｓ６４）。図中の処理Ｓ６４は、稜線の番号と稜線毎の特徴線種別を示す。次に、稜線特徴情報管理部６は、変換した稜線特徴情報から検索キーを生成し、ソートし（Ｓ６５）、このフローは終了する。図中の処理Ｓ６５は、生成された検索キーのデータ構造を示す。
【００７０】
次に、候補絞り込み処理について説明する。
【００７１】
図１２は、本実施の形態に係る候補絞り込み処理の動作の一例を示すフローチャートである。まず、稜線特徴情報管理部６は、インデックスファイルＤＢにおいて着目するモデルである着目モデルのＩＤ、ｉを１に初期化する（Ｓ７１）。次に、稜線特徴情報管理部６は、着目モデルのインデックスファイルを取得する（Ｓ７２）。次に、稜線特徴情報管理部６は、検索キー中の要素である検索キー要素のＩＤ、ｍを１に初期化し、着目モデル中の要素であるモデル要素のＩＤ、ｎを１に初期化する（Ｓ７３）。
【００７２】
次に、稜線特徴情報管理部６は、検索キー要素ｍの要素インデックスとモデル要素ｎの要素インデックスの比較を行う。ここで、検索キー要素ｍにおける特徴線種別ＩＤをＱｍ、特徴線長をＰｍとし、モデル要素ｎにおける特徴線種別ＩＤをＬｎ、特徴線長をＫｎとする。また、稜線特徴情報管理部６は、Ｌｎ＞Ｑｍの条件（検索キー要素ｍの特徴線種別ＩＤよりモデル要素ｎの特徴線種別ＩＤが大きい）、またはＬｎ＝ＱｍかつＫｎ＋ε＞Ｐｍの条件（検索キー要素ｍの特徴線種別ＩＤとモデル要素ｎの特徴線種別ＩＤが等しく、検索キー要素ｍの特徴線長よりモデル要素ｎの特徴線長が大きい）を満たす（モデル要素を進める必要がある）か否かの判断を行う（Ｓ７７）。ここで、εは、特徴線長における所定の誤差を表す。
【００７３】
条件を満たす場合（Ｓ７７，Ｙ）、稜線特徴情報管理部６は、ｎを１増加させて次のモデル要素ｎを選択し（Ｓ８１）、処理Ｓ７７へ移行する。一方、条件を満たさない場合（Ｓ７７，Ｎ）、稜線特徴情報管理部６は、Ｌｎ＝ＱｍかつＫｎ−ε＜＝Ｐｍ＜＝Ｋｎ＋εの条件（検索キー要素ｍの特徴線種別ＩＤとモデル要素ｎの特徴線種別ＩＤが等しく、検索キー要素ｍの特徴線長とモデル要素ｎの特徴線長が等しい）を満たすか否かの判断を行う（Ｓ８２）。
【００７４】
条件を満たす場合（Ｓ８２，Ｙ）、稜線特徴情報管理部６は、モデル要素ｎが検索キー要素ｍにマッチする候補であると判断し、検索キー要素ｍの候補リストにモデル要素ｎを登録し（Ｓ８３）、処理Ｓ８８へ移行する。一方、条件を満たさない場合（Ｓ８２，Ｎ）、稜線特徴情報管理部６は、検索キー要素ｎの候補リストが空であるか否かの判断を行う（Ｓ８４）。空である場合（Ｓ８４，Ｙ）、稜線特徴情報管理部６は、この着目モデルにはマッチしないと判断し、ｉを１増加させて次の着目モデルを選択し（Ｓ８５）、処理Ｓ７２へ戻る。一方、空でない場合（Ｓ８４，Ｎ）、稜線特徴情報管理部６は、ｍを１増加させ（Ｓ８６）、ｍが最大値（検索キーの要素数）を超えたか否かの判断を行う（Ｓ８７）。
【００７５】
最大値を超えない場合（Ｓ８７，Ｎ）、稜線特徴情報管理部６は、処理Ｓ７７へ戻る。一方、最大値を超えた場合（Ｓ８７，Ｙ）、このフローは終了する。
【００７６】
また、処理Ｓ８８において、稜線特徴情報管理部６は、モデル要素ｍ以降のモデル要素ｍ＋ｊについて、Ｌｎ＝Ｑ（ｍ＋ｊ）かつＫｎ−ε＜＝Ｐ（ｍ＋ｊ）＜＝Ｋｎ＋εの条件（検索キー要素ｍ＋ｊの特徴線種別ＩＤとモデル要素ｎの特徴線種別ＩＤが等しく、検索キー要素ｍ＋ｊの特徴線長とモデル要素ｎの特徴線長が等しい）を満たすか否かの判断を行う。条件を満たす場合（Ｓ８８，Ｙ）、稜線特徴情報管理部６は、モデル要素ｎを検索キー要素ｍ＋ｊにマッチする候補であると判断し、検索キー要素ｍ＋ｊの候補リストにモデル要素ｎを登録し（Ｓ８９）、処理Ｓ８１へ移行する。一方、条件を満たさない場合（Ｓ８８，Ｎ）、処理Ｓ８１へ移行する。
【００７７】
ここで、候補リストについて説明する。
【００７８】
図１３は、本実施の形態に係る候補リストのデータ構造の一例を示すデータ構造図である。この候補リストの例は、上述した候補絞り込み処理により、検索キー要素Ｐ１にマッチする候補としてモデル要素Ｋ１，Ｋ２が登録され、検索キー要素Ｐ２にマッチする候補としてモデル要素Ｋ１，Ｋ２が登録され、検索キー要素Ｐ３にマッチする候補としてモデル要素Ｋ８，Ｋ１０，Ｋ１５が登録され、検索キー要素Ｐ４にマッチする候補としてモデル要素Ｋ２０が登録されたものである。
【００７９】
次に、位置関係マッチング処理について説明する。
【００８０】
まず、位置関係マッチング処理の目的について説明する。図１４は、本実施の形態に係るモデルの一例を示す図である。モデルＡ、モデルＢ、モデルＣは、いずれも、曲線ａと曲線ｂを備える。ここで、検索キーとしてモデルＡが与えられ、モデルＤＢ７及び稜線特徴情報ＤＢ９にモデルＢ及びモデルＣが格納されている場合について述べる。曲線ａと曲線ｂは、同じデータを持つ稜線特徴情報として稜線特徴情報ＤＢ９に格納される。また、候補絞り込み処理により、モデルＢとモデルＣが候補リストに登録される。次に、位置関係マッチング処理により、曲線ａと曲線ｂの位置関係について、モデルＡとモデルＢの比較、モデルＡとモデルＣの比較を行うことにより、検索結果としてモデルＢを出力する。位置関係マッチング処理において、稜線特徴情報管理部６は、２つの検索キー要素の組み合わせの位置関係と２つのモデル要素の組み合わせの位置関係を比較する。ここで、稜線特徴情報管理部６は、全ての組み合わせについて総当たりの比較を行い、検索キー要素の組み合わせの位置関係とモデル要素の組み合わせの位置関係が全て一致したモデルを検索結果のモデルとして選択する。
【００８１】
図１５は、本実施の形態に係る位置関係マッチング処理の動作の一例を示すフローチャートである。候補絞り込み処理の後、まず、稜線特徴情報管理部６は、２つの検索キー要素の組み合わせで未選択のものがあるか否かの判断を行う（Ｓ１１１）。未選択のものがない場合（Ｓ１１１，Ｎ）、処理Ｓ１２６へ移行し、未選択のものがある場合（Ｓ１１１，Ｙ）、処理Ｓ１１２へ移行する。次に、稜線特徴情報管理部６は、検索キーの先頭から順に、２つの検索キー要素の組み合わせで未選択のものを選択する（Ｓ１１２）。次に、稜線特徴情報管理部６は、選択した検索キー要素の要素位置データを検索キーから取得し、検索キー要素の組み合わせの位置関係を算出する（Ｓ１１３）。次に、稜線特徴情報管理部６は、選択したそれぞれの検索キー要素の候補リストに登録されたモデル要素の組み合わせで、未選択のものがあるか否かの判断を行う（Ｓ１１４）。未選択のものがない場合（Ｓ１１４，Ｎ）、処理Ｓ１１１へ戻り、未選択のものがある場合（Ｓ１１４，Ｙ）、処理Ｓ１２１へ移行する。
【００８２】
次に、稜線特徴情報管理部６は、取得した組み合わせに対応して、それぞれの検索キー要素の候補リストに登録されたモデル要素の組み合わせを選択する（Ｓ１２１）。次に、稜線特徴情報管理部６は、検索キー要素と同様、選択したモデル要素の要素位置データを位置データファイルＤＢから取得し、モデル要素の組み合わせの位置関係を算出する（Ｓ１２３）。次に、稜線特徴情報管理部６は、検索キー要素の組み合わせの位置関係とモデル要素の組み合わせの位置関係を比較し（Ｓ１２４）、処理Ｓ１１４へ戻る。
【００８３】
処理Ｓ１２６において、稜線特徴情報管理部６は、検索キー要素の組み合わせの位置関係とモデル要素の組み合わせの位置関係が全て一致したモデルを検索結果として出力し、このフローを終了する。稜線特徴情報管理部６は、検索結果のモデルのインデックスファイルに含まれるモデル名（フルパス）を用いることにより、モデルＤＢ７において対応するモデルにアクセスすることができる。
【００８４】
ここで、処理Ｓ１２１，Ｓ１２３における要素の組み合わせの位置関係の算出について説明する。図１６は、本実施の形態に係る要素の組み合わせの位置関係の一例を示す図である。この図において、組み合わせの一方の要素は、要素位置データとして代表座標２１ａと代表ベクトル２２ａを持ち、もう一方の要素は、要素位置データとして代表座標２１ｂと代表ベクトル２２ｂを持つとする。処理Ｓ１２１，Ｓ１２３において、稜線特徴情報管理部６は、要素位置データを用いて、この図に示すような、代表座標２１ａ，２１ｂ間の距離Ｌ、代表座標２１ａ，２１ｂを結んだベクトルの単位ベクトルｖと代表ベクトル２２ａが成す角α、ベクトルｖと代表ベクトル２２ｂが成す角β、代表ベクトル２２ａ，２２ｂが成す角γを、位置関係として算出する。ここで、ベクトルｖ及び代表ベクトルは、単位ベクトルであり、稜線特徴情報管理部６は、２つの単位ベクトルの外積からα，β，γを算出する。
【００８５】
処理Ｓ１２４において、稜線特徴情報管理部６は、検索キー要素の組み合わせから得られたＬ，α，β，γと、モデル要素の組み合わせから得られたＬ，α，β，γとが、それぞれ一致した場合に、位置関係が一致すると判断する。ここで、α，β，γが一致するか否かの判断においては、１８０度の補角も考慮する。
【００８６】
ＣＡＤ装置２のハードウェアがＰｅｎｔｉｕｍIII（登録商標）１．２ＧＨｚ、メモ
リ５１２ＭＢであり、モデルＤＢ７が１ＧＢのバイナリデータの設計モデルを格納している場合において、稜線特徴情報検索処理を実行した例について述べる。図１７は、本実施の形態に係るモデルＤＢ及び稜線特徴情報ＤＢに登録された設計モデルの一例を示す表である。この表は、設計モデルの分類、１つの設計モデルに含まれる部品（モデル）数、１つの設計モデルに含まれる特徴線種別（直線、円弧、円、曲線（曲線１と曲線２））毎の要素数（稜線数）、これらの要素数の合計、設計モデルの数を表す。設計モデルは、データＡ、データＢ、データＣ、データＤ、データＥに分類される。データＡは、ある１個の設計モデルであり、データＢは、データＡ中の部品の寸法に変更を加えた９個の設計モデルである。データＣ、データＤ、データＥは、それぞれデータＡと全く異なる設計モデルである。モデルＤＢ７及び稜線特徴情報ＤＢ９には、合計で、９９９個の設計モデル、２２０２４０６０個の稜線が格納されている。
【００８７】
図１８は、本実施の形態に係る設計モデルの一例を示すモデルである。この図の設計モデルは、上述したデータＡを示す。稜線特徴情報検索処理において、この図のデータＡが処理Ｓ６１により表示部８により表示され、ユーザが入力部１によりデータＡの一部または全部を選択することにより、処理Ｓ６２により検索条件が取得される。この図のデータＡにおいて、２つの円柱突起上の円の稜線１１，１２とその近傍の長方形の辺のうち稜線１３，１４，１５とからなる、５つの稜線がユーザにより検索条件として選択される。稜線特徴情報管理部６は、この検索条件に基づいて５つの稜線（要素）を持つ検索キーを生成し、検索を行う。その結果、検索時間は３．５秒であり、データＡのモデルだけを検索結果として特定することができた。この検索時間は、従来の類似形状検索機能と比較しても大幅に短縮されている。
【００８８】
従来の形状検索機能においては、検索条件に対する類似形状の検索が行われていたが、本実施の形態によれば、検索条件における形状と寸法が一致するモデルを検索することができる。また、イメージへの変換等を用いた従来の類似形状の検索に比べて、情報量を削減した稜線特徴情報を用いることにより高速な検索を行うことができる。
【００８９】
また、多くの検索機能で行われているように、検索のためのＤＢ（稜線特徴情報ＤＢ９）を２つのＤＢ（インデックスファイルＤＢと位置データファイルＤＢ）に分け、一方のＤＢで絞り込み（候補絞り込み処理）を行った後に、もう一方のＤＢを検索すること（位置関係マッチング処理）により、検索時におけるシークの回数及びデータの読み込み量を減らし、ファイルアクセス時間を少なくすることができる。
【００９０】
また、検索キー及び稜線特徴情報ＤＢ９において、設計で使われる頻度が少ない特徴線種別ＩＤから順に調べることにより、着目モデルに含まれるか否かを早い段階で決定することができ、検索時間を削減することができる。また、検索キー及び稜線特徴情報ＤＢ９において、同一の特徴線種別ＩＤを持つ要素が複数ある場合には、特徴線長が大きい順にソートして並べることにより、着目モデル内に同一の特徴線種別ＩＤがＮ個あった場合に、Ｎ回の比較を行なわなくとも検索キー要素の特徴線長がモデル要素の特徴線長よりも大きくなった時点で、着目モデルは検索キーに一致しないと判断でき、検索時間を削減することができる。
【００９１】
なお、第１特徴情報は、実施の形態におけるインデックスファイル及び位置データファイルに対応する。また、第２特徴情報は、実施の形態における検索キーに対応する。また、第３形状データは、実施の形態における稜線特徴情報検索処理による検索結果に対応する。また、第１稜線取得ステップは、実施の形態における処理Ｓ３５に対応する。また、情報登録ステップは、実施の形態における処理Ｓ３６，Ｓ３７，Ｓ３８に対応する。また、第２稜線取得ステップは、実施の形態における処理Ｓ６３に対応する。また、情報生成ステップは、実施の形態における処理Ｓ６４，Ｓ６５に対応する。また、検索ステップは、実施の形態における処理Ｓ５２，Ｓ５３に対応する。また、第１稜線取得部及び第２稜線取得部は、実施の形態におけるデータ管理部に対応する。また、情報登録部、情報生成部、検索部は、実施の形態における稜線特徴情報管理部に対応する。
【００９２】
また、本実施の形態に係るデータベース管理装置は、情報処理装置に容易に適用することができ、情報処理装置の性能をより高めることができる。ここで、情報処理装置には、例えばＰＣ（Personal Computer）、サーバ、ワークステーション等が含まれ得る。
【００９３】
更に、データベース管理装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、データベース管理プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、データベース管理装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００９４】
（付記１）  形状データに関するデータベースの管理をコンピュータに実行させるデータベース管理プログラムであって、
予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得ステップと、
前記第１稜線取得ステップにより取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録ステップと、
検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得ステップと、
前記第２稜線取得ステップにより取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成ステップと、
前記情報登録ステップにより登録された第１稜線特徴情報と前記情報生成ステップにより生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索ステップと
をコンピュータに実行させるデータベース管理プログラム。
（付記２）  付記１に記載のデータベース管理プログラムにおいて、
前記稜線特徴情報は、稜線の形状を示す稜線形状情報と、該稜線が属する形状データにおける他の稜線との位置関係を表す稜線位置情報とを含むことを特徴とするデータベース管理プログラム。
（付記３）  付記２に記載のデータベース管理プログラムにおいて、
前記稜線形状情報は、稜線の種別を表す種別情報と該稜線の寸法を表す寸法情報とを含むことを特徴とするデータベース管理プログラム。
（付記４）  付記３に記載のデータベース管理プログラムにおいて、
前記稜線位置情報は、稜線が属する形状データにおける該稜線の位置を表す座標である代表座標と該稜線の方向を表すベクトルである代表ベクトルとを含むことを特徴とするデータベース管理プログラム。
（付記５）  付記２乃至付記４のいずれかに記載のデータベース管理プログラムにおいて、
前記検索ステップは、前記第１形状データの前記稜線形状情報及び前記第２形状データの前記稜線形状情報に基づいて、前記第１形状データのうち、該第１形状データの前記稜線形状情報が前記第２形状データの前記稜線形状情報に一致するものを、候補形状データとし、前記候補形状データの前記稜線位置情報及び前記第２形状データの前記稜線位置情報に基づいて、前記候補形状データのうち、該候補形状データを構成する稜線間の位置関係が前記第２形状データを構成する稜線間の位置関係に一致するものを前記第３形状データとすることを特徴とするデータベース管理プログラム。
（付記６）  付記５に記載のデータベース管理プログラムにおいて、
前記検索ステップは、前記第２形状データを構成する稜線の組み合わせを選択し、該組み合わせに対応する前記稜線位置情報から該組み合わせの位置関係を算出し、前記候補形状データを構成する稜線の組み合わせを選択し、該組み合わせに対応する前記稜線位置情報から該組み合わせの位置関係を算出し、前記第２形状データから得られた全ての組み合わせの位置関係と前記候補形状データから得られた全ての組み合わせの位置関係が一致する場合、前記候補形状データを前記第３形状データとすることを特徴とするデータベース管理プログラム。
（付記７）  付記４に記載のデータベース管理プログラムにおいて、
前記寸法情報は該稜線の長さ、該稜線の半径、該稜線における始点から終点までの直線の距離のいずれかであり、前記代表座標は該稜線の２等分点、該稜線の中心、該稜線の始点と該稜線の終点の２等分点のいずれかであり、前記代表ベクトルは該稜線における始点から終点への方向、該稜線の中心軸の方向、前記代表座標における接線の方向のいずれかを示すことを特徴とするデータベース管理プログラム。
（付記８）  付記７に記載のデータベース管理プログラムにおいて、
前記種別情報は、直線、円、円弧、円弧以外の開曲線である第１曲線、円以外の閉曲線である第２曲線のいずれかであることを特徴とするデータベース管理プログラム。
（付記９）  付記８に記載のデータベース管理プログラムにおいて、
前記種別情報が直線である稜線に対して、前記寸法情報は該稜線の長さであり、前記代表座標は該稜線の２等分点であり、前記代表ベクトルは該稜線における始点から終点への方向を示すことを特徴とするデータベース管理プログラム。
（付記１０）  付記８または付記９に記載のデータベース管理プログラムにおいて、
前記種別情報が円である稜線に対して、前記寸法情報は該稜線の半径であり、前記代表座標は該稜線の中心であり、前記代表ベクトルは該稜線の中心軸の方向を示すことを特徴とするデータベース管理プログラム。
（付記１１）  付記８乃至付記１０のいずれかに記載のデータベース管理プログラムにおいて、
前記種別情報が円弧である稜線に対して、前記寸法情報は該稜線の長さであり、前記代表座標は該稜線の２等分点であり、前記代表ベクトルは該代表座標における該稜線の接線の方向を示すことを特徴とするデータベース管理プログラム。
（付記１２）  付記８乃至付記１１のいずれかに記載のデータベース管理プログラムにおいて、
前記種別情報が第１曲線である稜線に対して、前記寸法情報は該稜線における始点から終点までの直線の距離であり、前記代表座標は該稜線における始点と終点の２等分点であり、前記代表ベクトルは該稜線における始点から終点への方向を示すことを特徴とするデータベース管理プログラム。
（付記１３）  付記８乃至付記１２のいずれかに記載のデータベース管理プログラムにおいて、
前記種別情報が第２曲線である稜線に対して、前記寸法情報は該稜線の長さであり、前記代表座標は該稜線の始点であり、前記代表ベクトルは該代表座標における該稜線の接線の方向を示すことを特徴とするデータベース管理プログラム。
（付記１４）  付記３乃至付記１３のいずれかに記載のデータベース管理プログラムにおいて、
前記情報登録ステップは、前記種別情報に基づいて利用頻度の低い種別から順に稜線形状情報をソートすることを特徴とするデータベース管理プログラム。
（付記１５）  付記１４に記載のデータベース管理プログラムにおいて、
前記情報登録ステップは、前記寸法情報により前記稜線形状情報をソートすることを特徴とするデータベース管理プログラム。
（付記１６）  形状データに関するデータベースの管理を行うデータベース管理装置であって、
予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得部と、
前記第１稜線取得部により取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録部と、
検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得部と、
前記第２稜線取得部により取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成部と、
前記情報登録部により登録された第１稜線特徴情報と前記情報生成部により生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索部と
を備えるデータベース管理装置。
（付記１７）  付記１６に記載のデータベース管理装置において、
前記稜線特徴情報は、稜線の形状を示す稜線形状情報と、該稜線が属する形状データにおける他の稜線との位置関係を表す稜線位置情報とを含むことを特徴とするデータベース管理装置。
（付記１８）  付記１７に記載のデータベース管理装置において、
前記検索部は、前記第１形状データの前記稜線形状情報及び前記第２形状データの前記稜線形状情報に基づいて、前記第１形状データのうち、該第１形状データの前記稜線形状情報が前記第２形状データの前記稜線形状情報に一致するものを、候補形状データとし、前記候補形状データの前記稜線位置情報及び前記第２形状データの前記稜線位置情報に基づいて、前記候補形状データのうち、該候補形状データを構成する稜線間の位置関係が前記第２形状データを構成する稜線間の位置関係に一致するものを前記第３形状データとすることを特徴とするデータベース管理装置。
（付記１９）  付記１８に記載のデータベース管理装置において、
前記検索部は、前記第２形状データを構成する稜線の組み合わせを選択し、該組み合わせに対応する前記稜線位置情報から該組み合わせの位置関係を算出し、前記候補形状データを構成する稜線の組み合わせを選択し、該組み合わせに対応する前記稜線位置情報から該組み合わせの位置関係を算出し、前記第２形状データから得られた全ての組み合わせの位置関係と前記候補形状データから得られた全ての組み合わせの位置関係が一致する場合、前記候補形状データを前記第３形状データとすることを特徴とするデータベース管理装置。
（付記２０）  形状データに関するデータベースの管理を行うデータベース管理方法であって、
予め設計された形状データである少なくとも１つの第１形状データから、該第１形状データを構成する稜線を取得する第１稜線取得ステップと、
前記第１稜線取得ステップにより取得された稜線に基づいて、該稜線の特徴を示す情報である稜線特徴情報を生成し、該稜線特徴情報を第１稜線特徴情報とし、該第１稜線特徴情報を前記第１形状データに対応付け、前記データベースへ登録する情報登録ステップと、
検索条件を表す形状データである第２形状データから、該第２形状データを構成する稜線を取得する第２稜線取得ステップと、
前記第２稜線取得ステップにより取得された稜線に基づいて、該稜線の稜線特徴情報を生成し、該稜線特徴情報を第２稜線特徴情報とする情報生成ステップと、
前記情報登録ステップにより登録された第１稜線特徴情報と前記情報生成ステップにより生成された第２稜線特徴情報とに基づいて、前記第１形状データのうち前記第２形状データに一致するものである第３形状データを検索する検索ステップと
を実行するデータベース管理方法。
【図面の簡単な説明】
【００９５】
【図１】本実施の形態に係るＣＡＤ装置の構成の一例を示すブロック図である。
【図２】本実施の形態に係る稜線種別と特徴線種別の対応付けの一例を示す表である。
【図３】本実施の形態に係る特徴線種別の一例を示す概念図である。
【図４】本実施の形態に係る稜線特徴情報の内容の一例を示す表である。
【図５】本実施の形態に係るインデックスファイルＤＢのデータ構造の一例を示すブロック図である。
【図６】本実施の形態に係る位置データファイルＤＢのデータ構造の一例を示すブロック図である。
【図７】本実施の形態に係る稜線特徴情報管理部の動作の一例を示すフローチャートである。
【図８】本実施の形態に係る稜線特徴情報登録処理の動作の一例を示すフローチャートである。
【図９】本実施の形態に係る稜線特徴情報検索処理の動作の一例を示すフローチャートである。
【図１０】本実施の形態に係る検索キーのデータ構造の一例を示すデータ構造図である。
【図１１】本実施の形態に係る検索キー生成処理の動作の一例を示すフローチャートである。
【図１２】本実施の形態に係る候補絞り込み処理の動作の一例を示すフローチャートである。
【図１３】本実施の形態に係る候補リストのデータ構造の一例を示すデータ構造図である。
【図１４】本実施の形態に係るモデルの一例を示す図である。
【図１５】本実施の形態に係る位置関係マッチング処理の動作の一例を示すフローチャートである。
【図１６】本実施の形態に係る要素の組み合わせの位置関係の一例を示す図である。
【図１７】本実施の形態に係るモデルＤＢ及び稜線特徴情報ＤＢに登録された設計モデルの一例を示す表である。
【図１８】本実施の形態に係るデータＡの一例を示すモデルである。
【符号の説明】
【００９６】
１  入力部、２  ＣＡＤ装置、３  編集部、４  データ管理部、５  モデラカーネル部、６  稜線特徴情報管理部、７  モデルＤＢ、８  表示部、９  稜線特徴情報ＤＢ、１１，１２，１３，１４，１５  稜線、２１ａ，２１ｂ  代表座標、２２ａ，２２ｂ  代表ベクトル。
【図１】
2008059297.tif 000003
【図２】
2008059297.tif 000004
【図３】
2008059297.tif 000005
【図４】
2008059297.tif 000006
【図５】
2008059297.tif 000007
【図６】
2008059297.tif 000008
【図７】
2008059297.tif 000009
【図８】
2008059297.tif 000010
【図９】
2008059297.tif 000011
【図１０】
2008059297.tif 000012
【図１１】
2008059297.tif 000013
【図１２】
2008059297.tif 000014
【図１３】
2008059297.tif 000015
【図１４】
2008059297.tif 000016
【図１５】
2008059297.tif 000017
【図１６】
2008059297.tif 000018
【図１７】
2008059297.tif 000019
【図１８】
2008059297.tif 000020