(57)【要約】【課題】  選択されたプリミティブ群と同一のプリミティブ群をユーザに過大の入力負担を掛けることなく且つ比較的少ないプリミティブ同士の同一比較演算で認識することができるコンピュータ支援設計方法、そのシステム及びプログラムを提供する。【解決手段】  選択されたプリミティブから代表プリミティブを選択し、この代表プリミティブを中心とした所定範囲内にあるプリミティブを検索し、検索されたプリミティブの中に選択されたプリミティブと同一のものが全てあるか否かを判断し、全てある場合には同一である同一候補基準プリミティブを出力するので、検索対象とする範囲が狭まって不必要な範囲でのプリミティブの検索がなくなり、範囲内のプリミティブのみと基準プリミティブと同一か否かの演算を行って少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。【選択図】  図２
2006344034.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるためのコンピュータ支援設計プログラム。
【請求項２】
前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるための
前記請求項１に記載のコンピュータ支援設計プログラム。
【請求項３】
代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断する
前記請求項１または２に記載のコンピュータ支援設計プログラム。
【請求項４】
同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるための
前記請求項３に記載のコンピュータ支援設計プログラム。
【請求項５】
選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるコンピュータ支援設計システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、選択されたプリミティブ群と同一のプリミティブ群を検索するコンピュータ支援設計プログラムに関し、特に、無数に配置されたプリミティブの中から同一のプリミティブ群を検索する場合に、比較的少ないプリミティブ同士の同一比較演算でプリミティブ群を抽出するコンピュータ支援設計プログラムに関する。
【背景技術】
【０００２】
昨今建設系２次元CAD(Computer Aided Design)には二つ大きな方向性がある。その一つとしてオブジェクト指向が広く唱えられている。オブジェクト指向とは「線分や円などの図形要素（プリミティブ）を単位に作図するのではなく、壁や柱、窓などの部材（オブジェクト）を最小単位にして作図する仕組み」のことである。
【０００３】
もう一つの方向性は、異種CAD間でのCADデータの交換である。建設業界に限らず一般的に業務・用途によってCADは様々であり、それぞれに定評のあるCADが存在している。これらを同一CADで統合することは現実的に無理である。そのためCALS(Continuous Acquisition and Life-cycle Support。名称の変遷あり)実現に向けて、異種CAD間でのCADデータ交換のニーズが近年急速に高まりつつある。
【０００４】
CADデータの交換を行うに当り、相互のCADで効率良く作業を行うためには、オブジェクト指向によるデータ交換技術が要求される。そのため建設業界では「IFC(Industry Foudation Classes)」といったSTEP(Standard for Exchange of Product Model Data)と同期をとった標準規格も整備されつつあるが、未だ実用レベルに達していないのが現状である。
【０００５】
現状では、CADデータ交換のグローバルスタンダードとしてDXF形式が広く普及しているが、この形式は図形要素を単位としたデータ形式になっており、データ交換できても効率良く活用できないという問題点がある。
したがって、データ交換した場合にはオブジェクト指向に沿った形式とはなっておらず、ユーザは図形要素単位に作図を行っている。
【０００６】
このような作図環境に対して、本発明の背景技術となるコンピュータ支援設計装置としては、特開平７−１２９６１０号公報に開示するものがあり、以下説明する。この背景技術のコンピュータ支援設計装置は、被検索対象物をデータベースに予め多数登録し、この登録された被検索対象物の中から検索対象物に同一又は類似する被検索対象物を検索する装置において、被検索対象物毎にプリミティブ形状部品群によって定義された定義情報が記憶されている第１の記憶手段と、被検索インデックス値と被検索対象物とが関連付けて記憶されている第２の記憶手段と、前記第１の記憶手段に記憶されている定義情報に従って前記検索対象物に対するプリミティブ形状部品群を提示する手段と、この手段により提示されたプリミティブ形状部品に対し、類似値を各々入力する入力手段と、この手段により各々入力された類似値を所定の並び順でコード情報に変換する変換手段と、この手段により変換されたコード情報に基づいて非類似である旨の情報と類似である旨の情報とからなる検索インデックス値を算出する第１の算出手段と、この手段により算出された検索インデックス値について、前記類似である旨の情報の情報量を算出する第２の算出手段と、前記第１の算出手段により算出された検索インデックス値と前記第２の記憶手段に記憶されている被検索インデックス値とを比較する比較手段と、この手段による比較結果と前記第２の算出手段により算出された情報量とに基づいて前記検索対象物の類似性を判定する判定手段と、この手段により類似であると判定された場合に、前記被検索インデックス値に関連付けられた被検索対象物を提示する手段とからなるものである。
【０００７】
このように背景技術のコンピュータ支援装置によれば、形状データのように文字情報として表現することが困難なデータに対しても、柔軟な類似検索を行うことができる。
【特許文献１】特開平７−１２９６１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
確かに、あるコンピュータ支援装置の公知のオブジェクト化する機能を用いて作成した場合には、そのコンピュータ支援装置の環境下においてはプリミティブ郡がオブジェクトとして認識されるので、ユーザはオブジェクト単位での操作が可能となる。しかしながら、前記したように、異種CAD間でのCADデータ交換をした場合に、標準規格となるIFCが実用化レベルに達していない状況下では、図形要素を単位としたDXF形式等のグローバルスタンダードのデータ形式でデータが渡され、ユーザはこのデータを使用して図形要素単位での作図作業を行っており、効率的な作業を行えないという課題を有する。このように異種CAD間でのCADデータ変換だけでなく、たとえば、ユーザがプリミティブを次々と作成してプリミティブ群を形成し、このプリミティブ群をオブジェクト化することなく複写して次々と配置する場合、ユーザがオブジェクト化したプリミティブ群のオブジェクト化を解いた場合であっても、その後の効率的な作業が望まれる。
【０００９】
また、前記公報開示の背景技術のコンピュータ支援装置は前記のように構成され、柔軟に類似する被検索対象物を検索することができるものの、検索対象物を指定するだけでなくプリミティブを指定し、指定したプリミティブ毎の類似値を入力する必要があるばかりか、被検索対象物のプリミティブ毎の類似値を予め登録しておく必要があり、ユーザの入力負担が過大となるという課題を有する。また、類似するものをある程度検出することができるものの、同一の被検索対象物を必ずしも検索することができるわけではないという課題も有する。
【００１０】
本発明は前記課題を解決するためになされたものであり、選択されたプリミティブ群と同一のプリミティブ群をユーザに過大の入力負担を掛けることなく且つ比較的少ないプリミティブ同士の同一比較演算で認識することができるコンピュータ支援設計方法、そのシステム及びプログラムを提供することを目的とする。また、自動認識された同一のプリミティブ群をオブジェクト化することも本発明の目的である。
【課題を解決するための手段】
【００１１】
本発明に係るコンピュータ支援設計プログラムは、コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるものである。このように本発明においては、選択されたプリミティブから代表プリミティブを選定し、この代表プリミティブを中心とした所定範囲内にあるプリミティブを検索し、検索されたプリミティブの中に選択されたプリミティブと同一のものが全てあるか否かを判断し、全てある場合には同一である同一候補基準プリミティブを出力するので、検索対象とする範囲が狭まって不必要な範囲でのプリミティブの検索がなくなり、範囲内のプリミティブのみと基準プリミティブと同一か否かの演算を行って少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。ここで同一である同一候補基準プリミティブを出力とは、メインメモリへの格納、ディスプレイへの出力等の全ての出力が該当する。
【００１２】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程において、優先順序はプリミティブの情報の特異性の高さに基づき高いものであるものである。このように本発明においては、プリミティブの情報の特異性の高さに基づき高い優先順序に従って代表プリミティブを選定しているので、ありふれたプリミティブが代表プリミティブになることを抑制し、特異性の高いプリミティブが代表プリミティブになり易く、代表プリミティブと同一のプリミティブを検索した場合に、該当するプリミティブが少なく結果的に少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。
【００１３】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるものである。このように本発明においては、選択されたプリミティブの中から所定の大きさ以下のプリミティブまたは重なるプリミティブを除外しているので、明らかにユーザが意図しないプリミティブを除外すると共に、ユーザが意図するプリミティブを基準プリミティブとして以降の処理が実行されて適切にユーザが意図する選択されたプリミティブと同一のプリミティブを適切に自動認識することができる。前記除外したプリミティブを除外せずに以降の処理が実行された場合には、選択されたプリミティブと同一のプリミティブを自動認識することができず、さらに、その原因をユーザが把握することにも時間がかかる。また、選択されたプリミティブと同一のプリミティブを自動認識することができた場合でも、不要のプリミティブを包含した状態となって、自動認識する過程で不要な演算処理を行うことになる。
【００１４】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断するものである。このように本発明においては、同一候補基準プリミティブと基準プリミティブとを同一比較する場合に、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位と、代表プリミティブの基準点と基準プリミティブの基準点との変位とを同一比較するので、単に同一候補代表プリミティブの近くに対応する同一候補基準プリミティブが配置されているだけではなく、代表プリミティブと基準プリミティブとの相対位置関係を同一候補代表プリミティブと同一候補基準プリミティブも有していることを比較対象としていることで、適切に選択されたプリミティブと同一のプリミティブを自動認識することができる。
【００１５】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるものである。このように本発明においては、同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合に、同一候補基準プリミティブ又は基準プリミティブを基準プリミティブ又は同一候補基準プリミティブまで傾けて傾けたプリミティブに関して変位を求めているので、同じプリミティブ郡が複数配置されている場合でも相互に傾いている場合にはプリミティブ群内のプリミティブ同士の変位が傾きにより異なるため、傾きがない場合と同様に求めた場合傾いているが故に同一のプリミティブ群でも同一でないと誤って判断するのに対し、傾きを合わせて変位を求めており、この求めた変位を比較対象とすることで適切に選択されたプリミティブと同一のプリミティブを自動認識することができる。
【００１６】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順における所定範囲が、前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状により画定され、同一候補代表プリミティブの基準点を中心として配置されたものである。このように本発明においては、前記所定範囲が基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうちもっとも大きい変位を例えば１．５倍に大きくしたものを基準とする形状から画定され、且つ、代表プリミティブの基準点を中心としたものであるので、選択されたプリミティブと同一のプリミティブが選択されたプリミティブと比べ傾いている場合であってもかかる所定範囲内に収まり、検索範囲からのプリミティブの洩れを防止し、同一候補基準プリミティブと基準プリミティブとを適切に同一比較することができる。
【００１７】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をさらにコンピュータに実行させるものである。このように本発明においては、基準プリミティブと同一であると判断した同一候補基準プリミティブをオブジェクト化するので、ユーザはプリミティブ単位での操作ではなくオブジェクト単位での操作となってユーザの操作の負担を軽減することができる。
【００１８】
また、本発明に係るコンピュータ支援設計システムは、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるものである。
【００１９】
また、本発明に係るコンピュータ支援設計方法は、コンピュータが選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程と、コンピュータが代表プリミティブと同一のプリミティブを検索する工程と、コンピュータが検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する工程と、コンピュータが同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する工程と、コンピュータが全てある場合には同一である同一候補基準プリミティブを出力する工程とを含むものである。
これら前記の発明の概要は、本発明に必須となる特徴を列挙したものではなく、これら複数の特徴のサブコンビネーションも発明となり得る。
【発明を実施するための最良の形態】
【００２０】
ここで、本発明は多くの異なる形態で実施可能である。したがって、下記の実施形態の記載内容のみで解釈すべきではない。
実施形態では、主にプログラムについて説明するが、所謂当業者であれば明らかな通り、本発明はコンピュータで使用可能なシステム及び方法としても実施できる。また、本発明は、ハードウェア、ソフトウェア、または、ソフトウェア及びハードウェアの実施形態で実施可能である。プログラムは、ハードディスク、CD-ROM、DVD-ROM、光記憶装置または磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。
【００２１】
本発明の実施形態に係るコンピュータ設計支援プログラムについて図に基づき説明する。本実施形態に係るコンピュータ設計支援プログラムは、選択された基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順と、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順と、基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をコンピュータに実行させるためのプログラムである。
【００２２】
本プログラムは、ユーザが選択したプリミティブ群と同一のプリミティブ群を自動認識し、自動認識したプリミティブ群をオブジェクト化するものであり、単独でコンピュータ設計支援プログラムとして存在する他、仮想２次元座標空間上に縦、横のある対象物の形状を描いたり、ユーザの編集を受けたりする周知な標準のコンピュータ支援プログラム（CAD本体プログラム）の一機能を提供するプログラム（自動認識オブジェクト化プログラム）として実装することもできる。本実施形態では、CAD本体プログラムと自動認識オブジェクト化プログラムとの構成で実装した場合について以下説明する。なお、CADプログラムとして、CAD本体プログラム及び自動認識オブジェクト化プログラムを一つにまとめた形でも実装することができる。
【００２３】
本実施形態のハードウェアの一例を図１に示す。本実施形態では、CPU(Central Processing Unit)１、メインメモリ２、ハードディスク（HD:Hard Disk）３、CD-ROMドライブ４、ディスプレイ５、キーボード６、マウス７及びLANカード８をハードウェア構成とする。ハードディスク３にはCAD本体プログラムと自動認識オブジェクト化プログラムが記録される。ユーザのキーボード６又はマウス７の操作によりハードディスク３からメインメモリ２に読み出され、CPU１によりプログラムが実行される。通常であれば、CPU１がCAD本体プログラムを実行し、ハードディスク３に記録されているCADデータを読み出して対象物の形状をディスプレイ５に描画する。描画した対象物に対してのユーザのキーボード６又はマウス７の操作に応じて、CAD本体プログラムがCPU１により実行され、操作に合致した再描画及びCADデータの変更がなされる。実際には、CAD本体プログラム及び自動認識オブジェクト化プログラムは、OSと協働して各機能を提供する。ただし、CAD本体プログラム及び自動認識オブジェクト化プログラム単独で各機能の全部又は一部を提供するように実装することもできる。CAD本体プログラムが提供する機能としては、プリミティブの作成、削除、CADデータのファイルとしてハードディスク３への保存、オブジェクトの印刷、表示の切り換え、オブジェクトのフォーマット（整列、前面へ移動、後面へ移動、グループの作成等）、オブジェクトの変更（トリミング、ストレッチ、スプリット、ブーリアン演算等）等の公知の機能が該当する。自動認識オブジェクト化プログラムが提供する機能としては、ユーザが選択したプリミティブ群と同一のプリミティブ群の同一CADデータ内での検索、検索したプリミティブ群のオブジェクト化が該当する。
【００２４】
プログラムは通常CD-ROM等の記録媒体に格納されており、CD-ROMドライブ４等で読み込みハードディスク３の所定箇所又は指定箇所に記録され、メインメモリ２に必要時に読み出し可能となることでインストールされる。また、CD-ROM等の記録媒体を用いる他、LANカード８を用いてネットワークを介して他のコンピュータと通信し、プログラムをダウンロードして同様にハードディスク３の所定箇所又は指定箇所に記録され、メインメモリ２に必要時に読み出し可能となることでインストールされる。
【００２５】
図２は、本発明の実施形態に係る自動認識オブジェクト化プログラムのフローチャートである。以下、この図に基づいて自動認識オブジェクト化プログラムの処理について説明する。予め、CAD本体プログラムがCPU１により実行され、メインメモリ２にはCADデータが読み出されているとする。また、この読み出されているCADデータはプリミティブを単位としたDXF形式など標準的なCADデータ形式であり、プリミティブ群がオブジェクト化されていないとする。このようにCAD本体プログラムの実行下でCAD本体プログラムから自動認識オブジェクト化プログラムの処理へ実行が移行するには、例えば、ユーザが自動認識オブジェクト化プログラムの呼び出しが割り当てられているスイッチを押下することがトリガとなる。
【００２６】
まず、ユーザはキーボード６又はマウス７を用いてオブジェクト化の対象とする基準プリミティブを選択する。この選択の操作に対応して、CPU１がCADプログラム本体を実行し、図３に示すようにディスプレイ５に選択された基準プリミティブが選択されていないプリミティブと比べて一点鎖線で顕示されている（配色を変える等、他の顕示方法を用いてもよい）。この選択の操作に次に、前記自動認識オブジェクト化プログラムの呼び出しが割り当てられているスイッチを押下する。スイッチが押下されると、自動認識オブジェクト化プログラムがメインメモリ２に読み出され、CPU１に実行される（これ以降明示しなければ、自動認識オブジェクト化プログラムの処理とする）。実行されると、CPU１が選択された基準プリミティブから小さなプリミティブまたは重なるプリミティブを除外する（ステップ１０１）。図４は本実施形態に係るプリミティブのデータ構造の一例を示す。プリミティブは属性データと１以上の要素データからなるデータ構造を有する。また、個々の要素データは要素タイプと形状データの情報を持つ。テキスト要素の場合には文字列データを持つ。図５は本実施形態に係る要素タイプごとの形状データの構造の一例を示す。除外するプリミティブとしては、線分の長さが所定の長さ以下のプリミティブ、円、円弧の半径が所定の長さ以下のプリミティブ、同一形状の点、線分、円、円弧のプリミティブ、線分、円弧で始点・終点が他の線分、円弧内に含まれるプリミティブが例示される。ここで例示したプリミティブの他のプリミティブを除外対象とする構成にもできるし、ユーザ自ら除外対象のプリミティブを指定する構成にすることもできる。
【００２７】
CPU１が選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて基準プリミティブを選定し代表プリミティブとする（ステップ１０２）。詳細には、プリミティブの種類により並べ替える基準プリミティブのソート処理を行って代表プリミティブを決定する。図６は本実施形態に係るプリミティブの種類ごとのデータ構造の一例である。プリミティブの種類によるソート順は、例えば、テキスト、楕円弧、扇形、円弧、閉多角形、W連続線、連続線、W線分、寸法線、線分、楕円、円、スプライン、点、これ以外のプリミティブの種類の順である。このソート順は、プリミティブの情報の特異性に基づいている。すなわち、特異性が高いプリミティブを代表プリミティブとすることで、代表プリミティブと同一のプリミティブをCADデータ中のプリミティブから検索する処理が迅速に実行される。
【００２８】
選択された要素の中から前記ステップ１０１で除外されたプリミティブの集合を基準プリミティブと称す。また、前記ステップ１０２で並べ替えられた後に、先頭に格納されているプリミティブを代表プリミティブと称す。図３では、「シマト」とディスプレイ５に表示されているテキストが代表プリミティブとなる。
【００２９】
前記ステップ１０２の後に、CPU１が代表プリミティブの情報を取得する（ステップ１０３）。すなわち、並べ替えられた基準プリミティブの先頭に格納されているプリミティブの情報を取り出す。ここで、取り出す情報の例示としては、プリミティブの生成属性、構成要素数、個々の構成要素の形状データ、文字列内容（テキスト要素のみ）、個々の構成要素の要素タイプ、最初の要素の傾き角度が該当する。
【００３０】
要素の傾き角度は、本実施形態では、次の通りである。線分、W線分、寸法線であれば、始点と終点のなす角度を傾き角度とする。テキストであれば、文字の傾斜角を傾き角度とする。円弧であれば、円弧開始角を傾き角度とする。楕円弧であれば楕円弧開始角を傾き角度とする。これら要素以外の例えば点、スプラインは、傾き角度を０とする。
【００３１】
前記ステップ１０３の後に、CPU１が代表プリミティブの基準点と基準プリミティブの基準点との変位を求める（ステップ１０４）。基準プリミティブの全てについて、代表プリミティブとの変位を求める。図７は本実施形態の代表プリミティブと基準プリミティブの変位の具体説明図である。この図７では、代表プリミティブはテキスト「シマト」である。また、図７では比較対象の基準プリミティブは一点鎖線で示す線分である。
【００３２】
前記ステップ１０４の後に、CPU１が基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める（ステップ１０５）。図８は本実施形態に係るプリミティブの要素タイプと基準点との対応図である。プリミティブを構成する最初の要素の形状データを基準点とする。図９は本実施形態に係る代表プリミティブの基準点と基準プリミティブ全体のエクステントとの変位の具体説明図である。
【００３３】
前記ステップ１０５の後に、CPU１が代表プリミティブと同一のプリミティブを検索する定義済み処理（ステップ２００：代表プリミティブと同じ構成要素のプリミティブ検索処理）を実行する。図面全体の中から代表プリミティブと同じプリミティブを検索する。
【００３４】
図１０は本実施形態に係る代表プリミティブと同じ構成要素のプリミティブ検索処理の詳細フローチャートである。ステップ２００の代表プリミティブと同じ構成要素のプリミティブ検索処理は、まず、CPU１が図面内のプリミティブデータを読み込む（ステップ２０１）。CPU１がプリミティブの生成属性が同じか否かを判断する（ステップ２０２）。比較対象の生成属性の例示しては、線種番号、フォント番号、色番号、ハッチングパターン番号が該当する。
【００３５】
ステップ２０２でCPU1がプリミティブ生成属性が同じであると判断した場合には、CPU１が構成要素数が同じか否かを判断する（ステップ２０３）。ステップ２０３でCPU１が構成要素数が同じであると判断した場合には、CPU１が要素タイプが同じか否かを判断する（ステップ２０４）。このステップ２０４でCPU1が要素タイプが同じであると判断した場合には、CPU１が要素タイプごとの形状データ判定処理を実行する（ステップ２０５）。この要素タイプごとの形状データ判定処理は、プリミティブを構成する個々の構成要素の形状データを判定する。線分、W線分、寸法線を対象の要素とした場合には、開始点、終了点の点間距離の一致が判定条件となる。円を対象の要素とした場合には、半径の一致が判定条件となる。円弧を対象の要素とした場合には、円弧半径、相対角の一致が判定条件となる。楕円を対象の要素とした場合には、長径、離心率の一致が判定条件となる。楕円弧を対象の要素とした場合には、長径、離心率、相対角の一致が判定条件となる。テキストを対象の要素とした場合には、文字列の内容の一致が判定条件となる。その他の点、スプライン始点・中間点・終点を対象の要素とした場合には、形状のチェックは行わない。なお、このステップでは変位のチェックは行わない。
【００３６】
前記ステップ２０５の後に、CPU１が形状が同じであったか否かを判断する（ステップ２０６）。このステップ２０６でCPU１が形状が同じであると判断した場合には、CPU１がプリミティブの構成要素を全てチェックしたか否かを判断する（ステップ２０７）。このステップ２０７でCPU１がプリミティブの構成要素を全てチェックしていないと判断した場合には、前記ステップ２０４へ戻る。前記ステップ２０７でCPU１がプリミティブの構成要素を全てチェックしたと判断した場合には、CPU１がプリミティブを追加選択する（ステップ２０８）。メインメモリ２に追加選択された同一候補代表プリミティブを格納する。CPU１が図面内のプリミティブを全てチェックしたか否かを判断する（ステップ２０９）。このステップ２０９でCPU１が図面内のプリミティブを全てチェックしたと判断した場合には、代表プリミティブと同じ構成要素のプリミティブ検索処理が終了する。前記ステップ２０９でCPU１が図面内のプリミティブを全てチェックしていないと判断した場合には、前記ステップ２０１に戻る。前記ステップ２０２でCPU１がプリミティブ生成属性が同じでないと判断した場合、前記ステップ２０３でCPU１が構成要素数が同じでないと判断した場合、前記ステップ２０４でCPU１が要素タイプが同じでないと判断した場合、前記ステップ２０６でCPU１が形状が同じでないと判断した場合には、前記ステップ２０９に進む。
【００３７】
前記ステップ２００の後に、検索した代表プリミティブと同じプリミティブ（同一候補代表プリミティブ）全てに対して、周囲の要素を検索し、基準プリミティブと同じ形状か否かを判断する定義済み処理（ステップ３００：プリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理）を実行する。すなわち、CPU１が検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する。この所定範囲は、前記ステップ１０５で求めた前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状に画定され（変位の所定倍を基準としたとは、かかる長さを基準とした形状であり、例えば、かかる長さを一辺とした矩形、かかる長さを半径とした円、かかる長さを対角線とした矩形、かかる長さを１辺の半分とした正方形等が該当する）、中心を同一候補代表プリミティブとする矩形範囲である。図９では、X方向の変位2117を１．５倍して同一候補代表プリミティブの基準点座標を中心に四方向に広げた領域である二点鎖線で示される矩形範囲を所定範囲としている。また、CPU１が同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める。さらに、CPU１同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する。ここで全てあるかとしているのは同一候補基準プリミティブに基準プリミティブと異なるプリミティブが含まれている場合があるからである。さらにまた、CPU１が全てある場合には同一である同一候補基準プリミティブを出力する。
【００３８】
図１１及び図１２は、本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。ステップ３００のプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理は、まず、CPU１が代表プリミティブと同じ形状のプリミティブ（同一候補代表プリミティブ）の周囲のプリミティブを検索する（ステップ３０１）。前記ステップ１０５で求めたエクステントとの変位の最大値に１．５倍した矩形の領域で周囲の要素を検索している。より詳細には、基準要素全体のエクステントと代表プリミティブの基準点座標の変位の内、最も値の大きいもの（図９の場合、２１１７）を１．５倍して代表プリミティブの基準点座標を中心に四方向に広げた領域（図９の場合、２点鎖線で示される領域）を検索領域とする。このように検索領域を定義することで、プリミティブ群が傾いている場合でも領域内に収まり、検索対象となって洩れがなくなると共に、必要のない領域を検索しないため高速に検索することができる。
【００３９】
前記ステップ３０１の後に、CPU１が前記ステップ３０１で検索したプリミティブ（同一候補基準プリミティブ）データを読み込む(ステップ３０２)。次に、CPU１が基準プリミティブのデータを順に読み込む（ステップ３０３）。
【００４０】
ステップ３０３の後に、CPU１がプリミティブ生成属性が同じか否かを判断する（ステップ３０４）。このステップ３０４でCPU１がプリミティブ生成属性が同じであると判断した場合には、CPU１が構成要素数が同じか否かを判断する（ステップ３０５）。このステップ３０５でCPU１が構成要素数が同じであると判断した場合には、CPU１が要素タイプが同じか否かを判断する（ステップ３０６）。このステップ３０６で、CPU１が要素タイプが同じであると判断した場合には、CPU１が要素タイプごとの形状データ判定処理を実行する（ステップ３０７）。線分、W線分、寸法線を対象の要素とした場合には、開始点、終了点の点間距離の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。円を対象の要素とした場合には、半径の一致が判定条件となる。円弧を対象の要素とした場合には、円弧半径、相対角の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。楕円を対象の要素とした場合には、長径、離心率の一致が判定条件となる。楕円弧を対象の要素とした場合には、長径、離心率、相対角の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。テキストを対象の要素とした場合には、文字列の内容の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。その他の点、スプライン始点・中間点・終点を対象の要素とした場合には、形状のチェックは行わない。
【００４１】
次に、CPU１が形状が同じか否かを判断する(ステップ３０８)。このステップ３０８でCPU１が形状が同じであると判断した場合には、CPU１が変位が同じであるか否かを判断する（ステップ３０９）。代表プリミティブの先頭の要素タイプが、線分、W線分、寸法線、円弧、テキスト、楕円弧（すなわち、角度の判定が有効な要素のみ）である場合にのみ、ステップ３０９の処理を実行する。基準プリミティブとの角度の差分を考慮した変位が同じかチェックする。図１３は、本実施形態に係る変位の判定処理の具体説明図である。この図１３の例では、比較するプリミティブの基準座標との変位X0、Y0を角度θ回転させた場合にX1、Y1と同値となれば変位が同じとみなす。
【００４２】
前記ステップ３０９でCPU１が変位が同じであると判断した場合には、基準プリミティブの検索フラグをONに設定する（ステップ３１０）。次に、CPU１が全ての基準プリミティブとのチェックが終了したか否かを判断する(ステップ３１１)。このステップ３１１でCPU１が全ての基準プリミティブとのチェックが終了していないと判断した場合には、前記ステップ３０３に戻る。前記ステップ３１１でCPU１が全ての基準プリミティブとのチェックが終了していると判断した場合には、基準プリミティブと形状が異なるプリミティブは処理対象から除外する（ステップ３１２）。次に、CPU１が検索されたプリミティブ（同一候補基準プリミティブ）を全てチェックしたか否かを判断する（ステップ３１３）。このステップ３１３で、CPU１が検索されたプリミティブ（同一候補基準プリミティブ）を全てチェックしていないと判断した場合には、前記ステップ３０２に戻る。前記ステップ３１３で、CPU１が検索されたプリミティブ（同一候補基準プリミティブ）を全てチェックしたと判断した場合には、基準プリミティブの検索フラグが全てONであったら処理対象とし（ステップ３１４）、前記ステップ３００のプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理が終了する。前記ステップ３０４でCPU１がプリミティブ生成情報が同じでないと判断した場合、前記ステップ３０５でCPU１が構成要素数が同じでないと判断した場合、前記ステップ３０６でCPU１が要素タイプが同じでないと判断した場合、前記ステップ３０８でCPU１が形状が同じでないと判断した場合、前記ステップ３０９でCPU１が変位が同じでないと判断した場合には、前記ステップ３１１に進む。
【００４３】
前記ステップ３１４の後に、CPU１が代表プリミティブと同じプリミティブ（同一候補代表プリミティブ）を全てチェックしたか否かを判断する（ステップ１０６）。このステップ１０６でCPU１が代表プリミティブと同じプリミティブ（同一候補代表プリミティブ）を全てチェックしていないと判断した場合には、前記ステップ３００に戻る。前記ステップ１０６でCPU１が代表プリミティブと同じプリミティブ（同一候補代表プリミティブ）を全てチェックしたと判断した場合には、CPU１が条件に合致したプリミティブを顕示色で表示する（ステップ１０７）。次に、CPU１が部品化OKであれば、部品に付加する情報を画面入力し、オブジェクト化処理を実行する（ステップ１０８）。
【００４４】
［CAD本体プログラムへの復帰］  本実施形態ではステップ１０７でCAD本体プログラムに復帰し、自動認識オブジェクト化プログラムの実行により求めた選択したプリミティブ群と同一のプリミティブ群をCAD本体プログラムの実行によりディスプレイに顕示色で表示することもできる。また、ステップ１０８でCAD本体プログラムに復帰し、自動認識オブジェクト化プログラムの実行により求めた選択したプリミティブ群と同一のプリミティブ群をCAD本体プログラムの実行によりオブジェクト化することもできる。さらに、本実施形態では、継続して自動認識オブジェクト化プログラムをCPU１が実行していたが、適宜CAD本体プログラムをCPU１が実行してCAD本体プログラムが有する機能を利用して求めてもよい。
【００４５】
［プリミティブ群のカウント］  本実施形態ではステップ１０６の後、ステップ１０７の後、ステップ１０８の後に、選択したプリミティブ群と同一のプリミティブ群がいくつあるかをカウントすることもでき、たとえば、選択したプリミティブ群がある樹木のとき、CADデータ中に何本その樹木が必要かをユーザが自ら数えることなく算出することができる。
【００４６】
［プリミティブ群の同時編集］  本実施形態では選択したプリミティブ群と同一のプリミティブ群が検出された後に、かかるプリミティブ群に対して一括して編集を行うこともでき、一つずつプリミティブを編集するのに比べ大幅に労力を低減することができる。
【００４７】
［オブジェクト化処理］  オブジェクト化処理は、各CADプログラムの仕様によりオブジェクトのデータ形式が異なるため、CADプログラムの仕様に合致したオブジェクトのデータ形式にCADデータを変更することで実現することができる。
【００４８】
［プログラムの構成］  本実施形態の自動認識オブジェクト化プログラムを複数のプログラムに分割して実装することもできる。また、複数のコンピュータを協働させてサービスを提供するシステムの場合に、かかる分割したプログラムを各コンピュータにインストールする構成にすることもできる。
【００４９】
［基準プリミティブ又は同一候補基準プリミティブのソート処理］  本実施形態では前記ステップ１０２で基準プリミティブがプリミティブの優先順位によりソートされ前記ステップ３００でソートされた順に同一候補基準プリミティブと比較されており、すなわち特異性の高いプリミティブの種類から比較処理がなされ選択されたプリミティブと相違するプリミティブは比較処理の早い段階で同一ではないプリミティブと判断され不要な比較演算を回避することができ、迅速に自動認識の処理を完了することができる。また、同一候補基準プリミティブも基準プリミティブと同様にソートとして基準プリミティブと比較することもでき、より迅速に自動認識の処理を完了することができる。
【００５０】
以上の前記実施形態により本発明を説明したが、本発明の技術的範囲は実施形態に記載の範囲には限定されず、これら実施形態に多様な変更又は改良を加えることが可能である。そして、かような変更又は改良を加えた実施の形態も本発明の技術的範囲に含まれる。このことは、特許請求の範囲及び課題を解決する手段からも明らかなことである。
【００５１】
上記実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）  コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるためのコンピュータ支援設計プログラム。
【００５２】
（付記２）  前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程において、優先順序はプリミティブの情報の特異性の高さに基づき高いものである
前記付記１に記載のコンピュータ支援設計プログラム。
【００５３】
（付記３）  前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるための
前記付記１または２に記載のコンピュータ支援設計プログラム。
【００５４】
（付記４）  代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断する
前記付記１または２に記載のコンピュータ支援設計プログラム。
【００５５】
（付記５）  同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるための
前記付記４に記載のコンピュータ支援設計プログラム。
【００５６】
（付記６）  基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順における所定範囲が、前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状により画定され、同一候補代表プリミティブの基準点を中心として配置されたものである
前記付記１または２に記載のコンピュータ支援設計プログラム。
【００５７】
（付記７）  基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をさらにコンピュータに実行させるための
前記付記１ないし６のいずれかに記載のコンピュータ支援設計プログラム。
【００５８】
（付記８）  選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるコンピュータ支援設計システム。
【００５９】
（付記９）  コンピュータが選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程と、コンピュータが代表プリミティブと同一のプリミティブを検索する工程と、コンピュータが検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する工程と、コンピュータが同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する工程と、コンピュータが全てある場合には同一である同一候補基準プリミティブを出力する工程とを含むコンピュータ支援設計方法。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態に係るコンピュータ設計支援プログラムを実行するハードウェア構成の一例である。
【図２】本発明の実施形態に係るコンピュータ支援設計プログラムのフローチャートである。
【図３】本発明の実施形態に係る部品基準プリミティブ選択画面及びその拡大図である。
【図４】本発明の実施形態に係るプリミティブのデータ構造の一例である。
【図５】本実施形態に係る要素タイプごとの形状データの構造の一例である。
【図６】本実施形態に係るプリミティブの種類ごとのデータ構造の一例である。
【図７】本実施形態の代表プリミティブと基準プリミティブの変位の具体説明図である。
【図８】本発明の実施形態に係るプリミティブの要素タイプと基準点との対応図である。
【図９】本発明の実施形態に係る代表プリミティブの基準点と基準プリミティブ全体のエクステントとの変位の具体説明図である。
【図１０】本発明の本実施形態に係る代表プリミティブと同じ構成要素のプリミティブ検索処理の詳細フローチャートである。
【図１１】本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。
【図１２】本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。
【図１３】本発明の実施形態に係る変位の判定処理の具体説明図である。
【符号の説明】
【００６１】
１  CPU
２  メインメモリ
３  ハードディスク
４  CD-ROMドライブ
５  ディスプレイ
６  キーボード
７  マウス
８  LANカード
【図１】
2006344034.tif 000003
【図２】
2006344034.tif 000004
【図３】
2006344034.tif 000005
【図４】
2006344034.tif 000006
【図５】
2006344034.tif 000007
【図６】
2006344034.tif 000008
【図７】
2006344034.tif 000009
【図８】
2006344034.tif 000010
【図９】
2006344034.tif 000011
【図１０】
2006344034.tif 000012
【図１１】
2006344034.tif 000013
【図１２】
2006344034.tif 000014
【図１３】
2006344034.tif 000015