(57)【要約】【課題】  図面中の図形データの位置的偏りに依存せずに特定の図形要素を高速に検索する機能を提供すること。【解決手段】  複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか１つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索する際に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索する。【選択図】    図１７
2007193640.tif 000002
【特許請求の範囲】
【請求項１】
複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか１つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索手段によって検索する図面要素検索方法であって、
前記検索手段による検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索することを特徴とする図面要素検索方法。
【請求項２】
複数の直線からなる図面要素により形成される閉領域を検索対象として検索することを特徴とする請求項１に記載の図面要素検索方法。
【請求項３】
複数の直線からなる図面要素が重なり合う２重書き要素を検索対象として検索することを特徴とする請求項１に記載の図面要素検索方法。
【請求項４】
複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか１つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索する図面要素検索プログラムであって、
検索対象の図面要素の検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索する手段としてコンピュータを機能させることを特徴とする図面要素検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＤ図面や地図などの図面情報を扱う図面情報管理システムにおいて、直線からなる図形要素を効率的に検索する図面要素検索方法、及びその図面要素検索方法をコンピュータに実現させるためのプログラムに関するものである。
【背景技術】
【０００２】
公知の技術としてフォトマスクの専用ＣＡＤアプリケーションでは、ＣＡＤ図面中の閉領域や２重書き箇所を検索する場合、図形作成時に専用の情報を蓄積するか、閉領域や２重書き箇所の検索時に対象図面を静的にメッシュ分割することにより、高速な検索機能を実現している。
なお、本発明に関連する公知技術文献としては下記の特許文献１がある。
【０００３】
【特許文献１】特開２００１−５９５３
【発明の開示】
【発明が解決しようとする課題】
【０００４】
汎用ＣＡＤアプリケーションでは、図形データ作成時に検索用の専用の閉領域や２重書き箇所の情報は付加されない。また、静的なメッシュ分割を使用した場合は、検索機能の性能が図面中の図形データの位置的偏りに大きく依存する。すなわち、図面中の一部分のメッシュに図形データが集中した場合は、その部分に存在する図形要素の検索時間が長くなってしまうという問題がある。
【０００５】
本発明の目的は、汎用ＣＡＤアプリケーションにおいて、図面中の図形データの位置的偏りに依存せずに特定の図形要素を高速に検索することができる図形情報管理方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係る図面要素検索方法は、複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか１つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索手段によって検索する図面要素検索方法であって、
前記検索手段による検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索することを特徴とする。
また、複数の直線からなる図面要素により形成される閉領域を検索対象として検索することを特徴とする請求項１に記載の図面要素検索方法。
また、複数の直線からなる図面要素が重なり合う２重書き要素を検索対象として検索することを特徴とする。
【０００７】
本発明に係る図面要素検索プログラムは、複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか１つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索する図面要素検索プログラムであって、
検索対象の図面要素の検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索する手段としてコンピュータを機能させることを特徴とする。
【０００８】
すなわち、本発明は、例えばＣＡＤ図面中の直線図形データが保持している始点と終点の情報から、図形要素が格納されるメッシュを計算し、各メッシュに格納される図形の端点情報が所定数に達した時点で、該当のメッシュを分割し、それぞれのメッシュ内に存在する端点の情報を格納する処理を続けることにより、図面中の図形要素が偏って存在する場合でも、各メッシュに格納される端点の数は均等になり、各メッシュ内の端点情報同士を比較するだけで閉領域などを高速に検索出来るようにしたものである。
【発明の効果】
【０００９】
本発明によれば、図面中の図形要素が偏って存在する場合でも、各メッシュに格納される端点の数が均等になることにより、次のような効果が得られる。
（１）汎用ＣＡＤアプリケーションにおいて、図面中の特定の図形要素パターンを高速に検索することができる。
（２）図面中の図形データの位置的偏りが大きい図面においても、検索処理時間の偏りを取り除くことができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。
図１は、本発明の実施の形態の一例を示すシステム構成図である。
本システムは、パーソナルコンピュータ（以下、PC装置）１２上で動作する汎用ＣＡＤアプリケーション１２１と、そのＣＡＤアプリケーション１２１上で動作する検索処理プログラム１２２から構成される。なお、ＰＣ装置１２には、ディスプレイ装置１１が接続されている。また、図面要素の端点などの情報を格納するメモリ１２３が設けられている。
【００１１】
（１）メッシュによる絞込み方法
図形の検索処理の高速化は、図形の辺同士の比較回数を減少させることにより可能となる。検索処理は図形の辺の始点と終点の座標の比較処理によって行われるため、図形の辺の始点と終点の比較が行われるべきパターンを考えていくと、同一の座標点もしくは近接している座標点同士の比較処理を効率良く行うことで、検索処理に要する比較処理の回数を減少させることが出来る。
比較処理を減少させる手法として、図面の領域を複数の領域（以下、メッシュ）に分割し、それぞれのメッシュが自分のメッシュ内に存在する図形の情報を管理する方法を行う。これにより、図形の辺の始点と終点の情報は、分割された各メッシュ内の他の点と同一または近接している可能性があるが、他のメッシュ内の点とは異なる位置にあるため、同一メッシュ内の点同士の比較処理だけで、閉領域と２重書き箇所を検索することが可能になる。
【００１２】
図２は、図面を４×４のメッシュ２１に分割した場合の閉領域図形２２の検索パターンを示しているが、閉領域図形２２各辺の始点と終点は、同一となる他の辺の始点または終点と同じメッシュに存在することが分かる。
同様に、図３は、図面の領域を４×４のメッシュ３１に分割した場合の直線図形３２，３３，３４からなる２重書き箇所の検索パターンを示しているが、２重書きにならない他の直線の始点と終点は、同じメッシュに存在しないことが分かる。
【００１３】
（２）閉領域検索のためのメッシュデータ構造
閉領域の検索のために各メッシュが保持する情報について、閉領域の検索は、ある図形のある辺のある点同士の比較処理を行うため、図面中の各図形、辺、点を任意に特定出来るようにする必要がある。そこで、以下のルールに従って図面中の全図形とその中の各辺と点に識別子を割り当てる。
（ａ）図形はＣＡＤアプリケーション１２１の図面に含まれる図形のデータベースから取得した順番に従って、“１”から始まる一意の図形ＩＤを割り当てる。
（ｂ）各図形の中の辺は、図形が作成された時に保持する始点と終点の情報に従って、始点を持つ辺から終点を持つ辺の順番に、各図形内で一意となる１から始まる辺番号を割り当てる。
（ｃ）各辺の点は、辺が作成された時に保持する始点と終点の情報に従って、始点に“０”、終点に“１”を割り当てる。
以上のルールに従って割り当てた情報を、各メッシュに保持させる。メッシュにも、図面の左下から右上に向かって順番に、１から始まる一意の番号を割り当て、各番号のメッシュ内に存在する点の情報を、そのメッシュに格納する。メッシュが保持する情報４１は図４の通り、項番４１１、情報名４１２、情報の値の型４１３から構成する。
図４の中で、点ｎの点の番号には、始点の場合は“０”、終点の場合は“１”を格納する。
【００１４】
（３）メッシュ内の情報の比較処理
図５のように、図面を４×４のメッシュ５１に分割し、２つの閉領域Ａ，Ｂを形成する７つの図形５２１〜５２３、および５３１〜５３４が存在する場合を例に考える。
図５の例の場合、各メッシュ、図形、辺、点の情報に対して、以下のルールに従って値を付加する。
（ａ）メッシュは１行目５１５の１列目５１１のメッシュを１番、２列目５１２のメッシュを２番、３列目５１３のメッシュを３番、４列目５１４のメッシュを４番とし、次に２行目５１６の１列目５１１のメッシュを５番、２列目５１２番、…、…という順番で番号を割り当てる。
（ｂ）図形５２１〜５３４については、図形５２１を１番、図形５２２を２番、…、…という順番で割り当てる。
（ｃ）辺は図形ごとに連番を割り当てるが、図５の例では各図形が辺を一つしか持っていないため、その辺をそれぞれ１番とする。
（ｄ）点は各辺の始終点を較べて、番号の小さいメッシュに存在する点を始点として０番を割り当て、番号の大きいメッシュに存在する点を終点として１番を割り当てる。始終点が同一のメッシュに存在する場合は、座標値が小さい点を始点、他方を終点とする。
【００１５】
図５の情報に対して、以上のルールに従って図４の情報を格納すると図６のようになる。各メッシュにはそれぞれの情報が格納されるが、ここでは１番のメッシュ（１行目５１５の１列目５１１のメッシュ）の情報だけを示している。
この１番のメッシュには、４つの点が存在するので、項番２にメッシュに存在する点の数として「４」が格納される。そして、点１の情報として、図形５２１の図形番号である図形ＩＤ＝１、辺番号＝１、点番号＝０（始点）が格納される。
同様に、点２の情報として、図形５２３の図形番号である図形ＩＤ＝２、辺番号＝１、点番号＝０（始点）が格納される。
同様に、点３の情報として、図形５３１の図形番号である図形ＩＤ＝４、辺番号＝１、点番号＝０（始点）が格納される。
同様に、点４の情報として、図形５３２の図形番号である図形ＩＤ＝５、辺番号＝１、点番号＝０（始点）が格納される。
【００１６】
図６の情報から、１番目のメッシュ（１行目５１５の１列目５１１のメッシュ）内の点で比較処理は図７に示すように、点１、点２、点３を比較元として、点１については点２、点３、点４を比較先として比較処理を行う。点２については、点３、点４と比較先、点３については点４を比較先として比較処理を行う。
図７の項番１の比較処理を考えると、点１と点２の比較処理は図８の中の網掛け部分の情報を参照する。
ここで、図８の中の網掛け部分の各点の情報は、閉領域検索のために格納された図形情報の中における図９の２点の情報９１１，９１２を参照し、その点の座標情報を使用して比較処理を行う。
【００１７】
（４）２重書き箇所検索のためのメッシュデータ構造
２重書き箇所の検索処理は基本的には閉領域の検索処理と同様であるが、２重書きでは図１０に示すように、点が存在するメッシュ内での比較処理だけでは検索されないパターンが存在する。
図１０では、２重書きになっている２つの図形１０２，１０３が存在するが、拡大して見ると、これらの図形１０２，１０３の始終点は同一のメッシュ内には存在していない。そのため、２重書き箇所の検索のためには、図形の点が存在するメッシュに点の情報を格納するだけでなく、図形の辺が存在するメッシュに辺の情報も格納する必要がある。それを考慮し、２重書き箇所検索のためにメッシュに格納する情報を図１１で示す。
図１１の中で、辺ｎの点の番号には、始点の場合は“０”、終点の場合は“１”、“点”ではなく“辺”の場合は“−１”を格納するものとする。すなわち、辺ｎの点の番号には、“０”または“１”または“−１”を格納する。
これにより、メッシュ内の点または辺の比較処理の流れは、「（３）メッシュ内の情報の比較処理の流れ」で示した閉領域の検索処理と同様となる。
【００１８】
（５）動的なメッシュ分割
図面を複数のメッシュに分割して閉領域と２重書き箇所を検索する処理では、メッシュの分割の方法が処理の効率化の度合いに大きく影響する。これまでの例では、メッシュを４×４に分割した場合を挙げているが、実際にはｎ×ｎ（ｎ≧１）の分割であり、最適なｎの値を使用する必要が生じる。
図面に存在する図形の数が比較的多い場合、閉領域と２重書き箇所の検索で処理する図形の辺の数も多いため、処理する点の数も多くなる。故に、比較処理する点の組合せの数も多くなるため、検索処理により多くの時間を要することになる。この場合、分割するメッシュの数が多い方が、各メッシュに存在する点の数は少なくなるため、比較処理する点の組合せの数も必然的に少なくなり、検索処理に要する時間も短くなる。ただしこれには、図形の点が各メッシュにある程度均等に分散されるということが前提となり、図形の点が一部のメッシュに偏る場合は効率が低下する。よって、最適なメッシュ分割の方法は、以下の２点の値に依存する。
（ａ）図面に存在する図形の数
（ｂ）図面に存在する図形の位置的な偏り
【００１９】
以上の２点を考慮して最適なメッシュ分割を判断するためには、図面に存在する図形の位置情報と数から、メッシュ分割を動的に行う。そこで、１つのメッシュに格納する点の情報の最大数を定め、それ以上の情報がメッシュ内に存在する場合は、その時点でメッシュを２分割する手法を行う。メッシュの分割は以下のルールに従うものとする。
（ａ）メッシュの分割は、メッシュ内の全図形の点の数が最大値を超えた場合に、そのメッシュだけを対象にして発生する。
（ｂ）メッシュの分割は、左右または上下のいずれか一方にメッシュを２等分するものとする。
（ｃ）左右または上下のいずれに分割するかどうかの判断は、分割した場合の点の数が共に最大値以下となることを条件とする。
（ｄ）左右または上下のいずれに分割しても点の数が共に最大値以下となる場合は、点の数がより均等に分割する方を採用することにする。
（ｅ）左右または上下のいずれに分割しても点の数が均等に分割される場合は、左右の分割を採用することにする。
（ｆ）ただし、分割した境界線上に点が存在する場合は、その分割は採用しない。
【００２０】
（６）動的なメッシュ分割の実行例
以上のルールに従って、図面の中の図形を一つずつ検索するごとに、動的にメッシュ分割する手順を以下に説明する。
ここでは、一つのメッシュに格納する点の情報の最大数を「４」とする。また、各図で新しく検索した図形を灰色で、それ以外の図形を白色で示す。
図１２のように、図面１２１の中に一つの図形１２２を検索した時、メッシュ内の点の数は４個であるので、メッシュ分割は発生しない。
しかし、図１３に示すように、図面１２１の中にもう一つの図形１２３を検索した時、メッシュ内の点の数は合計８個になるので、メッシュ分割が発生する。この時、左右に分割した場合も上下に分割した場合も、共に点の数が４個ずつになるため、図１３の破線１３１で示す位置で左右に分割する。
さらに、図１４に示すように、図形１２２の中に次の図形１２４を検索した時、破線１３１の左側のメッシュ内の点の数は合計８個になるので、メッシュ分割が発生する。この時、上下に分割した場合は上側のメッシュ内の点の数は４個以下とならないため、図１４のように破線１４１の位置で左右に分割する。
さらに、図１５に示すように、図形１２２および１２３の中に次の図形１２５を検索した時、まずは破線１３１と破線１４１に挟まれた中央のメッシュ内の点の数は合計６個になるので、メッシュ分割が発生する。この時、左右に分割した場合は点の数が４個と２個になり、上下に分割した場合は３個ずつになる。均等に分割されることを配慮し、図１５のように破線１５１の位置で上下に分割する。
次に、破線１３１の右側のメッシュ内の点の数も合わせて６個になるので、メッシュ分割が発生する。この時、左右に分割した場合は点が境界線上に位置することになるので、図１６のように破線１６１の位置で上下に分割する。
これにより、図面の中の４つの図形の合計１６の点は、５つのメッシュに効率良く分割される。
【００２１】
図１７は、以上の動的メッシュ分割を行う検索処理プログラム１１２の処理の概要を示すフローチャートである。
まず、変数Ｎ１に対して、１メッシュ内に含むことを許容する端点情報の最大点数を設定する（ステップ１７０１）。
次に、変数Ｌ１に対して、図面内の直線図形の情報を取得して代入する（ステップ１７０２）。
次に、変数Ｐ１に対して、変数Ｌ１内の直線図形の始点の座標情報を代入する（ステップ１７０３）。
次に、変数Ｍ１に対して、変数Ｌ１内の直線図形の始点の座標情報Ｐ１が当てはまるメッシュの位置を代入する（ステップ１７０４）。
【００２２】
次に、変数Ｎ２に対して、変数Ｍ１のメッシュに含まれる点の数を代入し（ステップ１７０５）、Ｎ１＜Ｎ２かどうか、すなわち、変数Ｍ１のメッシュに含まれる点の数が１メッシュ内に含むことを許容する端点情報の最大点数を超えるかどうかを判定する（ステップ１７０６）。
超える場合には、変数Ｎ３に対して、変数Ｍ１で示されるメッシュを上下に２分割した場合の各メッシュに含まれる点の数を代入し（ステップ１７０７）、さらに、変数Ｍ１で示されるメッシュを左右に２分割した場合の各メッシュに含まれる点の数を代入する（ステップ１７０８）。
そして、変数Ｎ３の方がＮ４よりも均等に点が分割されるかどうかを判定し（ステップ１７０９）、そうであれば、変数Ｍ１で示されるメッシュを上下に２分割し（ステップ１７１０）、そうでなければ、変数Ｍ１で示されるメッシュを左右に２分割する（ステップ１７１１）。
【００２３】
次に、変数Ｐ１で示される直線図形の始点の座標情報を該当のメッシュの情報に追加する（ステップ１７１２）。
次に、変数Ｐ１で示される直線図形の終点を未処理かどうかを判定し（ステップ１７１３）、未処理であれば、変数Ｐ１に対して終点の座標情報を代入し（ステップ１７１４）、ステップ１７０４に戻る。
終点の座標情報に対する処理が終了していた場合には、未処理の直線が残っているかを判定し（ステップ１７１５）、残っていた場合には、変数Ｌ１に対して次の直線図形の情報を代入し（ステップ１７１６）、ステップ１７０２に戻る。
以上の処理により、各メッシュ内に含まれる端点情報が変数Ｎ１に設定された許容点数以内になるようにメッシュの再分割を行う。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施の形態例を示すシステム構成図である。
【図２】メッシュ分割した図面内で検索する閉領域の例を示す図である。
【図３】メッシュ分割した図面内で検索する２重書き箇所の例を示す図である。
【図４】閉領域検索のためにメッシュ対応の格納領域に格納する情報の例を示す図である。
【図５】閉領域を持つ図面の例を示す図である。
【図６】図５の図面においてメッシュ対応の格納領域に格納する情報の例を示す図である。
【図７】メッシュの情報の比較処理の概要を説明する図である。
【図８】比較処理において参照するメッシュの中の情報の例を示す図である。
【図９】メッシュの中の情報の２点の比較処理の例を示す図である。
【図１０】２重書きの図形の例を示す図である。
【図１１】２重書き箇所検索のためにメッシュ対応の格納領域に格納する情報の例を示す図である。
【図１２】メッシュの分割処理例１を示す図である。
【図１３】メッシュの分割処理例２を示す図である。
【図１４】メッシュの分割処理例３を示す図である。
【図１５】メッシュの分割処理例４を示す図である。
【図１６】メッシュの分割処理例５を示す図である。
【図１７】メッシュの再分割処理を示すフローチャートである。
【符号の説明】
【００２５】
１１…ディスプレイ装置、１２…PC装置、１２１…汎用ＣＡＤアプリケーション、１２２…ＣＡＤアプリケーション用検索処理プログラム。
【図１】
2007193640.tif 000003
【図２】
2007193640.tif 000004
【図３】
2007193640.tif 000005
【図４】
2007193640.tif 000006
【図５】
2007193640.tif 000007
【図６】
2007193640.tif 000008
【図７】
2007193640.tif 000009
【図８】
2007193640.tif 000010
【図９】
2007193640.tif 000011
【図１０】
2007193640.tif 000012
【図１１】
2007193640.tif 000013
【図１２】
2007193640.tif 000014
【図１３】
2007193640.tif 000015
【図１４】
2007193640.tif 000016
【図１５】
2007193640.tif 000017
【図１６】
2007193640.tif 000018
【図１７】
2007193640.tif 000019