JP2007193640A - 図面要素検索方法およびプログラム - Google Patents
図面要素検索方法およびプログラム Download PDFInfo
- Publication number
- JP2007193640A JP2007193640A JP2006012176A JP2006012176A JP2007193640A JP 2007193640 A JP2007193640 A JP 2007193640A JP 2006012176 A JP2006012176 A JP 2006012176A JP 2006012176 A JP2006012176 A JP 2006012176A JP 2007193640 A JP2007193640 A JP 2007193640A
- Authority
- JP
- Japan
- Prior art keywords
- mesh
- information
- drawing element
- end point
- searched
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 図面中の図形データの位置的偏りに依存せずに特定の図形要素を高速に検索する機能を提供すること。
【解決手段】 複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか1つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索する際に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索する。
【選択図】 図17
【解決手段】 複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか1つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索する際に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索する。
【選択図】 図17
Description
本発明は、CAD図面や地図などの図面情報を扱う図面情報管理システムにおいて、直線からなる図形要素を効率的に検索する図面要素検索方法、及びその図面要素検索方法をコンピュータに実現させるためのプログラムに関するものである。
公知の技術としてフォトマスクの専用CADアプリケーションでは、CAD図面中の閉領域や2重書き箇所を検索する場合、図形作成時に専用の情報を蓄積するか、閉領域や2重書き箇所の検索時に対象図面を静的にメッシュ分割することにより、高速な検索機能を実現している。
なお、本発明に関連する公知技術文献としては下記の特許文献1がある。
なお、本発明に関連する公知技術文献としては下記の特許文献1がある。
汎用CADアプリケーションでは、図形データ作成時に検索用の専用の閉領域や2重書き箇所の情報は付加されない。また、静的なメッシュ分割を使用した場合は、検索機能の性能が図面中の図形データの位置的偏りに大きく依存する。すなわち、図面中の一部分のメッシュに図形データが集中した場合は、その部分に存在する図形要素の検索時間が長くなってしまうという問題がある。
本発明の目的は、汎用CADアプリケーションにおいて、図面中の図形データの位置的偏りに依存せずに特定の図形要素を高速に検索することができる図形情報管理方法を提供することにある。
上記目的を達成するために、本発明に係る図面要素検索方法は、複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか1つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索手段によって検索する図面要素検索方法であって、
前記検索手段による検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索することを特徴とする。
また、複数の直線からなる図面要素により形成される閉領域を検索対象として検索することを特徴とする請求項1に記載の図面要素検索方法。
また、複数の直線からなる図面要素が重なり合う2重書き要素を検索対象として検索することを特徴とする。
前記検索手段による検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索することを特徴とする。
また、複数の直線からなる図面要素により形成される閉領域を検索対象として検索することを特徴とする請求項1に記載の図面要素検索方法。
また、複数の直線からなる図面要素が重なり合う2重書き要素を検索対象として検索することを特徴とする。
本発明に係る図面要素検索プログラムは、複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか1つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索する図面要素検索プログラムであって、
検索対象の図面要素の検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索する手段としてコンピュータを機能させることを特徴とする。
検索対象の図面要素の検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索する手段としてコンピュータを機能させることを特徴とする。
すなわち、本発明は、例えばCAD図面中の直線図形データが保持している始点と終点の情報から、図形要素が格納されるメッシュを計算し、各メッシュに格納される図形の端点情報が所定数に達した時点で、該当のメッシュを分割し、それぞれのメッシュ内に存在する端点の情報を格納する処理を続けることにより、図面中の図形要素が偏って存在する場合でも、各メッシュに格納される端点の数は均等になり、各メッシュ内の端点情報同士を比較するだけで閉領域などを高速に検索出来るようにしたものである。
本発明によれば、図面中の図形要素が偏って存在する場合でも、各メッシュに格納される端点の数が均等になることにより、次のような効果が得られる。
(1)汎用CADアプリケーションにおいて、図面中の特定の図形要素パターンを高速に検索することができる。
(2)図面中の図形データの位置的偏りが大きい図面においても、検索処理時間の偏りを取り除くことができる。
(1)汎用CADアプリケーションにおいて、図面中の特定の図形要素パターンを高速に検索することができる。
(2)図面中の図形データの位置的偏りが大きい図面においても、検索処理時間の偏りを取り除くことができる。
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。
図1は、本発明の実施の形態の一例を示すシステム構成図である。
本システムは、パーソナルコンピュータ(以下、PC装置)12上で動作する汎用CADアプリケーション121と、そのCADアプリケーション121上で動作する検索処理プログラム122から構成される。なお、PC装置12には、ディスプレイ装置11が接続されている。また、図面要素の端点などの情報を格納するメモリ123が設けられている。
図1は、本発明の実施の形態の一例を示すシステム構成図である。
本システムは、パーソナルコンピュータ(以下、PC装置)12上で動作する汎用CADアプリケーション121と、そのCADアプリケーション121上で動作する検索処理プログラム122から構成される。なお、PC装置12には、ディスプレイ装置11が接続されている。また、図面要素の端点などの情報を格納するメモリ123が設けられている。
(1)メッシュによる絞込み方法
図形の検索処理の高速化は、図形の辺同士の比較回数を減少させることにより可能となる。検索処理は図形の辺の始点と終点の座標の比較処理によって行われるため、図形の辺の始点と終点の比較が行われるべきパターンを考えていくと、同一の座標点もしくは近接している座標点同士の比較処理を効率良く行うことで、検索処理に要する比較処理の回数を減少させることが出来る。
比較処理を減少させる手法として、図面の領域を複数の領域(以下、メッシュ)に分割し、それぞれのメッシュが自分のメッシュ内に存在する図形の情報を管理する方法を行う。これにより、図形の辺の始点と終点の情報は、分割された各メッシュ内の他の点と同一または近接している可能性があるが、他のメッシュ内の点とは異なる位置にあるため、同一メッシュ内の点同士の比較処理だけで、閉領域と2重書き箇所を検索することが可能になる。
図形の検索処理の高速化は、図形の辺同士の比較回数を減少させることにより可能となる。検索処理は図形の辺の始点と終点の座標の比較処理によって行われるため、図形の辺の始点と終点の比較が行われるべきパターンを考えていくと、同一の座標点もしくは近接している座標点同士の比較処理を効率良く行うことで、検索処理に要する比較処理の回数を減少させることが出来る。
比較処理を減少させる手法として、図面の領域を複数の領域(以下、メッシュ)に分割し、それぞれのメッシュが自分のメッシュ内に存在する図形の情報を管理する方法を行う。これにより、図形の辺の始点と終点の情報は、分割された各メッシュ内の他の点と同一または近接している可能性があるが、他のメッシュ内の点とは異なる位置にあるため、同一メッシュ内の点同士の比較処理だけで、閉領域と2重書き箇所を検索することが可能になる。
図2は、図面を4×4のメッシュ21に分割した場合の閉領域図形22の検索パターンを示しているが、閉領域図形22各辺の始点と終点は、同一となる他の辺の始点または終点と同じメッシュに存在することが分かる。
同様に、図3は、図面の領域を4×4のメッシュ31に分割した場合の直線図形32,33,34からなる2重書き箇所の検索パターンを示しているが、2重書きにならない他の直線の始点と終点は、同じメッシュに存在しないことが分かる。
同様に、図3は、図面の領域を4×4のメッシュ31に分割した場合の直線図形32,33,34からなる2重書き箇所の検索パターンを示しているが、2重書きにならない他の直線の始点と終点は、同じメッシュに存在しないことが分かる。
(2)閉領域検索のためのメッシュデータ構造
閉領域の検索のために各メッシュが保持する情報について、閉領域の検索は、ある図形のある辺のある点同士の比較処理を行うため、図面中の各図形、辺、点を任意に特定出来るようにする必要がある。そこで、以下のルールに従って図面中の全図形とその中の各辺と点に識別子を割り当てる。
(a)図形はCADアプリケーション121の図面に含まれる図形のデータベースから取得した順番に従って、“1”から始まる一意の図形IDを割り当てる。
(b)各図形の中の辺は、図形が作成された時に保持する始点と終点の情報に従って、始点を持つ辺から終点を持つ辺の順番に、各図形内で一意となる1から始まる辺番号を割り当てる。
(c)各辺の点は、辺が作成された時に保持する始点と終点の情報に従って、始点に“0”、終点に“1”を割り当てる。
以上のルールに従って割り当てた情報を、各メッシュに保持させる。メッシュにも、図面の左下から右上に向かって順番に、1から始まる一意の番号を割り当て、各番号のメッシュ内に存在する点の情報を、そのメッシュに格納する。メッシュが保持する情報41は図4の通り、項番411、情報名412、情報の値の型413から構成する。
図4の中で、点nの点の番号には、始点の場合は“0”、終点の場合は“1”を格納する。
閉領域の検索のために各メッシュが保持する情報について、閉領域の検索は、ある図形のある辺のある点同士の比較処理を行うため、図面中の各図形、辺、点を任意に特定出来るようにする必要がある。そこで、以下のルールに従って図面中の全図形とその中の各辺と点に識別子を割り当てる。
(a)図形はCADアプリケーション121の図面に含まれる図形のデータベースから取得した順番に従って、“1”から始まる一意の図形IDを割り当てる。
(b)各図形の中の辺は、図形が作成された時に保持する始点と終点の情報に従って、始点を持つ辺から終点を持つ辺の順番に、各図形内で一意となる1から始まる辺番号を割り当てる。
(c)各辺の点は、辺が作成された時に保持する始点と終点の情報に従って、始点に“0”、終点に“1”を割り当てる。
以上のルールに従って割り当てた情報を、各メッシュに保持させる。メッシュにも、図面の左下から右上に向かって順番に、1から始まる一意の番号を割り当て、各番号のメッシュ内に存在する点の情報を、そのメッシュに格納する。メッシュが保持する情報41は図4の通り、項番411、情報名412、情報の値の型413から構成する。
図4の中で、点nの点の番号には、始点の場合は“0”、終点の場合は“1”を格納する。
(3)メッシュ内の情報の比較処理
図5のように、図面を4×4のメッシュ51に分割し、2つの閉領域A,Bを形成する7つの図形521〜523、および531〜534が存在する場合を例に考える。
図5の例の場合、各メッシュ、図形、辺、点の情報に対して、以下のルールに従って値を付加する。
(a)メッシュは1行目515の1列目511のメッシュを1番、2列目512のメッシュを2番、3列目513のメッシュを3番、4列目514のメッシュを4番とし、次に2行目516の1列目511のメッシュを5番、2列目512番、…、…という順番で番号を割り当てる。
(b)図形521〜534については、図形521を1番、図形522を2番、…、…という順番で割り当てる。
(c)辺は図形ごとに連番を割り当てるが、図5の例では各図形が辺を一つしか持っていないため、その辺をそれぞれ1番とする。
(d)点は各辺の始終点を較べて、番号の小さいメッシュに存在する点を始点として0番を割り当て、番号の大きいメッシュに存在する点を終点として1番を割り当てる。始終点が同一のメッシュに存在する場合は、座標値が小さい点を始点、他方を終点とする。
図5のように、図面を4×4のメッシュ51に分割し、2つの閉領域A,Bを形成する7つの図形521〜523、および531〜534が存在する場合を例に考える。
図5の例の場合、各メッシュ、図形、辺、点の情報に対して、以下のルールに従って値を付加する。
(a)メッシュは1行目515の1列目511のメッシュを1番、2列目512のメッシュを2番、3列目513のメッシュを3番、4列目514のメッシュを4番とし、次に2行目516の1列目511のメッシュを5番、2列目512番、…、…という順番で番号を割り当てる。
(b)図形521〜534については、図形521を1番、図形522を2番、…、…という順番で割り当てる。
(c)辺は図形ごとに連番を割り当てるが、図5の例では各図形が辺を一つしか持っていないため、その辺をそれぞれ1番とする。
(d)点は各辺の始終点を較べて、番号の小さいメッシュに存在する点を始点として0番を割り当て、番号の大きいメッシュに存在する点を終点として1番を割り当てる。始終点が同一のメッシュに存在する場合は、座標値が小さい点を始点、他方を終点とする。
図5の情報に対して、以上のルールに従って図4の情報を格納すると図6のようになる。各メッシュにはそれぞれの情報が格納されるが、ここでは1番のメッシュ(1行目515の1列目511のメッシュ)の情報だけを示している。
この1番のメッシュには、4つの点が存在するので、項番2にメッシュに存在する点の数として「4」が格納される。そして、点1の情報として、図形521の図形番号である図形ID=1、辺番号=1、点番号=0(始点)が格納される。
同様に、点2の情報として、図形523の図形番号である図形ID=2、辺番号=1、点番号=0(始点)が格納される。
同様に、点3の情報として、図形531の図形番号である図形ID=4、辺番号=1、点番号=0(始点)が格納される。
同様に、点4の情報として、図形532の図形番号である図形ID=5、辺番号=1、点番号=0(始点)が格納される。
この1番のメッシュには、4つの点が存在するので、項番2にメッシュに存在する点の数として「4」が格納される。そして、点1の情報として、図形521の図形番号である図形ID=1、辺番号=1、点番号=0(始点)が格納される。
同様に、点2の情報として、図形523の図形番号である図形ID=2、辺番号=1、点番号=0(始点)が格納される。
同様に、点3の情報として、図形531の図形番号である図形ID=4、辺番号=1、点番号=0(始点)が格納される。
同様に、点4の情報として、図形532の図形番号である図形ID=5、辺番号=1、点番号=0(始点)が格納される。
図6の情報から、1番目のメッシュ(1行目515の1列目511のメッシュ)内の点で比較処理は図7に示すように、点1、点2、点3を比較元として、点1については点2、点3、点4を比較先として比較処理を行う。点2については、点3、点4と比較先、点3については点4を比較先として比較処理を行う。
図7の項番1の比較処理を考えると、点1と点2の比較処理は図8の中の網掛け部分の情報を参照する。
ここで、図8の中の網掛け部分の各点の情報は、閉領域検索のために格納された図形情報の中における図9の2点の情報911,912を参照し、その点の座標情報を使用して比較処理を行う。
図7の項番1の比較処理を考えると、点1と点2の比較処理は図8の中の網掛け部分の情報を参照する。
ここで、図8の中の網掛け部分の各点の情報は、閉領域検索のために格納された図形情報の中における図9の2点の情報911,912を参照し、その点の座標情報を使用して比較処理を行う。
(4)2重書き箇所検索のためのメッシュデータ構造
2重書き箇所の検索処理は基本的には閉領域の検索処理と同様であるが、2重書きでは図10に示すように、点が存在するメッシュ内での比較処理だけでは検索されないパターンが存在する。
図10では、2重書きになっている2つの図形102,103が存在するが、拡大して見ると、これらの図形102,103の始終点は同一のメッシュ内には存在していない。そのため、2重書き箇所の検索のためには、図形の点が存在するメッシュに点の情報を格納するだけでなく、図形の辺が存在するメッシュに辺の情報も格納する必要がある。それを考慮し、2重書き箇所検索のためにメッシュに格納する情報を図11で示す。
図11の中で、辺nの点の番号には、始点の場合は“0”、終点の場合は“1”、“点”ではなく“辺”の場合は“−1”を格納するものとする。すなわち、辺nの点の番号には、“0”または“1”または“−1”を格納する。
これにより、メッシュ内の点または辺の比較処理の流れは、「(3)メッシュ内の情報の比較処理の流れ」で示した閉領域の検索処理と同様となる。
2重書き箇所の検索処理は基本的には閉領域の検索処理と同様であるが、2重書きでは図10に示すように、点が存在するメッシュ内での比較処理だけでは検索されないパターンが存在する。
図10では、2重書きになっている2つの図形102,103が存在するが、拡大して見ると、これらの図形102,103の始終点は同一のメッシュ内には存在していない。そのため、2重書き箇所の検索のためには、図形の点が存在するメッシュに点の情報を格納するだけでなく、図形の辺が存在するメッシュに辺の情報も格納する必要がある。それを考慮し、2重書き箇所検索のためにメッシュに格納する情報を図11で示す。
図11の中で、辺nの点の番号には、始点の場合は“0”、終点の場合は“1”、“点”ではなく“辺”の場合は“−1”を格納するものとする。すなわち、辺nの点の番号には、“0”または“1”または“−1”を格納する。
これにより、メッシュ内の点または辺の比較処理の流れは、「(3)メッシュ内の情報の比較処理の流れ」で示した閉領域の検索処理と同様となる。
(5)動的なメッシュ分割
図面を複数のメッシュに分割して閉領域と2重書き箇所を検索する処理では、メッシュの分割の方法が処理の効率化の度合いに大きく影響する。これまでの例では、メッシュを4×4に分割した場合を挙げているが、実際にはn×n(n≧1)の分割であり、最適なnの値を使用する必要が生じる。
図面に存在する図形の数が比較的多い場合、閉領域と2重書き箇所の検索で処理する図形の辺の数も多いため、処理する点の数も多くなる。故に、比較処理する点の組合せの数も多くなるため、検索処理により多くの時間を要することになる。この場合、分割するメッシュの数が多い方が、各メッシュに存在する点の数は少なくなるため、比較処理する点の組合せの数も必然的に少なくなり、検索処理に要する時間も短くなる。ただしこれには、図形の点が各メッシュにある程度均等に分散されるということが前提となり、図形の点が一部のメッシュに偏る場合は効率が低下する。よって、最適なメッシュ分割の方法は、以下の2点の値に依存する。
(a)図面に存在する図形の数
(b)図面に存在する図形の位置的な偏り
図面を複数のメッシュに分割して閉領域と2重書き箇所を検索する処理では、メッシュの分割の方法が処理の効率化の度合いに大きく影響する。これまでの例では、メッシュを4×4に分割した場合を挙げているが、実際にはn×n(n≧1)の分割であり、最適なnの値を使用する必要が生じる。
図面に存在する図形の数が比較的多い場合、閉領域と2重書き箇所の検索で処理する図形の辺の数も多いため、処理する点の数も多くなる。故に、比較処理する点の組合せの数も多くなるため、検索処理により多くの時間を要することになる。この場合、分割するメッシュの数が多い方が、各メッシュに存在する点の数は少なくなるため、比較処理する点の組合せの数も必然的に少なくなり、検索処理に要する時間も短くなる。ただしこれには、図形の点が各メッシュにある程度均等に分散されるということが前提となり、図形の点が一部のメッシュに偏る場合は効率が低下する。よって、最適なメッシュ分割の方法は、以下の2点の値に依存する。
(a)図面に存在する図形の数
(b)図面に存在する図形の位置的な偏り
以上の2点を考慮して最適なメッシュ分割を判断するためには、図面に存在する図形の位置情報と数から、メッシュ分割を動的に行う。そこで、1つのメッシュに格納する点の情報の最大数を定め、それ以上の情報がメッシュ内に存在する場合は、その時点でメッシュを2分割する手法を行う。メッシュの分割は以下のルールに従うものとする。
(a)メッシュの分割は、メッシュ内の全図形の点の数が最大値を超えた場合に、そのメッシュだけを対象にして発生する。
(b)メッシュの分割は、左右または上下のいずれか一方にメッシュを2等分するものとする。
(c)左右または上下のいずれに分割するかどうかの判断は、分割した場合の点の数が共に最大値以下となることを条件とする。
(d)左右または上下のいずれに分割しても点の数が共に最大値以下となる場合は、点の数がより均等に分割する方を採用することにする。
(e)左右または上下のいずれに分割しても点の数が均等に分割される場合は、左右の分割を採用することにする。
(f)ただし、分割した境界線上に点が存在する場合は、その分割は採用しない。
(a)メッシュの分割は、メッシュ内の全図形の点の数が最大値を超えた場合に、そのメッシュだけを対象にして発生する。
(b)メッシュの分割は、左右または上下のいずれか一方にメッシュを2等分するものとする。
(c)左右または上下のいずれに分割するかどうかの判断は、分割した場合の点の数が共に最大値以下となることを条件とする。
(d)左右または上下のいずれに分割しても点の数が共に最大値以下となる場合は、点の数がより均等に分割する方を採用することにする。
(e)左右または上下のいずれに分割しても点の数が均等に分割される場合は、左右の分割を採用することにする。
(f)ただし、分割した境界線上に点が存在する場合は、その分割は採用しない。
(6)動的なメッシュ分割の実行例
以上のルールに従って、図面の中の図形を一つずつ検索するごとに、動的にメッシュ分割する手順を以下に説明する。
ここでは、一つのメッシュに格納する点の情報の最大数を「4」とする。また、各図で新しく検索した図形を灰色で、それ以外の図形を白色で示す。
図12のように、図面121の中に一つの図形122を検索した時、メッシュ内の点の数は4個であるので、メッシュ分割は発生しない。
しかし、図13に示すように、図面121の中にもう一つの図形123を検索した時、メッシュ内の点の数は合計8個になるので、メッシュ分割が発生する。この時、左右に分割した場合も上下に分割した場合も、共に点の数が4個ずつになるため、図13の破線131で示す位置で左右に分割する。
さらに、図14に示すように、図形122の中に次の図形124を検索した時、破線131の左側のメッシュ内の点の数は合計8個になるので、メッシュ分割が発生する。この時、上下に分割した場合は上側のメッシュ内の点の数は4個以下とならないため、図14のように破線141の位置で左右に分割する。
さらに、図15に示すように、図形122および123の中に次の図形125を検索した時、まずは破線131と破線141に挟まれた中央のメッシュ内の点の数は合計6個になるので、メッシュ分割が発生する。この時、左右に分割した場合は点の数が4個と2個になり、上下に分割した場合は3個ずつになる。均等に分割されることを配慮し、図15のように破線151の位置で上下に分割する。
次に、破線131の右側のメッシュ内の点の数も合わせて6個になるので、メッシュ分割が発生する。この時、左右に分割した場合は点が境界線上に位置することになるので、図16のように破線161の位置で上下に分割する。
これにより、図面の中の4つの図形の合計16の点は、5つのメッシュに効率良く分割される。
以上のルールに従って、図面の中の図形を一つずつ検索するごとに、動的にメッシュ分割する手順を以下に説明する。
ここでは、一つのメッシュに格納する点の情報の最大数を「4」とする。また、各図で新しく検索した図形を灰色で、それ以外の図形を白色で示す。
図12のように、図面121の中に一つの図形122を検索した時、メッシュ内の点の数は4個であるので、メッシュ分割は発生しない。
しかし、図13に示すように、図面121の中にもう一つの図形123を検索した時、メッシュ内の点の数は合計8個になるので、メッシュ分割が発生する。この時、左右に分割した場合も上下に分割した場合も、共に点の数が4個ずつになるため、図13の破線131で示す位置で左右に分割する。
さらに、図14に示すように、図形122の中に次の図形124を検索した時、破線131の左側のメッシュ内の点の数は合計8個になるので、メッシュ分割が発生する。この時、上下に分割した場合は上側のメッシュ内の点の数は4個以下とならないため、図14のように破線141の位置で左右に分割する。
さらに、図15に示すように、図形122および123の中に次の図形125を検索した時、まずは破線131と破線141に挟まれた中央のメッシュ内の点の数は合計6個になるので、メッシュ分割が発生する。この時、左右に分割した場合は点の数が4個と2個になり、上下に分割した場合は3個ずつになる。均等に分割されることを配慮し、図15のように破線151の位置で上下に分割する。
次に、破線131の右側のメッシュ内の点の数も合わせて6個になるので、メッシュ分割が発生する。この時、左右に分割した場合は点が境界線上に位置することになるので、図16のように破線161の位置で上下に分割する。
これにより、図面の中の4つの図形の合計16の点は、5つのメッシュに効率良く分割される。
図17は、以上の動的メッシュ分割を行う検索処理プログラム112の処理の概要を示すフローチャートである。
まず、変数N1に対して、1メッシュ内に含むことを許容する端点情報の最大点数を設定する(ステップ1701)。
次に、変数L1に対して、図面内の直線図形の情報を取得して代入する(ステップ1702)。
次に、変数P1に対して、変数L1内の直線図形の始点の座標情報を代入する(ステップ1703)。
次に、変数M1に対して、変数L1内の直線図形の始点の座標情報P1が当てはまるメッシュの位置を代入する(ステップ1704)。
まず、変数N1に対して、1メッシュ内に含むことを許容する端点情報の最大点数を設定する(ステップ1701)。
次に、変数L1に対して、図面内の直線図形の情報を取得して代入する(ステップ1702)。
次に、変数P1に対して、変数L1内の直線図形の始点の座標情報を代入する(ステップ1703)。
次に、変数M1に対して、変数L1内の直線図形の始点の座標情報P1が当てはまるメッシュの位置を代入する(ステップ1704)。
次に、変数N2に対して、変数M1のメッシュに含まれる点の数を代入し(ステップ1705)、N1<N2かどうか、すなわち、変数M1のメッシュに含まれる点の数が1メッシュ内に含むことを許容する端点情報の最大点数を超えるかどうかを判定する(ステップ1706)。
超える場合には、変数N3に対して、変数M1で示されるメッシュを上下に2分割した場合の各メッシュに含まれる点の数を代入し(ステップ1707)、さらに、変数M1で示されるメッシュを左右に2分割した場合の各メッシュに含まれる点の数を代入する(ステップ1708)。
そして、変数N3の方がN4よりも均等に点が分割されるかどうかを判定し(ステップ1709)、そうであれば、変数M1で示されるメッシュを上下に2分割し(ステップ1710)、そうでなければ、変数M1で示されるメッシュを左右に2分割する(ステップ1711)。
超える場合には、変数N3に対して、変数M1で示されるメッシュを上下に2分割した場合の各メッシュに含まれる点の数を代入し(ステップ1707)、さらに、変数M1で示されるメッシュを左右に2分割した場合の各メッシュに含まれる点の数を代入する(ステップ1708)。
そして、変数N3の方がN4よりも均等に点が分割されるかどうかを判定し(ステップ1709)、そうであれば、変数M1で示されるメッシュを上下に2分割し(ステップ1710)、そうでなければ、変数M1で示されるメッシュを左右に2分割する(ステップ1711)。
次に、変数P1で示される直線図形の始点の座標情報を該当のメッシュの情報に追加する(ステップ1712)。
次に、変数P1で示される直線図形の終点を未処理かどうかを判定し(ステップ1713)、未処理であれば、変数P1に対して終点の座標情報を代入し(ステップ1714)、ステップ1704に戻る。
終点の座標情報に対する処理が終了していた場合には、未処理の直線が残っているかを判定し(ステップ1715)、残っていた場合には、変数L1に対して次の直線図形の情報を代入し(ステップ1716)、ステップ1702に戻る。
以上の処理により、各メッシュ内に含まれる端点情報が変数N1に設定された許容点数以内になるようにメッシュの再分割を行う。
次に、変数P1で示される直線図形の終点を未処理かどうかを判定し(ステップ1713)、未処理であれば、変数P1に対して終点の座標情報を代入し(ステップ1714)、ステップ1704に戻る。
終点の座標情報に対する処理が終了していた場合には、未処理の直線が残っているかを判定し(ステップ1715)、残っていた場合には、変数L1に対して次の直線図形の情報を代入し(ステップ1716)、ステップ1702に戻る。
以上の処理により、各メッシュ内に含まれる端点情報が変数N1に設定された許容点数以内になるようにメッシュの再分割を行う。
11…ディスプレイ装置、12…PC装置、121…汎用CADアプリケーション、122…CADアプリケーション用検索処理プログラム。
Claims (4)
- 複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか1つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索手段によって検索する図面要素検索方法であって、
前記検索手段による検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索することを特徴とする図面要素検索方法。 - 複数の直線からなる図面要素により形成される閉領域を検索対象として検索することを特徴とする請求項1に記載の図面要素検索方法。
- 複数の直線からなる図面要素が重なり合う2重書き要素を検索対象として検索することを特徴とする請求項1に記載の図面要素検索方法。
- 複数の直線からなる図面要素により構成される図面を複数のメッシュに分割し、各図面要素の始点と終点の端点情報をいずれか1つのメッシュに帰属させ、各メッシュに対応した格納領域に格納し、その格納情報によって検索対象の図面要素を検索する図面要素検索プログラムであって、
検索対象の図面要素の検索時に、検索対象の図面要素の端点が含まれるメッシュ内において、当該メッシュ内に含まれる図面要素の端点情報を当該メッシュに対応した格納領域から読出し、当該メッシュ内に含まれる図面要素の端点情報が所定数を超えるか否かを判定し、所定数を超える場合には、含まれる端点情報が所定数以下となるように予め定めた規則に従って当該メッシュを再分割し、再分割後のメッシュにおいて検索対象の図面要素を端点情報同士の比較処理によって検索する手段としてコンピュータを機能させることを特徴とする図面要素検索プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006012176A JP2007193640A (ja) | 2006-01-20 | 2006-01-20 | 図面要素検索方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006012176A JP2007193640A (ja) | 2006-01-20 | 2006-01-20 | 図面要素検索方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007193640A true JP2007193640A (ja) | 2007-08-02 |
Family
ID=38449286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006012176A Pending JP2007193640A (ja) | 2006-01-20 | 2006-01-20 | 図面要素検索方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007193640A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009140441A (ja) * | 2007-12-10 | 2009-06-25 | Canon Inc | 画像処理装置及び検索方法 |
-
2006
- 2006-01-20 JP JP2006012176A patent/JP2007193640A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009140441A (ja) * | 2007-12-10 | 2009-06-25 | Canon Inc | 画像処理装置及び検索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2000114379A (ja) | 集積回路設計方法及び集積回路設計装置 | |
US7499045B2 (en) | Graphics image generation | |
US9798808B2 (en) | Data visualization system | |
CN102129425B (zh) | 数据仓库中大对象集合表的访问方法及装置 | |
US20130141448A1 (en) | Graphics Command Generation Device and Graphics Command Generation Method | |
US20140149926A1 (en) | Apparatus, method and computer readable recording medium for arranging a plurality of items automatically in a canvas | |
CN109872396B (zh) | 一种适用于三角网格模型的快速截面轮廓生成方法 | |
US20160026646A1 (en) | Recording medium having data recorded therein in data file format structure for visualization of large capacity cfd parallel data and method for generating said data file format structure | |
EP2590144B1 (en) | Designing a modeled volume represented by dexels | |
WO2021258934A1 (zh) | 平面排版方法及系统 | |
US6757883B1 (en) | Estimating free space in IC chips | |
JP4885558B2 (ja) | エンティティルックアップシステム | |
JP6834602B2 (ja) | データ生成方法、データ生成装置及びデータ生成プログラム | |
WO2024078122A1 (zh) | 数据库表扫描的方法、装置以及设备 | |
KR102006283B1 (ko) | 패스트맵을 이용한 데이터셋의 m-트리 적재방법 | |
CN109871517B (zh) | 文字块排序方法、装置、存储介质及电子设备 | |
CN111857704A (zh) | 一种布局关系的代码生成方法及装置 | |
JP2007193640A (ja) | 図面要素検索方法およびプログラム | |
Alis et al. | Parallel processing of big point clouds using Z-Order-based partitioning | |
CN104484404A (zh) | 一种改善分布式文件系统中地理栅格数据文件处理方法 | |
WO2014168199A1 (ja) | 論理演算方法および情報処理装置 | |
US9183435B2 (en) | Feature generalization using topological model | |
KR20120050642A (ko) | 초기 클러스터링을 사용한 병합식 계층적 클러스터링 방법 및 장치 | |
JP2644735B2 (ja) | 図面情報管理方法 | |
JP2021018711A (ja) | タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム |