コンピュータ支援設計プログラム及びそのシステム
【課題】 選択されたプリミティブ群と同一のプリミティブ群をユーザに過大の入力負担を掛けることなく且つ比較的少ないプリミティブ同士の同一比較演算で認識することができるコンピュータ支援設計方法、そのシステム及びプログラムを提供する。
【解決手段】 選択されたプリミティブから代表プリミティブを選択し、この代表プリミティブを中心とした所定範囲内にあるプリミティブを検索し、検索されたプリミティブの中に選択されたプリミティブと同一のものが全てあるか否かを判断し、全てある場合には同一である同一候補基準プリミティブを出力するので、検索対象とする範囲が狭まって不必要な範囲でのプリミティブの検索がなくなり、範囲内のプリミティブのみと基準プリミティブと同一か否かの演算を行って少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。
【解決手段】 選択されたプリミティブから代表プリミティブを選択し、この代表プリミティブを中心とした所定範囲内にあるプリミティブを検索し、検索されたプリミティブの中に選択されたプリミティブと同一のものが全てあるか否かを判断し、全てある場合には同一である同一候補基準プリミティブを出力するので、検索対象とする範囲が狭まって不必要な範囲でのプリミティブの検索がなくなり、範囲内のプリミティブのみと基準プリミティブと同一か否かの演算を行って少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、選択されたプリミティブ群と同一のプリミティブ群を検索するコンピュータ支援設計プログラムに関し、特に、無数に配置されたプリミティブの中から同一のプリミティブ群を検索する場合に、比較的少ないプリミティブ同士の同一比較演算でプリミティブ群を抽出するコンピュータ支援設計プログラムに関する。
【背景技術】
【0002】
昨今建設系2次元CAD(Computer Aided Design)には二つ大きな方向性がある。その一つとしてオブジェクト指向が広く唱えられている。オブジェクト指向とは「線分や円などの図形要素(プリミティブ)を単位に作図するのではなく、壁や柱、窓などの部材(オブジェクト)を最小単位にして作図する仕組み」のことである。
【0003】
もう一つの方向性は、異種CAD間でのCADデータの交換である。建設業界に限らず一般的に業務・用途によってCADは様々であり、それぞれに定評のあるCADが存在している。これらを同一CADで統合することは現実的に無理である。そのためCALS(Continuous Acquisition and Life-cycle Support。名称の変遷あり)実現に向けて、異種CAD間でのCADデータ交換のニーズが近年急速に高まりつつある。
【0004】
CADデータの交換を行うに当り、相互のCADで効率良く作業を行うためには、オブジェクト指向によるデータ交換技術が要求される。そのため建設業界では「IFC(Industry Foudation Classes)」といったSTEP(Standard for Exchange of Product Model Data)と同期をとった標準規格も整備されつつあるが、未だ実用レベルに達していないのが現状である。
【0005】
現状では、CADデータ交換のグローバルスタンダードとしてDXF形式が広く普及しているが、この形式は図形要素を単位としたデータ形式になっており、データ交換できても効率良く活用できないという問題点がある。
したがって、データ交換した場合にはオブジェクト指向に沿った形式とはなっておらず、ユーザは図形要素単位に作図を行っている。
【0006】
このような作図環境に対して、本発明の背景技術となるコンピュータ支援設計装置としては、特開平7−129610号公報に開示するものがあり、以下説明する。この背景技術のコンピュータ支援設計装置は、被検索対象物をデータベースに予め多数登録し、この登録された被検索対象物の中から検索対象物に同一又は類似する被検索対象物を検索する装置において、被検索対象物毎にプリミティブ形状部品群によって定義された定義情報が記憶されている第1の記憶手段と、被検索インデックス値と被検索対象物とが関連付けて記憶されている第2の記憶手段と、前記第1の記憶手段に記憶されている定義情報に従って前記検索対象物に対するプリミティブ形状部品群を提示する手段と、この手段により提示されたプリミティブ形状部品に対し、類似値を各々入力する入力手段と、この手段により各々入力された類似値を所定の並び順でコード情報に変換する変換手段と、この手段により変換されたコード情報に基づいて非類似である旨の情報と類似である旨の情報とからなる検索インデックス値を算出する第1の算出手段と、この手段により算出された検索インデックス値について、前記類似である旨の情報の情報量を算出する第2の算出手段と、前記第1の算出手段により算出された検索インデックス値と前記第2の記憶手段に記憶されている被検索インデックス値とを比較する比較手段と、この手段による比較結果と前記第2の算出手段により算出された情報量とに基づいて前記検索対象物の類似性を判定する判定手段と、この手段により類似であると判定された場合に、前記被検索インデックス値に関連付けられた被検索対象物を提示する手段とからなるものである。
【0007】
このように背景技術のコンピュータ支援装置によれば、形状データのように文字情報として表現することが困難なデータに対しても、柔軟な類似検索を行うことができる。
【特許文献1】特開平7−129610号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
確かに、あるコンピュータ支援装置の公知のオブジェクト化する機能を用いて作成した場合には、そのコンピュータ支援装置の環境下においてはプリミティブ郡がオブジェクトとして認識されるので、ユーザはオブジェクト単位での操作が可能となる。しかしながら、前記したように、異種CAD間でのCADデータ交換をした場合に、標準規格となるIFCが実用化レベルに達していない状況下では、図形要素を単位としたDXF形式等のグローバルスタンダードのデータ形式でデータが渡され、ユーザはこのデータを使用して図形要素単位での作図作業を行っており、効率的な作業を行えないという課題を有する。このように異種CAD間でのCADデータ変換だけでなく、たとえば、ユーザがプリミティブを次々と作成してプリミティブ群を形成し、このプリミティブ群をオブジェクト化することなく複写して次々と配置する場合、ユーザがオブジェクト化したプリミティブ群のオブジェクト化を解いた場合であっても、その後の効率的な作業が望まれる。
【0009】
また、前記公報開示の背景技術のコンピュータ支援装置は前記のように構成され、柔軟に類似する被検索対象物を検索することができるものの、検索対象物を指定するだけでなくプリミティブを指定し、指定したプリミティブ毎の類似値を入力する必要があるばかりか、被検索対象物のプリミティブ毎の類似値を予め登録しておく必要があり、ユーザの入力負担が過大となるという課題を有する。また、類似するものをある程度検出することができるものの、同一の被検索対象物を必ずしも検索することができるわけではないという課題も有する。
【0010】
本発明は前記課題を解決するためになされたものであり、選択されたプリミティブ群と同一のプリミティブ群をユーザに過大の入力負担を掛けることなく且つ比較的少ないプリミティブ同士の同一比較演算で認識することができるコンピュータ支援設計方法、そのシステム及びプログラムを提供することを目的とする。また、自動認識された同一のプリミティブ群をオブジェクト化することも本発明の目的である。
【課題を解決するための手段】
【0011】
本発明に係るコンピュータ支援設計プログラムは、コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるものである。このように本発明においては、選択されたプリミティブから代表プリミティブを選定し、この代表プリミティブを中心とした所定範囲内にあるプリミティブを検索し、検索されたプリミティブの中に選択されたプリミティブと同一のものが全てあるか否かを判断し、全てある場合には同一である同一候補基準プリミティブを出力するので、検索対象とする範囲が狭まって不必要な範囲でのプリミティブの検索がなくなり、範囲内のプリミティブのみと基準プリミティブと同一か否かの演算を行って少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。ここで同一である同一候補基準プリミティブを出力とは、メインメモリへの格納、ディスプレイへの出力等の全ての出力が該当する。
【0012】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程において、優先順序はプリミティブの情報の特異性の高さに基づき高いものであるものである。このように本発明においては、プリミティブの情報の特異性の高さに基づき高い優先順序に従って代表プリミティブを選定しているので、ありふれたプリミティブが代表プリミティブになることを抑制し、特異性の高いプリミティブが代表プリミティブになり易く、代表プリミティブと同一のプリミティブを検索した場合に、該当するプリミティブが少なく結果的に少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。
【0013】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるものである。このように本発明においては、選択されたプリミティブの中から所定の大きさ以下のプリミティブまたは重なるプリミティブを除外しているので、明らかにユーザが意図しないプリミティブを除外すると共に、ユーザが意図するプリミティブを基準プリミティブとして以降の処理が実行されて適切にユーザが意図する選択されたプリミティブと同一のプリミティブを適切に自動認識することができる。前記除外したプリミティブを除外せずに以降の処理が実行された場合には、選択されたプリミティブと同一のプリミティブを自動認識することができず、さらに、その原因をユーザが把握することにも時間がかかる。また、選択されたプリミティブと同一のプリミティブを自動認識することができた場合でも、不要のプリミティブを包含した状態となって、自動認識する過程で不要な演算処理を行うことになる。
【0014】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断するものである。このように本発明においては、同一候補基準プリミティブと基準プリミティブとを同一比較する場合に、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位と、代表プリミティブの基準点と基準プリミティブの基準点との変位とを同一比較するので、単に同一候補代表プリミティブの近くに対応する同一候補基準プリミティブが配置されているだけではなく、代表プリミティブと基準プリミティブとの相対位置関係を同一候補代表プリミティブと同一候補基準プリミティブも有していることを比較対象としていることで、適切に選択されたプリミティブと同一のプリミティブを自動認識することができる。
【0015】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるものである。このように本発明においては、同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合に、同一候補基準プリミティブ又は基準プリミティブを基準プリミティブ又は同一候補基準プリミティブまで傾けて傾けたプリミティブに関して変位を求めているので、同じプリミティブ郡が複数配置されている場合でも相互に傾いている場合にはプリミティブ群内のプリミティブ同士の変位が傾きにより異なるため、傾きがない場合と同様に求めた場合傾いているが故に同一のプリミティブ群でも同一でないと誤って判断するのに対し、傾きを合わせて変位を求めており、この求めた変位を比較対象とすることで適切に選択されたプリミティブと同一のプリミティブを自動認識することができる。
【0016】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順における所定範囲が、前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状により画定され、同一候補代表プリミティブの基準点を中心として配置されたものである。このように本発明においては、前記所定範囲が基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうちもっとも大きい変位を例えば1.5倍に大きくしたものを基準とする形状から画定され、且つ、代表プリミティブの基準点を中心としたものであるので、選択されたプリミティブと同一のプリミティブが選択されたプリミティブと比べ傾いている場合であってもかかる所定範囲内に収まり、検索範囲からのプリミティブの洩れを防止し、同一候補基準プリミティブと基準プリミティブとを適切に同一比較することができる。
【0017】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をさらにコンピュータに実行させるものである。このように本発明においては、基準プリミティブと同一であると判断した同一候補基準プリミティブをオブジェクト化するので、ユーザはプリミティブ単位での操作ではなくオブジェクト単位での操作となってユーザの操作の負担を軽減することができる。
【0018】
また、本発明に係るコンピュータ支援設計システムは、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるものである。
【0019】
また、本発明に係るコンピュータ支援設計方法は、コンピュータが選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程と、コンピュータが代表プリミティブと同一のプリミティブを検索する工程と、コンピュータが検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する工程と、コンピュータが同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する工程と、コンピュータが全てある場合には同一である同一候補基準プリミティブを出力する工程とを含むものである。
これら前記の発明の概要は、本発明に必須となる特徴を列挙したものではなく、これら複数の特徴のサブコンビネーションも発明となり得る。
【発明を実施するための最良の形態】
【0020】
ここで、本発明は多くの異なる形態で実施可能である。したがって、下記の実施形態の記載内容のみで解釈すべきではない。
実施形態では、主にプログラムについて説明するが、所謂当業者であれば明らかな通り、本発明はコンピュータで使用可能なシステム及び方法としても実施できる。また、本発明は、ハードウェア、ソフトウェア、または、ソフトウェア及びハードウェアの実施形態で実施可能である。プログラムは、ハードディスク、CD-ROM、DVD-ROM、光記憶装置または磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。
【0021】
本発明の実施形態に係るコンピュータ設計支援プログラムについて図に基づき説明する。本実施形態に係るコンピュータ設計支援プログラムは、選択された基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順と、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順と、基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をコンピュータに実行させるためのプログラムである。
【0022】
本プログラムは、ユーザが選択したプリミティブ群と同一のプリミティブ群を自動認識し、自動認識したプリミティブ群をオブジェクト化するものであり、単独でコンピュータ設計支援プログラムとして存在する他、仮想2次元座標空間上に縦、横のある対象物の形状を描いたり、ユーザの編集を受けたりする周知な標準のコンピュータ支援プログラム(CAD本体プログラム)の一機能を提供するプログラム(自動認識オブジェクト化プログラム)として実装することもできる。本実施形態では、CAD本体プログラムと自動認識オブジェクト化プログラムとの構成で実装した場合について以下説明する。なお、CADプログラムとして、CAD本体プログラム及び自動認識オブジェクト化プログラムを一つにまとめた形でも実装することができる。
【0023】
本実施形態のハードウェアの一例を図1に示す。本実施形態では、CPU(Central Processing Unit)1、メインメモリ2、ハードディスク(HD:Hard Disk)3、CD-ROMドライブ4、ディスプレイ5、キーボード6、マウス7及びLANカード8をハードウェア構成とする。ハードディスク3にはCAD本体プログラムと自動認識オブジェクト化プログラムが記録される。ユーザのキーボード6又はマウス7の操作によりハードディスク3からメインメモリ2に読み出され、CPU1によりプログラムが実行される。通常であれば、CPU1がCAD本体プログラムを実行し、ハードディスク3に記録されているCADデータを読み出して対象物の形状をディスプレイ5に描画する。描画した対象物に対してのユーザのキーボード6又はマウス7の操作に応じて、CAD本体プログラムがCPU1により実行され、操作に合致した再描画及びCADデータの変更がなされる。実際には、CAD本体プログラム及び自動認識オブジェクト化プログラムは、OSと協働して各機能を提供する。ただし、CAD本体プログラム及び自動認識オブジェクト化プログラム単独で各機能の全部又は一部を提供するように実装することもできる。CAD本体プログラムが提供する機能としては、プリミティブの作成、削除、CADデータのファイルとしてハードディスク3への保存、オブジェクトの印刷、表示の切り換え、オブジェクトのフォーマット(整列、前面へ移動、後面へ移動、グループの作成等)、オブジェクトの変更(トリミング、ストレッチ、スプリット、ブーリアン演算等)等の公知の機能が該当する。自動認識オブジェクト化プログラムが提供する機能としては、ユーザが選択したプリミティブ群と同一のプリミティブ群の同一CADデータ内での検索、検索したプリミティブ群のオブジェクト化が該当する。
【0024】
プログラムは通常CD-ROM等の記録媒体に格納されており、CD-ROMドライブ4等で読み込みハードディスク3の所定箇所又は指定箇所に記録され、メインメモリ2に必要時に読み出し可能となることでインストールされる。また、CD-ROM等の記録媒体を用いる他、LANカード8を用いてネットワークを介して他のコンピュータと通信し、プログラムをダウンロードして同様にハードディスク3の所定箇所又は指定箇所に記録され、メインメモリ2に必要時に読み出し可能となることでインストールされる。
【0025】
図2は、本発明の実施形態に係る自動認識オブジェクト化プログラムのフローチャートである。以下、この図に基づいて自動認識オブジェクト化プログラムの処理について説明する。予め、CAD本体プログラムがCPU1により実行され、メインメモリ2にはCADデータが読み出されているとする。また、この読み出されているCADデータはプリミティブを単位としたDXF形式など標準的なCADデータ形式であり、プリミティブ群がオブジェクト化されていないとする。このようにCAD本体プログラムの実行下でCAD本体プログラムから自動認識オブジェクト化プログラムの処理へ実行が移行するには、例えば、ユーザが自動認識オブジェクト化プログラムの呼び出しが割り当てられているスイッチを押下することがトリガとなる。
【0026】
まず、ユーザはキーボード6又はマウス7を用いてオブジェクト化の対象とする基準プリミティブを選択する。この選択の操作に対応して、CPU1がCADプログラム本体を実行し、図3に示すようにディスプレイ5に選択された基準プリミティブが選択されていないプリミティブと比べて一点鎖線で顕示されている(配色を変える等、他の顕示方法を用いてもよい)。この選択の操作に次に、前記自動認識オブジェクト化プログラムの呼び出しが割り当てられているスイッチを押下する。スイッチが押下されると、自動認識オブジェクト化プログラムがメインメモリ2に読み出され、CPU1に実行される(これ以降明示しなければ、自動認識オブジェクト化プログラムの処理とする)。実行されると、CPU1が選択された基準プリミティブから小さなプリミティブまたは重なるプリミティブを除外する(ステップ101)。図4は本実施形態に係るプリミティブのデータ構造の一例を示す。プリミティブは属性データと1以上の要素データからなるデータ構造を有する。また、個々の要素データは要素タイプと形状データの情報を持つ。テキスト要素の場合には文字列データを持つ。図5は本実施形態に係る要素タイプごとの形状データの構造の一例を示す。除外するプリミティブとしては、線分の長さが所定の長さ以下のプリミティブ、円、円弧の半径が所定の長さ以下のプリミティブ、同一形状の点、線分、円、円弧のプリミティブ、線分、円弧で始点・終点が他の線分、円弧内に含まれるプリミティブが例示される。ここで例示したプリミティブの他のプリミティブを除外対象とする構成にもできるし、ユーザ自ら除外対象のプリミティブを指定する構成にすることもできる。
【0027】
CPU1が選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて基準プリミティブを選定し代表プリミティブとする(ステップ102)。詳細には、プリミティブの種類により並べ替える基準プリミティブのソート処理を行って代表プリミティブを決定する。図6は本実施形態に係るプリミティブの種類ごとのデータ構造の一例である。プリミティブの種類によるソート順は、例えば、テキスト、楕円弧、扇形、円弧、閉多角形、W連続線、連続線、W線分、寸法線、線分、楕円、円、スプライン、点、これ以外のプリミティブの種類の順である。このソート順は、プリミティブの情報の特異性に基づいている。すなわち、特異性が高いプリミティブを代表プリミティブとすることで、代表プリミティブと同一のプリミティブをCADデータ中のプリミティブから検索する処理が迅速に実行される。
【0028】
選択された要素の中から前記ステップ101で除外されたプリミティブの集合を基準プリミティブと称す。また、前記ステップ102で並べ替えられた後に、先頭に格納されているプリミティブを代表プリミティブと称す。図3では、「シマト」とディスプレイ5に表示されているテキストが代表プリミティブとなる。
【0029】
前記ステップ102の後に、CPU1が代表プリミティブの情報を取得する(ステップ103)。すなわち、並べ替えられた基準プリミティブの先頭に格納されているプリミティブの情報を取り出す。ここで、取り出す情報の例示としては、プリミティブの生成属性、構成要素数、個々の構成要素の形状データ、文字列内容(テキスト要素のみ)、個々の構成要素の要素タイプ、最初の要素の傾き角度が該当する。
【0030】
要素の傾き角度は、本実施形態では、次の通りである。線分、W線分、寸法線であれば、始点と終点のなす角度を傾き角度とする。テキストであれば、文字の傾斜角を傾き角度とする。円弧であれば、円弧開始角を傾き角度とする。楕円弧であれば楕円弧開始角を傾き角度とする。これら要素以外の例えば点、スプラインは、傾き角度を0とする。
【0031】
前記ステップ103の後に、CPU1が代表プリミティブの基準点と基準プリミティブの基準点との変位を求める(ステップ104)。基準プリミティブの全てについて、代表プリミティブとの変位を求める。図7は本実施形態の代表プリミティブと基準プリミティブの変位の具体説明図である。この図7では、代表プリミティブはテキスト「シマト」である。また、図7では比較対象の基準プリミティブは一点鎖線で示す線分である。
【0032】
前記ステップ104の後に、CPU1が基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める(ステップ105)。図8は本実施形態に係るプリミティブの要素タイプと基準点との対応図である。プリミティブを構成する最初の要素の形状データを基準点とする。図9は本実施形態に係る代表プリミティブの基準点と基準プリミティブ全体のエクステントとの変位の具体説明図である。
【0033】
前記ステップ105の後に、CPU1が代表プリミティブと同一のプリミティブを検索する定義済み処理(ステップ200:代表プリミティブと同じ構成要素のプリミティブ検索処理)を実行する。図面全体の中から代表プリミティブと同じプリミティブを検索する。
【0034】
図10は本実施形態に係る代表プリミティブと同じ構成要素のプリミティブ検索処理の詳細フローチャートである。ステップ200の代表プリミティブと同じ構成要素のプリミティブ検索処理は、まず、CPU1が図面内のプリミティブデータを読み込む(ステップ201)。CPU1がプリミティブの生成属性が同じか否かを判断する(ステップ202)。比較対象の生成属性の例示しては、線種番号、フォント番号、色番号、ハッチングパターン番号が該当する。
【0035】
ステップ202でCPU1がプリミティブ生成属性が同じであると判断した場合には、CPU1が構成要素数が同じか否かを判断する(ステップ203)。ステップ203でCPU1が構成要素数が同じであると判断した場合には、CPU1が要素タイプが同じか否かを判断する(ステップ204)。このステップ204でCPU1が要素タイプが同じであると判断した場合には、CPU1が要素タイプごとの形状データ判定処理を実行する(ステップ205)。この要素タイプごとの形状データ判定処理は、プリミティブを構成する個々の構成要素の形状データを判定する。線分、W線分、寸法線を対象の要素とした場合には、開始点、終了点の点間距離の一致が判定条件となる。円を対象の要素とした場合には、半径の一致が判定条件となる。円弧を対象の要素とした場合には、円弧半径、相対角の一致が判定条件となる。楕円を対象の要素とした場合には、長径、離心率の一致が判定条件となる。楕円弧を対象の要素とした場合には、長径、離心率、相対角の一致が判定条件となる。テキストを対象の要素とした場合には、文字列の内容の一致が判定条件となる。その他の点、スプライン始点・中間点・終点を対象の要素とした場合には、形状のチェックは行わない。なお、このステップでは変位のチェックは行わない。
【0036】
前記ステップ205の後に、CPU1が形状が同じであったか否かを判断する(ステップ206)。このステップ206でCPU1が形状が同じであると判断した場合には、CPU1がプリミティブの構成要素を全てチェックしたか否かを判断する(ステップ207)。このステップ207でCPU1がプリミティブの構成要素を全てチェックしていないと判断した場合には、前記ステップ204へ戻る。前記ステップ207でCPU1がプリミティブの構成要素を全てチェックしたと判断した場合には、CPU1がプリミティブを追加選択する(ステップ208)。メインメモリ2に追加選択された同一候補代表プリミティブを格納する。CPU1が図面内のプリミティブを全てチェックしたか否かを判断する(ステップ209)。このステップ209でCPU1が図面内のプリミティブを全てチェックしたと判断した場合には、代表プリミティブと同じ構成要素のプリミティブ検索処理が終了する。前記ステップ209でCPU1が図面内のプリミティブを全てチェックしていないと判断した場合には、前記ステップ201に戻る。前記ステップ202でCPU1がプリミティブ生成属性が同じでないと判断した場合、前記ステップ203でCPU1が構成要素数が同じでないと判断した場合、前記ステップ204でCPU1が要素タイプが同じでないと判断した場合、前記ステップ206でCPU1が形状が同じでないと判断した場合には、前記ステップ209に進む。
【0037】
前記ステップ200の後に、検索した代表プリミティブと同じプリミティブ(同一候補代表プリミティブ)全てに対して、周囲の要素を検索し、基準プリミティブと同じ形状か否かを判断する定義済み処理(ステップ300:プリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理)を実行する。すなわち、CPU1が検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する。この所定範囲は、前記ステップ105で求めた前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状に画定され(変位の所定倍を基準としたとは、かかる長さを基準とした形状であり、例えば、かかる長さを一辺とした矩形、かかる長さを半径とした円、かかる長さを対角線とした矩形、かかる長さを1辺の半分とした正方形等が該当する)、中心を同一候補代表プリミティブとする矩形範囲である。図9では、X方向の変位2117を1.5倍して同一候補代表プリミティブの基準点座標を中心に四方向に広げた領域である二点鎖線で示される矩形範囲を所定範囲としている。また、CPU1が同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める。さらに、CPU1同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する。ここで全てあるかとしているのは同一候補基準プリミティブに基準プリミティブと異なるプリミティブが含まれている場合があるからである。さらにまた、CPU1が全てある場合には同一である同一候補基準プリミティブを出力する。
【0038】
図11及び図12は、本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。ステップ300のプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理は、まず、CPU1が代表プリミティブと同じ形状のプリミティブ(同一候補代表プリミティブ)の周囲のプリミティブを検索する(ステップ301)。前記ステップ105で求めたエクステントとの変位の最大値に1.5倍した矩形の領域で周囲の要素を検索している。より詳細には、基準要素全体のエクステントと代表プリミティブの基準点座標の変位の内、最も値の大きいもの(図9の場合、2117)を1.5倍して代表プリミティブの基準点座標を中心に四方向に広げた領域(図9の場合、2点鎖線で示される領域)を検索領域とする。このように検索領域を定義することで、プリミティブ群が傾いている場合でも領域内に収まり、検索対象となって洩れがなくなると共に、必要のない領域を検索しないため高速に検索することができる。
【0039】
前記ステップ301の後に、CPU1が前記ステップ301で検索したプリミティブ(同一候補基準プリミティブ)データを読み込む(ステップ302)。次に、CPU1が基準プリミティブのデータを順に読み込む(ステップ303)。
【0040】
ステップ303の後に、CPU1がプリミティブ生成属性が同じか否かを判断する(ステップ304)。このステップ304でCPU1がプリミティブ生成属性が同じであると判断した場合には、CPU1が構成要素数が同じか否かを判断する(ステップ305)。このステップ305でCPU1が構成要素数が同じであると判断した場合には、CPU1が要素タイプが同じか否かを判断する(ステップ306)。このステップ306で、CPU1が要素タイプが同じであると判断した場合には、CPU1が要素タイプごとの形状データ判定処理を実行する(ステップ307)。線分、W線分、寸法線を対象の要素とした場合には、開始点、終了点の点間距離の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。円を対象の要素とした場合には、半径の一致が判定条件となる。円弧を対象の要素とした場合には、円弧半径、相対角の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。楕円を対象の要素とした場合には、長径、離心率の一致が判定条件となる。楕円弧を対象の要素とした場合には、長径、離心率、相対角の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。テキストを対象の要素とした場合には、文字列の内容の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。その他の点、スプライン始点・中間点・終点を対象の要素とした場合には、形状のチェックは行わない。
【0041】
次に、CPU1が形状が同じか否かを判断する(ステップ308)。このステップ308でCPU1が形状が同じであると判断した場合には、CPU1が変位が同じであるか否かを判断する(ステップ309)。代表プリミティブの先頭の要素タイプが、線分、W線分、寸法線、円弧、テキスト、楕円弧(すなわち、角度の判定が有効な要素のみ)である場合にのみ、ステップ309の処理を実行する。基準プリミティブとの角度の差分を考慮した変位が同じかチェックする。図13は、本実施形態に係る変位の判定処理の具体説明図である。この図13の例では、比較するプリミティブの基準座標との変位X0、Y0を角度θ回転させた場合にX1、Y1と同値となれば変位が同じとみなす。
【0042】
前記ステップ309でCPU1が変位が同じであると判断した場合には、基準プリミティブの検索フラグをONに設定する(ステップ310)。次に、CPU1が全ての基準プリミティブとのチェックが終了したか否かを判断する(ステップ311)。このステップ311でCPU1が全ての基準プリミティブとのチェックが終了していないと判断した場合には、前記ステップ303に戻る。前記ステップ311でCPU1が全ての基準プリミティブとのチェックが終了していると判断した場合には、基準プリミティブと形状が異なるプリミティブは処理対象から除外する(ステップ312)。次に、CPU1が検索されたプリミティブ(同一候補基準プリミティブ)を全てチェックしたか否かを判断する(ステップ313)。このステップ313で、CPU1が検索されたプリミティブ(同一候補基準プリミティブ)を全てチェックしていないと判断した場合には、前記ステップ302に戻る。前記ステップ313で、CPU1が検索されたプリミティブ(同一候補基準プリミティブ)を全てチェックしたと判断した場合には、基準プリミティブの検索フラグが全てONであったら処理対象とし(ステップ314)、前記ステップ300のプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理が終了する。前記ステップ304でCPU1がプリミティブ生成情報が同じでないと判断した場合、前記ステップ305でCPU1が構成要素数が同じでないと判断した場合、前記ステップ306でCPU1が要素タイプが同じでないと判断した場合、前記ステップ308でCPU1が形状が同じでないと判断した場合、前記ステップ309でCPU1が変位が同じでないと判断した場合には、前記ステップ311に進む。
【0043】
前記ステップ314の後に、CPU1が代表プリミティブと同じプリミティブ(同一候補代表プリミティブ)を全てチェックしたか否かを判断する(ステップ106)。このステップ106でCPU1が代表プリミティブと同じプリミティブ(同一候補代表プリミティブ)を全てチェックしていないと判断した場合には、前記ステップ300に戻る。前記ステップ106でCPU1が代表プリミティブと同じプリミティブ(同一候補代表プリミティブ)を全てチェックしたと判断した場合には、CPU1が条件に合致したプリミティブを顕示色で表示する(ステップ107)。次に、CPU1が部品化OKであれば、部品に付加する情報を画面入力し、オブジェクト化処理を実行する(ステップ108)。
【0044】
[CAD本体プログラムへの復帰] 本実施形態ではステップ107でCAD本体プログラムに復帰し、自動認識オブジェクト化プログラムの実行により求めた選択したプリミティブ群と同一のプリミティブ群をCAD本体プログラムの実行によりディスプレイに顕示色で表示することもできる。また、ステップ108でCAD本体プログラムに復帰し、自動認識オブジェクト化プログラムの実行により求めた選択したプリミティブ群と同一のプリミティブ群をCAD本体プログラムの実行によりオブジェクト化することもできる。さらに、本実施形態では、継続して自動認識オブジェクト化プログラムをCPU1が実行していたが、適宜CAD本体プログラムをCPU1が実行してCAD本体プログラムが有する機能を利用して求めてもよい。
【0045】
[プリミティブ群のカウント] 本実施形態ではステップ106の後、ステップ107の後、ステップ108の後に、選択したプリミティブ群と同一のプリミティブ群がいくつあるかをカウントすることもでき、たとえば、選択したプリミティブ群がある樹木のとき、CADデータ中に何本その樹木が必要かをユーザが自ら数えることなく算出することができる。
【0046】
[プリミティブ群の同時編集] 本実施形態では選択したプリミティブ群と同一のプリミティブ群が検出された後に、かかるプリミティブ群に対して一括して編集を行うこともでき、一つずつプリミティブを編集するのに比べ大幅に労力を低減することができる。
【0047】
[オブジェクト化処理] オブジェクト化処理は、各CADプログラムの仕様によりオブジェクトのデータ形式が異なるため、CADプログラムの仕様に合致したオブジェクトのデータ形式にCADデータを変更することで実現することができる。
【0048】
[プログラムの構成] 本実施形態の自動認識オブジェクト化プログラムを複数のプログラムに分割して実装することもできる。また、複数のコンピュータを協働させてサービスを提供するシステムの場合に、かかる分割したプログラムを各コンピュータにインストールする構成にすることもできる。
【0049】
[基準プリミティブ又は同一候補基準プリミティブのソート処理] 本実施形態では前記ステップ102で基準プリミティブがプリミティブの優先順位によりソートされ前記ステップ300でソートされた順に同一候補基準プリミティブと比較されており、すなわち特異性の高いプリミティブの種類から比較処理がなされ選択されたプリミティブと相違するプリミティブは比較処理の早い段階で同一ではないプリミティブと判断され不要な比較演算を回避することができ、迅速に自動認識の処理を完了することができる。また、同一候補基準プリミティブも基準プリミティブと同様にソートとして基準プリミティブと比較することもでき、より迅速に自動認識の処理を完了することができる。
【0050】
以上の前記実施形態により本発明を説明したが、本発明の技術的範囲は実施形態に記載の範囲には限定されず、これら実施形態に多様な変更又は改良を加えることが可能である。そして、かような変更又は改良を加えた実施の形態も本発明の技術的範囲に含まれる。このことは、特許請求の範囲及び課題を解決する手段からも明らかなことである。
【0051】
上記実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1) コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるためのコンピュータ支援設計プログラム。
【0052】
(付記2) 前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程において、優先順序はプリミティブの情報の特異性の高さに基づき高いものである
前記付記1に記載のコンピュータ支援設計プログラム。
【0053】
(付記3) 前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるための
前記付記1または2に記載のコンピュータ支援設計プログラム。
【0054】
(付記4) 代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断する
前記付記1または2に記載のコンピュータ支援設計プログラム。
【0055】
(付記5) 同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるための
前記付記4に記載のコンピュータ支援設計プログラム。
【0056】
(付記6) 基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順における所定範囲が、前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状により画定され、同一候補代表プリミティブの基準点を中心として配置されたものである
前記付記1または2に記載のコンピュータ支援設計プログラム。
【0057】
(付記7) 基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をさらにコンピュータに実行させるための
前記付記1ないし6のいずれかに記載のコンピュータ支援設計プログラム。
【0058】
(付記8) 選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるコンピュータ支援設計システム。
【0059】
(付記9) コンピュータが選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程と、コンピュータが代表プリミティブと同一のプリミティブを検索する工程と、コンピュータが検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する工程と、コンピュータが同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する工程と、コンピュータが全てある場合には同一である同一候補基準プリミティブを出力する工程とを含むコンピュータ支援設計方法。
【図面の簡単な説明】
【0060】
【図1】本発明の実施形態に係るコンピュータ設計支援プログラムを実行するハードウェア構成の一例である。
【図2】本発明の実施形態に係るコンピュータ支援設計プログラムのフローチャートである。
【図3】本発明の実施形態に係る部品基準プリミティブ選択画面及びその拡大図である。
【図4】本発明の実施形態に係るプリミティブのデータ構造の一例である。
【図5】本実施形態に係る要素タイプごとの形状データの構造の一例である。
【図6】本実施形態に係るプリミティブの種類ごとのデータ構造の一例である。
【図7】本実施形態の代表プリミティブと基準プリミティブの変位の具体説明図である。
【図8】本発明の実施形態に係るプリミティブの要素タイプと基準点との対応図である。
【図9】本発明の実施形態に係る代表プリミティブの基準点と基準プリミティブ全体のエクステントとの変位の具体説明図である。
【図10】本発明の本実施形態に係る代表プリミティブと同じ構成要素のプリミティブ検索処理の詳細フローチャートである。
【図11】本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。
【図12】本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。
【図13】本発明の実施形態に係る変位の判定処理の具体説明図である。
【符号の説明】
【0061】
1 CPU
2 メインメモリ
3 ハードディスク
4 CD-ROMドライブ
5 ディスプレイ
6 キーボード
7 マウス
8 LANカード
【技術分野】
【0001】
本発明は、選択されたプリミティブ群と同一のプリミティブ群を検索するコンピュータ支援設計プログラムに関し、特に、無数に配置されたプリミティブの中から同一のプリミティブ群を検索する場合に、比較的少ないプリミティブ同士の同一比較演算でプリミティブ群を抽出するコンピュータ支援設計プログラムに関する。
【背景技術】
【0002】
昨今建設系2次元CAD(Computer Aided Design)には二つ大きな方向性がある。その一つとしてオブジェクト指向が広く唱えられている。オブジェクト指向とは「線分や円などの図形要素(プリミティブ)を単位に作図するのではなく、壁や柱、窓などの部材(オブジェクト)を最小単位にして作図する仕組み」のことである。
【0003】
もう一つの方向性は、異種CAD間でのCADデータの交換である。建設業界に限らず一般的に業務・用途によってCADは様々であり、それぞれに定評のあるCADが存在している。これらを同一CADで統合することは現実的に無理である。そのためCALS(Continuous Acquisition and Life-cycle Support。名称の変遷あり)実現に向けて、異種CAD間でのCADデータ交換のニーズが近年急速に高まりつつある。
【0004】
CADデータの交換を行うに当り、相互のCADで効率良く作業を行うためには、オブジェクト指向によるデータ交換技術が要求される。そのため建設業界では「IFC(Industry Foudation Classes)」といったSTEP(Standard for Exchange of Product Model Data)と同期をとった標準規格も整備されつつあるが、未だ実用レベルに達していないのが現状である。
【0005】
現状では、CADデータ交換のグローバルスタンダードとしてDXF形式が広く普及しているが、この形式は図形要素を単位としたデータ形式になっており、データ交換できても効率良く活用できないという問題点がある。
したがって、データ交換した場合にはオブジェクト指向に沿った形式とはなっておらず、ユーザは図形要素単位に作図を行っている。
【0006】
このような作図環境に対して、本発明の背景技術となるコンピュータ支援設計装置としては、特開平7−129610号公報に開示するものがあり、以下説明する。この背景技術のコンピュータ支援設計装置は、被検索対象物をデータベースに予め多数登録し、この登録された被検索対象物の中から検索対象物に同一又は類似する被検索対象物を検索する装置において、被検索対象物毎にプリミティブ形状部品群によって定義された定義情報が記憶されている第1の記憶手段と、被検索インデックス値と被検索対象物とが関連付けて記憶されている第2の記憶手段と、前記第1の記憶手段に記憶されている定義情報に従って前記検索対象物に対するプリミティブ形状部品群を提示する手段と、この手段により提示されたプリミティブ形状部品に対し、類似値を各々入力する入力手段と、この手段により各々入力された類似値を所定の並び順でコード情報に変換する変換手段と、この手段により変換されたコード情報に基づいて非類似である旨の情報と類似である旨の情報とからなる検索インデックス値を算出する第1の算出手段と、この手段により算出された検索インデックス値について、前記類似である旨の情報の情報量を算出する第2の算出手段と、前記第1の算出手段により算出された検索インデックス値と前記第2の記憶手段に記憶されている被検索インデックス値とを比較する比較手段と、この手段による比較結果と前記第2の算出手段により算出された情報量とに基づいて前記検索対象物の類似性を判定する判定手段と、この手段により類似であると判定された場合に、前記被検索インデックス値に関連付けられた被検索対象物を提示する手段とからなるものである。
【0007】
このように背景技術のコンピュータ支援装置によれば、形状データのように文字情報として表現することが困難なデータに対しても、柔軟な類似検索を行うことができる。
【特許文献1】特開平7−129610号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
確かに、あるコンピュータ支援装置の公知のオブジェクト化する機能を用いて作成した場合には、そのコンピュータ支援装置の環境下においてはプリミティブ郡がオブジェクトとして認識されるので、ユーザはオブジェクト単位での操作が可能となる。しかしながら、前記したように、異種CAD間でのCADデータ交換をした場合に、標準規格となるIFCが実用化レベルに達していない状況下では、図形要素を単位としたDXF形式等のグローバルスタンダードのデータ形式でデータが渡され、ユーザはこのデータを使用して図形要素単位での作図作業を行っており、効率的な作業を行えないという課題を有する。このように異種CAD間でのCADデータ変換だけでなく、たとえば、ユーザがプリミティブを次々と作成してプリミティブ群を形成し、このプリミティブ群をオブジェクト化することなく複写して次々と配置する場合、ユーザがオブジェクト化したプリミティブ群のオブジェクト化を解いた場合であっても、その後の効率的な作業が望まれる。
【0009】
また、前記公報開示の背景技術のコンピュータ支援装置は前記のように構成され、柔軟に類似する被検索対象物を検索することができるものの、検索対象物を指定するだけでなくプリミティブを指定し、指定したプリミティブ毎の類似値を入力する必要があるばかりか、被検索対象物のプリミティブ毎の類似値を予め登録しておく必要があり、ユーザの入力負担が過大となるという課題を有する。また、類似するものをある程度検出することができるものの、同一の被検索対象物を必ずしも検索することができるわけではないという課題も有する。
【0010】
本発明は前記課題を解決するためになされたものであり、選択されたプリミティブ群と同一のプリミティブ群をユーザに過大の入力負担を掛けることなく且つ比較的少ないプリミティブ同士の同一比較演算で認識することができるコンピュータ支援設計方法、そのシステム及びプログラムを提供することを目的とする。また、自動認識された同一のプリミティブ群をオブジェクト化することも本発明の目的である。
【課題を解決するための手段】
【0011】
本発明に係るコンピュータ支援設計プログラムは、コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるものである。このように本発明においては、選択されたプリミティブから代表プリミティブを選定し、この代表プリミティブを中心とした所定範囲内にあるプリミティブを検索し、検索されたプリミティブの中に選択されたプリミティブと同一のものが全てあるか否かを判断し、全てある場合には同一である同一候補基準プリミティブを出力するので、検索対象とする範囲が狭まって不必要な範囲でのプリミティブの検索がなくなり、範囲内のプリミティブのみと基準プリミティブと同一か否かの演算を行って少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。ここで同一である同一候補基準プリミティブを出力とは、メインメモリへの格納、ディスプレイへの出力等の全ての出力が該当する。
【0012】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程において、優先順序はプリミティブの情報の特異性の高さに基づき高いものであるものである。このように本発明においては、プリミティブの情報の特異性の高さに基づき高い優先順序に従って代表プリミティブを選定しているので、ありふれたプリミティブが代表プリミティブになることを抑制し、特異性の高いプリミティブが代表プリミティブになり易く、代表プリミティブと同一のプリミティブを検索した場合に、該当するプリミティブが少なく結果的に少ない演算回数で選択されたプリミティブと同一のプリミティブを自動認識することができる。
【0013】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるものである。このように本発明においては、選択されたプリミティブの中から所定の大きさ以下のプリミティブまたは重なるプリミティブを除外しているので、明らかにユーザが意図しないプリミティブを除外すると共に、ユーザが意図するプリミティブを基準プリミティブとして以降の処理が実行されて適切にユーザが意図する選択されたプリミティブと同一のプリミティブを適切に自動認識することができる。前記除外したプリミティブを除外せずに以降の処理が実行された場合には、選択されたプリミティブと同一のプリミティブを自動認識することができず、さらに、その原因をユーザが把握することにも時間がかかる。また、選択されたプリミティブと同一のプリミティブを自動認識することができた場合でも、不要のプリミティブを包含した状態となって、自動認識する過程で不要な演算処理を行うことになる。
【0014】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断するものである。このように本発明においては、同一候補基準プリミティブと基準プリミティブとを同一比較する場合に、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位と、代表プリミティブの基準点と基準プリミティブの基準点との変位とを同一比較するので、単に同一候補代表プリミティブの近くに対応する同一候補基準プリミティブが配置されているだけではなく、代表プリミティブと基準プリミティブとの相対位置関係を同一候補代表プリミティブと同一候補基準プリミティブも有していることを比較対象としていることで、適切に選択されたプリミティブと同一のプリミティブを自動認識することができる。
【0015】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるものである。このように本発明においては、同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合に、同一候補基準プリミティブ又は基準プリミティブを基準プリミティブ又は同一候補基準プリミティブまで傾けて傾けたプリミティブに関して変位を求めているので、同じプリミティブ郡が複数配置されている場合でも相互に傾いている場合にはプリミティブ群内のプリミティブ同士の変位が傾きにより異なるため、傾きがない場合と同様に求めた場合傾いているが故に同一のプリミティブ群でも同一でないと誤って判断するのに対し、傾きを合わせて変位を求めており、この求めた変位を比較対象とすることで適切に選択されたプリミティブと同一のプリミティブを自動認識することができる。
【0016】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順における所定範囲が、前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状により画定され、同一候補代表プリミティブの基準点を中心として配置されたものである。このように本発明においては、前記所定範囲が基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうちもっとも大きい変位を例えば1.5倍に大きくしたものを基準とする形状から画定され、且つ、代表プリミティブの基準点を中心としたものであるので、選択されたプリミティブと同一のプリミティブが選択されたプリミティブと比べ傾いている場合であってもかかる所定範囲内に収まり、検索範囲からのプリミティブの洩れを防止し、同一候補基準プリミティブと基準プリミティブとを適切に同一比較することができる。
【0017】
また、本発明に係るコンピュータ支援設計プログラムは必要に応じて、基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をさらにコンピュータに実行させるものである。このように本発明においては、基準プリミティブと同一であると判断した同一候補基準プリミティブをオブジェクト化するので、ユーザはプリミティブ単位での操作ではなくオブジェクト単位での操作となってユーザの操作の負担を軽減することができる。
【0018】
また、本発明に係るコンピュータ支援設計システムは、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるものである。
【0019】
また、本発明に係るコンピュータ支援設計方法は、コンピュータが選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程と、コンピュータが代表プリミティブと同一のプリミティブを検索する工程と、コンピュータが検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する工程と、コンピュータが同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する工程と、コンピュータが全てある場合には同一である同一候補基準プリミティブを出力する工程とを含むものである。
これら前記の発明の概要は、本発明に必須となる特徴を列挙したものではなく、これら複数の特徴のサブコンビネーションも発明となり得る。
【発明を実施するための最良の形態】
【0020】
ここで、本発明は多くの異なる形態で実施可能である。したがって、下記の実施形態の記載内容のみで解釈すべきではない。
実施形態では、主にプログラムについて説明するが、所謂当業者であれば明らかな通り、本発明はコンピュータで使用可能なシステム及び方法としても実施できる。また、本発明は、ハードウェア、ソフトウェア、または、ソフトウェア及びハードウェアの実施形態で実施可能である。プログラムは、ハードディスク、CD-ROM、DVD-ROM、光記憶装置または磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。
【0021】
本発明の実施形態に係るコンピュータ設計支援プログラムについて図に基づき説明する。本実施形態に係るコンピュータ設計支援プログラムは、選択された基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順と、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順と、基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をコンピュータに実行させるためのプログラムである。
【0022】
本プログラムは、ユーザが選択したプリミティブ群と同一のプリミティブ群を自動認識し、自動認識したプリミティブ群をオブジェクト化するものであり、単独でコンピュータ設計支援プログラムとして存在する他、仮想2次元座標空間上に縦、横のある対象物の形状を描いたり、ユーザの編集を受けたりする周知な標準のコンピュータ支援プログラム(CAD本体プログラム)の一機能を提供するプログラム(自動認識オブジェクト化プログラム)として実装することもできる。本実施形態では、CAD本体プログラムと自動認識オブジェクト化プログラムとの構成で実装した場合について以下説明する。なお、CADプログラムとして、CAD本体プログラム及び自動認識オブジェクト化プログラムを一つにまとめた形でも実装することができる。
【0023】
本実施形態のハードウェアの一例を図1に示す。本実施形態では、CPU(Central Processing Unit)1、メインメモリ2、ハードディスク(HD:Hard Disk)3、CD-ROMドライブ4、ディスプレイ5、キーボード6、マウス7及びLANカード8をハードウェア構成とする。ハードディスク3にはCAD本体プログラムと自動認識オブジェクト化プログラムが記録される。ユーザのキーボード6又はマウス7の操作によりハードディスク3からメインメモリ2に読み出され、CPU1によりプログラムが実行される。通常であれば、CPU1がCAD本体プログラムを実行し、ハードディスク3に記録されているCADデータを読み出して対象物の形状をディスプレイ5に描画する。描画した対象物に対してのユーザのキーボード6又はマウス7の操作に応じて、CAD本体プログラムがCPU1により実行され、操作に合致した再描画及びCADデータの変更がなされる。実際には、CAD本体プログラム及び自動認識オブジェクト化プログラムは、OSと協働して各機能を提供する。ただし、CAD本体プログラム及び自動認識オブジェクト化プログラム単独で各機能の全部又は一部を提供するように実装することもできる。CAD本体プログラムが提供する機能としては、プリミティブの作成、削除、CADデータのファイルとしてハードディスク3への保存、オブジェクトの印刷、表示の切り換え、オブジェクトのフォーマット(整列、前面へ移動、後面へ移動、グループの作成等)、オブジェクトの変更(トリミング、ストレッチ、スプリット、ブーリアン演算等)等の公知の機能が該当する。自動認識オブジェクト化プログラムが提供する機能としては、ユーザが選択したプリミティブ群と同一のプリミティブ群の同一CADデータ内での検索、検索したプリミティブ群のオブジェクト化が該当する。
【0024】
プログラムは通常CD-ROM等の記録媒体に格納されており、CD-ROMドライブ4等で読み込みハードディスク3の所定箇所又は指定箇所に記録され、メインメモリ2に必要時に読み出し可能となることでインストールされる。また、CD-ROM等の記録媒体を用いる他、LANカード8を用いてネットワークを介して他のコンピュータと通信し、プログラムをダウンロードして同様にハードディスク3の所定箇所又は指定箇所に記録され、メインメモリ2に必要時に読み出し可能となることでインストールされる。
【0025】
図2は、本発明の実施形態に係る自動認識オブジェクト化プログラムのフローチャートである。以下、この図に基づいて自動認識オブジェクト化プログラムの処理について説明する。予め、CAD本体プログラムがCPU1により実行され、メインメモリ2にはCADデータが読み出されているとする。また、この読み出されているCADデータはプリミティブを単位としたDXF形式など標準的なCADデータ形式であり、プリミティブ群がオブジェクト化されていないとする。このようにCAD本体プログラムの実行下でCAD本体プログラムから自動認識オブジェクト化プログラムの処理へ実行が移行するには、例えば、ユーザが自動認識オブジェクト化プログラムの呼び出しが割り当てられているスイッチを押下することがトリガとなる。
【0026】
まず、ユーザはキーボード6又はマウス7を用いてオブジェクト化の対象とする基準プリミティブを選択する。この選択の操作に対応して、CPU1がCADプログラム本体を実行し、図3に示すようにディスプレイ5に選択された基準プリミティブが選択されていないプリミティブと比べて一点鎖線で顕示されている(配色を変える等、他の顕示方法を用いてもよい)。この選択の操作に次に、前記自動認識オブジェクト化プログラムの呼び出しが割り当てられているスイッチを押下する。スイッチが押下されると、自動認識オブジェクト化プログラムがメインメモリ2に読み出され、CPU1に実行される(これ以降明示しなければ、自動認識オブジェクト化プログラムの処理とする)。実行されると、CPU1が選択された基準プリミティブから小さなプリミティブまたは重なるプリミティブを除外する(ステップ101)。図4は本実施形態に係るプリミティブのデータ構造の一例を示す。プリミティブは属性データと1以上の要素データからなるデータ構造を有する。また、個々の要素データは要素タイプと形状データの情報を持つ。テキスト要素の場合には文字列データを持つ。図5は本実施形態に係る要素タイプごとの形状データの構造の一例を示す。除外するプリミティブとしては、線分の長さが所定の長さ以下のプリミティブ、円、円弧の半径が所定の長さ以下のプリミティブ、同一形状の点、線分、円、円弧のプリミティブ、線分、円弧で始点・終点が他の線分、円弧内に含まれるプリミティブが例示される。ここで例示したプリミティブの他のプリミティブを除外対象とする構成にもできるし、ユーザ自ら除外対象のプリミティブを指定する構成にすることもできる。
【0027】
CPU1が選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて基準プリミティブを選定し代表プリミティブとする(ステップ102)。詳細には、プリミティブの種類により並べ替える基準プリミティブのソート処理を行って代表プリミティブを決定する。図6は本実施形態に係るプリミティブの種類ごとのデータ構造の一例である。プリミティブの種類によるソート順は、例えば、テキスト、楕円弧、扇形、円弧、閉多角形、W連続線、連続線、W線分、寸法線、線分、楕円、円、スプライン、点、これ以外のプリミティブの種類の順である。このソート順は、プリミティブの情報の特異性に基づいている。すなわち、特異性が高いプリミティブを代表プリミティブとすることで、代表プリミティブと同一のプリミティブをCADデータ中のプリミティブから検索する処理が迅速に実行される。
【0028】
選択された要素の中から前記ステップ101で除外されたプリミティブの集合を基準プリミティブと称す。また、前記ステップ102で並べ替えられた後に、先頭に格納されているプリミティブを代表プリミティブと称す。図3では、「シマト」とディスプレイ5に表示されているテキストが代表プリミティブとなる。
【0029】
前記ステップ102の後に、CPU1が代表プリミティブの情報を取得する(ステップ103)。すなわち、並べ替えられた基準プリミティブの先頭に格納されているプリミティブの情報を取り出す。ここで、取り出す情報の例示としては、プリミティブの生成属性、構成要素数、個々の構成要素の形状データ、文字列内容(テキスト要素のみ)、個々の構成要素の要素タイプ、最初の要素の傾き角度が該当する。
【0030】
要素の傾き角度は、本実施形態では、次の通りである。線分、W線分、寸法線であれば、始点と終点のなす角度を傾き角度とする。テキストであれば、文字の傾斜角を傾き角度とする。円弧であれば、円弧開始角を傾き角度とする。楕円弧であれば楕円弧開始角を傾き角度とする。これら要素以外の例えば点、スプラインは、傾き角度を0とする。
【0031】
前記ステップ103の後に、CPU1が代表プリミティブの基準点と基準プリミティブの基準点との変位を求める(ステップ104)。基準プリミティブの全てについて、代表プリミティブとの変位を求める。図7は本実施形態の代表プリミティブと基準プリミティブの変位の具体説明図である。この図7では、代表プリミティブはテキスト「シマト」である。また、図7では比較対象の基準プリミティブは一点鎖線で示す線分である。
【0032】
前記ステップ104の後に、CPU1が基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める(ステップ105)。図8は本実施形態に係るプリミティブの要素タイプと基準点との対応図である。プリミティブを構成する最初の要素の形状データを基準点とする。図9は本実施形態に係る代表プリミティブの基準点と基準プリミティブ全体のエクステントとの変位の具体説明図である。
【0033】
前記ステップ105の後に、CPU1が代表プリミティブと同一のプリミティブを検索する定義済み処理(ステップ200:代表プリミティブと同じ構成要素のプリミティブ検索処理)を実行する。図面全体の中から代表プリミティブと同じプリミティブを検索する。
【0034】
図10は本実施形態に係る代表プリミティブと同じ構成要素のプリミティブ検索処理の詳細フローチャートである。ステップ200の代表プリミティブと同じ構成要素のプリミティブ検索処理は、まず、CPU1が図面内のプリミティブデータを読み込む(ステップ201)。CPU1がプリミティブの生成属性が同じか否かを判断する(ステップ202)。比較対象の生成属性の例示しては、線種番号、フォント番号、色番号、ハッチングパターン番号が該当する。
【0035】
ステップ202でCPU1がプリミティブ生成属性が同じであると判断した場合には、CPU1が構成要素数が同じか否かを判断する(ステップ203)。ステップ203でCPU1が構成要素数が同じであると判断した場合には、CPU1が要素タイプが同じか否かを判断する(ステップ204)。このステップ204でCPU1が要素タイプが同じであると判断した場合には、CPU1が要素タイプごとの形状データ判定処理を実行する(ステップ205)。この要素タイプごとの形状データ判定処理は、プリミティブを構成する個々の構成要素の形状データを判定する。線分、W線分、寸法線を対象の要素とした場合には、開始点、終了点の点間距離の一致が判定条件となる。円を対象の要素とした場合には、半径の一致が判定条件となる。円弧を対象の要素とした場合には、円弧半径、相対角の一致が判定条件となる。楕円を対象の要素とした場合には、長径、離心率の一致が判定条件となる。楕円弧を対象の要素とした場合には、長径、離心率、相対角の一致が判定条件となる。テキストを対象の要素とした場合には、文字列の内容の一致が判定条件となる。その他の点、スプライン始点・中間点・終点を対象の要素とした場合には、形状のチェックは行わない。なお、このステップでは変位のチェックは行わない。
【0036】
前記ステップ205の後に、CPU1が形状が同じであったか否かを判断する(ステップ206)。このステップ206でCPU1が形状が同じであると判断した場合には、CPU1がプリミティブの構成要素を全てチェックしたか否かを判断する(ステップ207)。このステップ207でCPU1がプリミティブの構成要素を全てチェックしていないと判断した場合には、前記ステップ204へ戻る。前記ステップ207でCPU1がプリミティブの構成要素を全てチェックしたと判断した場合には、CPU1がプリミティブを追加選択する(ステップ208)。メインメモリ2に追加選択された同一候補代表プリミティブを格納する。CPU1が図面内のプリミティブを全てチェックしたか否かを判断する(ステップ209)。このステップ209でCPU1が図面内のプリミティブを全てチェックしたと判断した場合には、代表プリミティブと同じ構成要素のプリミティブ検索処理が終了する。前記ステップ209でCPU1が図面内のプリミティブを全てチェックしていないと判断した場合には、前記ステップ201に戻る。前記ステップ202でCPU1がプリミティブ生成属性が同じでないと判断した場合、前記ステップ203でCPU1が構成要素数が同じでないと判断した場合、前記ステップ204でCPU1が要素タイプが同じでないと判断した場合、前記ステップ206でCPU1が形状が同じでないと判断した場合には、前記ステップ209に進む。
【0037】
前記ステップ200の後に、検索した代表プリミティブと同じプリミティブ(同一候補代表プリミティブ)全てに対して、周囲の要素を検索し、基準プリミティブと同じ形状か否かを判断する定義済み処理(ステップ300:プリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理)を実行する。すなわち、CPU1が検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する。この所定範囲は、前記ステップ105で求めた前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状に画定され(変位の所定倍を基準としたとは、かかる長さを基準とした形状であり、例えば、かかる長さを一辺とした矩形、かかる長さを半径とした円、かかる長さを対角線とした矩形、かかる長さを1辺の半分とした正方形等が該当する)、中心を同一候補代表プリミティブとする矩形範囲である。図9では、X方向の変位2117を1.5倍して同一候補代表プリミティブの基準点座標を中心に四方向に広げた領域である二点鎖線で示される矩形範囲を所定範囲としている。また、CPU1が同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める。さらに、CPU1同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する。ここで全てあるかとしているのは同一候補基準プリミティブに基準プリミティブと異なるプリミティブが含まれている場合があるからである。さらにまた、CPU1が全てある場合には同一である同一候補基準プリミティブを出力する。
【0038】
図11及び図12は、本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。ステップ300のプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理は、まず、CPU1が代表プリミティブと同じ形状のプリミティブ(同一候補代表プリミティブ)の周囲のプリミティブを検索する(ステップ301)。前記ステップ105で求めたエクステントとの変位の最大値に1.5倍した矩形の領域で周囲の要素を検索している。より詳細には、基準要素全体のエクステントと代表プリミティブの基準点座標の変位の内、最も値の大きいもの(図9の場合、2117)を1.5倍して代表プリミティブの基準点座標を中心に四方向に広げた領域(図9の場合、2点鎖線で示される領域)を検索領域とする。このように検索領域を定義することで、プリミティブ群が傾いている場合でも領域内に収まり、検索対象となって洩れがなくなると共に、必要のない領域を検索しないため高速に検索することができる。
【0039】
前記ステップ301の後に、CPU1が前記ステップ301で検索したプリミティブ(同一候補基準プリミティブ)データを読み込む(ステップ302)。次に、CPU1が基準プリミティブのデータを順に読み込む(ステップ303)。
【0040】
ステップ303の後に、CPU1がプリミティブ生成属性が同じか否かを判断する(ステップ304)。このステップ304でCPU1がプリミティブ生成属性が同じであると判断した場合には、CPU1が構成要素数が同じか否かを判断する(ステップ305)。このステップ305でCPU1が構成要素数が同じであると判断した場合には、CPU1が要素タイプが同じか否かを判断する(ステップ306)。このステップ306で、CPU1が要素タイプが同じであると判断した場合には、CPU1が要素タイプごとの形状データ判定処理を実行する(ステップ307)。線分、W線分、寸法線を対象の要素とした場合には、開始点、終了点の点間距離の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。円を対象の要素とした場合には、半径の一致が判定条件となる。円弧を対象の要素とした場合には、円弧半径、相対角の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。楕円を対象の要素とした場合には、長径、離心率の一致が判定条件となる。楕円弧を対象の要素とした場合には、長径、離心率、相対角の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。テキストを対象の要素とした場合には、文字列の内容の一致、並びに、プリミティブの最初の要素の場合に代表プリミティブとの配置角度の差分を考慮した傾き角度の一致が判定条件となる。その他の点、スプライン始点・中間点・終点を対象の要素とした場合には、形状のチェックは行わない。
【0041】
次に、CPU1が形状が同じか否かを判断する(ステップ308)。このステップ308でCPU1が形状が同じであると判断した場合には、CPU1が変位が同じであるか否かを判断する(ステップ309)。代表プリミティブの先頭の要素タイプが、線分、W線分、寸法線、円弧、テキスト、楕円弧(すなわち、角度の判定が有効な要素のみ)である場合にのみ、ステップ309の処理を実行する。基準プリミティブとの角度の差分を考慮した変位が同じかチェックする。図13は、本実施形態に係る変位の判定処理の具体説明図である。この図13の例では、比較するプリミティブの基準座標との変位X0、Y0を角度θ回転させた場合にX1、Y1と同値となれば変位が同じとみなす。
【0042】
前記ステップ309でCPU1が変位が同じであると判断した場合には、基準プリミティブの検索フラグをONに設定する(ステップ310)。次に、CPU1が全ての基準プリミティブとのチェックが終了したか否かを判断する(ステップ311)。このステップ311でCPU1が全ての基準プリミティブとのチェックが終了していないと判断した場合には、前記ステップ303に戻る。前記ステップ311でCPU1が全ての基準プリミティブとのチェックが終了していると判断した場合には、基準プリミティブと形状が異なるプリミティブは処理対象から除外する(ステップ312)。次に、CPU1が検索されたプリミティブ(同一候補基準プリミティブ)を全てチェックしたか否かを判断する(ステップ313)。このステップ313で、CPU1が検索されたプリミティブ(同一候補基準プリミティブ)を全てチェックしていないと判断した場合には、前記ステップ302に戻る。前記ステップ313で、CPU1が検索されたプリミティブ(同一候補基準プリミティブ)を全てチェックしたと判断した場合には、基準プリミティブの検索フラグが全てONであったら処理対象とし(ステップ314)、前記ステップ300のプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理が終了する。前記ステップ304でCPU1がプリミティブ生成情報が同じでないと判断した場合、前記ステップ305でCPU1が構成要素数が同じでないと判断した場合、前記ステップ306でCPU1が要素タイプが同じでないと判断した場合、前記ステップ308でCPU1が形状が同じでないと判断した場合、前記ステップ309でCPU1が変位が同じでないと判断した場合には、前記ステップ311に進む。
【0043】
前記ステップ314の後に、CPU1が代表プリミティブと同じプリミティブ(同一候補代表プリミティブ)を全てチェックしたか否かを判断する(ステップ106)。このステップ106でCPU1が代表プリミティブと同じプリミティブ(同一候補代表プリミティブ)を全てチェックしていないと判断した場合には、前記ステップ300に戻る。前記ステップ106でCPU1が代表プリミティブと同じプリミティブ(同一候補代表プリミティブ)を全てチェックしたと判断した場合には、CPU1が条件に合致したプリミティブを顕示色で表示する(ステップ107)。次に、CPU1が部品化OKであれば、部品に付加する情報を画面入力し、オブジェクト化処理を実行する(ステップ108)。
【0044】
[CAD本体プログラムへの復帰] 本実施形態ではステップ107でCAD本体プログラムに復帰し、自動認識オブジェクト化プログラムの実行により求めた選択したプリミティブ群と同一のプリミティブ群をCAD本体プログラムの実行によりディスプレイに顕示色で表示することもできる。また、ステップ108でCAD本体プログラムに復帰し、自動認識オブジェクト化プログラムの実行により求めた選択したプリミティブ群と同一のプリミティブ群をCAD本体プログラムの実行によりオブジェクト化することもできる。さらに、本実施形態では、継続して自動認識オブジェクト化プログラムをCPU1が実行していたが、適宜CAD本体プログラムをCPU1が実行してCAD本体プログラムが有する機能を利用して求めてもよい。
【0045】
[プリミティブ群のカウント] 本実施形態ではステップ106の後、ステップ107の後、ステップ108の後に、選択したプリミティブ群と同一のプリミティブ群がいくつあるかをカウントすることもでき、たとえば、選択したプリミティブ群がある樹木のとき、CADデータ中に何本その樹木が必要かをユーザが自ら数えることなく算出することができる。
【0046】
[プリミティブ群の同時編集] 本実施形態では選択したプリミティブ群と同一のプリミティブ群が検出された後に、かかるプリミティブ群に対して一括して編集を行うこともでき、一つずつプリミティブを編集するのに比べ大幅に労力を低減することができる。
【0047】
[オブジェクト化処理] オブジェクト化処理は、各CADプログラムの仕様によりオブジェクトのデータ形式が異なるため、CADプログラムの仕様に合致したオブジェクトのデータ形式にCADデータを変更することで実現することができる。
【0048】
[プログラムの構成] 本実施形態の自動認識オブジェクト化プログラムを複数のプログラムに分割して実装することもできる。また、複数のコンピュータを協働させてサービスを提供するシステムの場合に、かかる分割したプログラムを各コンピュータにインストールする構成にすることもできる。
【0049】
[基準プリミティブ又は同一候補基準プリミティブのソート処理] 本実施形態では前記ステップ102で基準プリミティブがプリミティブの優先順位によりソートされ前記ステップ300でソートされた順に同一候補基準プリミティブと比較されており、すなわち特異性の高いプリミティブの種類から比較処理がなされ選択されたプリミティブと相違するプリミティブは比較処理の早い段階で同一ではないプリミティブと判断され不要な比較演算を回避することができ、迅速に自動認識の処理を完了することができる。また、同一候補基準プリミティブも基準プリミティブと同様にソートとして基準プリミティブと比較することもでき、より迅速に自動認識の処理を完了することができる。
【0050】
以上の前記実施形態により本発明を説明したが、本発明の技術的範囲は実施形態に記載の範囲には限定されず、これら実施形態に多様な変更又は改良を加えることが可能である。そして、かような変更又は改良を加えた実施の形態も本発明の技術的範囲に含まれる。このことは、特許請求の範囲及び課題を解決する手段からも明らかなことである。
【0051】
上記実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1) コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるためのコンピュータ支援設計プログラム。
【0052】
(付記2) 前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程において、優先順序はプリミティブの情報の特異性の高さに基づき高いものである
前記付記1に記載のコンピュータ支援設計プログラム。
【0053】
(付記3) 前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるための
前記付記1または2に記載のコンピュータ支援設計プログラム。
【0054】
(付記4) 代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断する
前記付記1または2に記載のコンピュータ支援設計プログラム。
【0055】
(付記5) 同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるための
前記付記4に記載のコンピュータ支援設計プログラム。
【0056】
(付記6) 基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順における所定範囲が、前記基準プリミティブ全体のエクステントの頂点と代表プリミティブの基準点との変位のうち最大の変位の所定倍を基準とした形状により画定され、同一候補代表プリミティブの基準点を中心として配置されたものである
前記付記1または2に記載のコンピュータ支援設計プログラム。
【0057】
(付記7) 基準プリミティブと同一であるとした同一候補基準プリミティブをオブジェクト化する手順をさらにコンピュータに実行させるための
前記付記1ないし6のいずれかに記載のコンピュータ支援設計プログラム。
【0058】
(付記8) 選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるコンピュータ支援設計システム。
【0059】
(付記9) コンピュータが選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する工程と、コンピュータが代表プリミティブと同一のプリミティブを検索する工程と、コンピュータが検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する工程と、コンピュータが同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する工程と、コンピュータが全てある場合には同一である同一候補基準プリミティブを出力する工程とを含むコンピュータ支援設計方法。
【図面の簡単な説明】
【0060】
【図1】本発明の実施形態に係るコンピュータ設計支援プログラムを実行するハードウェア構成の一例である。
【図2】本発明の実施形態に係るコンピュータ支援設計プログラムのフローチャートである。
【図3】本発明の実施形態に係る部品基準プリミティブ選択画面及びその拡大図である。
【図4】本発明の実施形態に係るプリミティブのデータ構造の一例である。
【図5】本実施形態に係る要素タイプごとの形状データの構造の一例である。
【図6】本実施形態に係るプリミティブの種類ごとのデータ構造の一例である。
【図7】本実施形態の代表プリミティブと基準プリミティブの変位の具体説明図である。
【図8】本発明の実施形態に係るプリミティブの要素タイプと基準点との対応図である。
【図9】本発明の実施形態に係る代表プリミティブの基準点と基準プリミティブ全体のエクステントとの変位の具体説明図である。
【図10】本発明の本実施形態に係る代表プリミティブと同じ構成要素のプリミティブ検索処理の詳細フローチャートである。
【図11】本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。
【図12】本実施形態に係るプリミティブと周囲の要素が、基準プリミティブと同じ形状か判定する処理の詳細フローチャートである。
【図13】本発明の実施形態に係る変位の判定処理の具体説明図である。
【符号の説明】
【0061】
1 CPU
2 メインメモリ
3 ハードディスク
4 CD-ROMドライブ
5 ディスプレイ
6 キーボード
7 マウス
8 LANカード
【特許請求の範囲】
【請求項1】
コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるためのコンピュータ支援設計プログラム。
【請求項2】
前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるための
前記請求項1に記載のコンピュータ支援設計プログラム。
【請求項3】
代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断する
前記請求項1または2に記載のコンピュータ支援設計プログラム。
【請求項4】
同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるための
前記請求項3に記載のコンピュータ支援設計プログラム。
【請求項5】
選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるコンピュータ支援設計システム。
【請求項1】
コンピュータに、選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順と、代表プリミティブと同一のプリミティブを検索する手順と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手順と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順と、全てある場合には同一である同一候補基準プリミティブを出力する手順を実行させるためのコンピュータ支援設計プログラム。
【請求項2】
前記選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手順の前に、基準プリミティブから所定の大きさ以下のプリミティブまたは重なるプリミティブを除外する手順をさらにコンピュータに実行させるための
前記請求項1に記載のコンピュータ支援設計プログラム。
【請求項3】
代表プリミティブの基準点と各基準プリミティブの基準点との変位を求める手順と、同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をさらにコンピュータに実行させるためのプログラムであり、
前記同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手順において同一候補基準プリミティブと基準プリミティブとの同一を比較するときに、比較対象となっている同一候補基準プリミティブの変位と基準プリミティブの変位とが同一であるかを判断する
前記請求項1または2に記載のコンピュータ支援設計プログラム。
【請求項4】
同一候補代表プリミティブと代表プリミティブとの傾きが異なる場合には、基準プリミティブを同一候補基準プリミティブまで傾けて代表プリミティブの基準点と基準プリミティブの基準点との変位を求める手順、または、同一候補基準プリミティブを基準プリミティブまで傾けて同一候補代表プリミティブの基準点と同一候補基準プリミティブの基準点との変位を求める手順をコンピュータに実行させるための
前記請求項3に記載のコンピュータ支援設計プログラム。
【請求項5】
選択された基準プリミティブの中から所定のプリミティブの優先順序に基づいて代表プリミティブを選定する手段と、代表プリミティブと同一のプリミティブを検索する手段と、検索に該当した同一候補代表プリミティブを中心として所定範囲内にある同一候補基準プリミティブを検索する手段と、同一候補基準プリミティブの中に同一の基準プリミティブが全てあるか否かを判断する手段と、全てある場合には同一である同一候補基準プリミティブを出力する手段とを備えるコンピュータ支援設計システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2006−344034(P2006−344034A)
【公開日】平成18年12月21日(2006.12.21)
【国際特許分類】
【出願番号】特願2005−169582(P2005−169582)
【出願日】平成17年6月9日(2005.6.9)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成18年12月21日(2006.12.21)
【国際特許分類】
【出願日】平成17年6月9日(2005.6.9)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]