(57)【特許請求の範囲】
【請求項１】
矩形の４つの頂点にそれぞれ対応して、それぞれを組み合わせた組み合わせ毎の合計値が異なるように定めた設定値を示す設定値情報および前記合計値毎の輪郭の状態を示す状態情報を記憶する記憶部と、
矩形のメッシュで分割された解析対象のモデルの前記メッシュの各頂点に対して前記設定値情報に基づき、対応する設定値を割り当てる割当部と、
前記割当部により割り当てられた設定値を頂点毎に合計した合計値を算出する算出部と、
前記状態情報に基づき、頂点毎の前記合計値から前記解析対象のモデルの輪郭の形状を特定する特定部と、
を有することを特徴とする輪郭特定装置。
【請求項２】
前記記憶部は、前記合計値毎に輪郭の検索方向を示す方向情報をさらに記憶し、
前記特定部は、前記方向情報に基づき、頂点から当該頂点の合計値に応じた検索方向に輪郭の検索を行って前記解析対象のモデルの外形の頂点となる輪郭点を特定し、ベクトルデータとして前記解析対象のモデルの輪郭の形状を特定する
ことを特徴とする請求項１に記載の輪郭特定装置。
【請求項３】
前記算出部により算出された合計値が何れかの前記設定値である頂点が隣接するメッシュの辺上に位置する入隅の頂点であるか判定する判定部と、
前記判定部により隣接するメッシュの辺上に位置する入隅の頂点であると判定された頂点の合計値を、３つのメッシュの頂点が重なり合って同様の入隅の状態となった頂点を示す合計値に変更する変更部と、
をさらに有することを特徴とする請求項１または２に記載の輪郭特定装置。
【請求項４】
複数のレイヤで構成された基板の解析対象のモデルを直交格子のメッシュにより離散化する離散化部と、
前記離散化部により離散化された基板を所定の平面で平面化した２次元データを生成する生成部と、をさらに有し、
前記割当部は、前記２次元データにより示される平面上の解析対象のモデルを分割した矩形のメッシュの各頂点に対して前記設定値情報に基づき、対応する設定値を割り当てる
ことを特徴とする請求項１〜３の何れか１つに記載の輪郭特定装置。
【請求項５】
コンピュータが、
矩形の４つの頂点にそれぞれ対応して、それぞれを組み合わせた組み合わせ毎の合計値が異なるように定められた設定値を示す設定値情報に基づき、矩形のメッシュで分割された解析対象のモデルの前記メッシュの各頂点に対して対応する設定値を割り当て、
割り当てられた設定値を頂点毎に合計した合計値を算出し、
前記合計値毎の輪郭の状態を示す状態情報に基づき、頂点毎の前記合計値から前記解析対象のモデルの輪郭の形状を特定する
各処理を実行することを特徴とする輪郭特定方法。
【請求項６】
コンピュータに、
矩形の４つの頂点にそれぞれ対応して、それぞれを組み合わせた組み合わせ毎の合計値が異なるように定められた設定値を示す設定値情報に基づき、矩形のメッシュで分割された解析対象のモデルの前記メッシュの各頂点に対して対応する設定値を割り当て、
割り当てられた設定値を頂点毎に合計した合計値を算出し、
前記合計値毎の輪郭の状態を示す状態情報に基づき、頂点毎の前記合計値から前記解析対象のモデルの輪郭の形状を特定する
各処理を実行させることを特徴とする輪郭特定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、輪郭特定装置、輪郭特定方法および輪郭特定プログラムに関する。
【背景技術】
【０００２】
電磁界を解析する手法として、ＦＴＤＴ法(Finite  difference  time  domain  method)が知られている。このＦＴＤＴ法を採用した電磁界解析システムでは、解析対象のモデルに対して、直交格子のメッシュを設定し、離散化処理を実施する事で解析対象のモデルを複数のメッシュに分解し、メッシュ毎に計算を実施して解を求める。
【０００３】
ＦＴＤＴ法により精度の高い解を得るには、適切にメッシュを設定して、解析対象のモデルをメッシュにより離散化したメッシュによるモデル形状を元のモデル形状に近い状況にする事が望ましい。そこで、ＦＴＤＴ法を採用した電磁界解析システムでは、元のモデル形状とメッシュによるモデル形状を参照しながら、メッシュの再設定を繰り返す作業が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−９９８０４号公報
【特許文献２】特開２００９−１６３４４８号公報
【特許文献３】特開２００４−９４６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、メッシュに離散化されたモデル形状を表示する場合、メッシュの数が多くなるほど描画の負荷が高く、描画に用いるメモリの記憶容量も多くなる。
【０００６】
例えば、プリント基板の各種配線や各種素子、ホールなどの各要素を解析対象のモデルとしてＦＴＤＴ法による解析を行う場合、モデルの数が数万個〜数十万個となり、それぞれのモデルをメッシュに離散化した場合、メッシュの数が膨大な数となる。
【０００７】
このように離散化されたメッシュの数が膨大なモデル形状を表示する場合、描画に用いるメモリの記憶容量が多くなり、描画する線の数も多くなるため、描画に時間がかかり効率的に作業ができない。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、描画の負荷を軽減できる輪郭特定装置、輪郭特定方法および輪郭特定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する輪郭特定装置は、記憶部と、割当部と、算出部と、特定部とを有する。記憶部は、矩形の４つの頂点にそれぞれ対応して、それぞれを組み合わせた組み合わせ毎の合計値が異なるように定めた設定値を示す設定値情報および前記合計値毎の輪郭の状態を示す状態情報を記憶する。割当部は、矩形のメッシュで分割された解析対象のモデルの前記メッシュの各頂点に対して前記設定値情報に基づき、対応する設定値を割り当てる。算出部は、割当部により割り当てられた設定値を頂点毎に合計した合計値を算出する。特定部は、状態情報に基づき、頂点毎の合計値から解析対象のモデルの輪郭の形状を特定する。
【発明の効果】
【００１０】
本願の開示する輪郭特定装置によれば、描画の負荷を軽減できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、輪郭特定装置の全体構成を示す図である。
【図２】図２は、矩形の４つの頂点にそれぞれ対応して定めた設定値の一例を示す図である。
【図３】図３は、設定値情報の構成例を示す図である。
【図４】図４は、状態情報の構成例を示す図である。
【図５】図５は、合計値と頂点の状態の関係を説明するための図である。
【図６】図６は、座標テーブルの構成例を示す図である。
【図７】図７は、メッシュの各頂点と座標テーブルに記憶される情報との関係について説明するための図である。
【図８】図８は、図７に示した各頂点をＸ方向、Ｙ方向の順に優先してソートする場合の頂点の順番を示した図である。
【図９】図９は、図７に示した各頂点をＹ方向、Ｘ方向の順に優先してソートする場合の頂点の順番を示した図である。
【図１０】図１０は、ＸＹソートデータの構成例を示す図である。
【図１１】図１１は、ＹＸソートデータの構成例を示す図である。
【図１２】図１２は、基板の一例を示す図である。
【図１３】図１３は、合計値が設定値になる頂点の状態を説明するための図である。
【図１４】図１４は、入隅となる頂点のパターンを示した図である。
【図１５】図１５は、図７から不要な頂点を削除した結果を示す図である。
【図１６】図１６は、図６から不要な頂点のデータを削除した座標テーブルの構成例を示す図である。
【図１７】図１７は、図１０から不要な頂点のデータを削除したＸＹソートデータの構成例を示す図である。
【図１８】図１８は、図１１から不要な頂点のデータを削除したＹＸソートデータの構成例を示す図である。
【図１９】図１９は、ＦＴＤＴ法による解析を行う要素の一例を示す図である。
【図２０】図２０は、要素をメッシュにより離散化した結果の一例を示す図である。
【図２１】図２１は、離散化した要素の輪郭を特定した結果の一例を示す図である。
【図２２】図２２は、メッシュで離散化した基板の所定の面を表示した一例を示す図である。
【図２３】図２３は、図２２と同じ面に対して輪郭を特定して表示した一例を示す図である。
【図２４】図２４は、輪郭特定処理の手順を示すフローチャートである。
【図２５】図２５は、準備処理の手順を示すフローチャートである。
【図２６】図２６は、入隅点検出処理の手順を示すフローチャートである。
【図２７】図２７は、抽出処理の手順を示すフローチャートである。
【図２８】図２８は、輪郭特定プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する輪郭特定装置、輪郭特定方法および輪郭特定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［装置構成］
実施例１に係る輪郭特定装置について説明する。図１は、輪郭特定装置の全体構成を示す図である。輪郭特定装置１０は、基板上の解析対象のモデルをメッシュにより離散化したメッシュによるモデル形状の輪郭を特定するコンピュータである。輪郭特定装置１０は、ＣＡＤ（Computer  Aided  Design）装置などのユーザによる回路設計を支援する回路設計ソフトウェアが動作する設計装置であってもよい。図１に示すように、輪郭特定装置１０は、入力部２０と、表示部２１と、記憶部２２と、制御部２３とを有する。
【００１４】
入力部２０は、各種の情報を入力する入力デバイスである。かかる入力部２０の一態様としては、マウスやキーボードなどの操作受付デバイスが挙げられる。入力部２０は、各種の情報の入力を受け付ける。例えば、入力部２０は、電磁界解析を行う際に解析対象のモデルを離散化する直交格子のメッシュのサイズを設定する入力を受け付ける。また、入力部２０は、設定したサイズのメッシュでの解析対象のモデルの離散化開始や、モデル形状の輪郭の特定を指示する指示入力を受け付ける。
【００１５】
表示部２１は、各種情報を表示する表示デバイスである。かかる表示部２１の一態様としては、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）などの表示デバイスが挙げられる。表示部２１は、各種情報を表示する。例えば、表示部２１は、基板に対してＦＴＤＴ法を採用した電磁界解析を行う際のメッシュのサイズなど各種条件を設定する設定画面を表示する。また、表示部２１は、基板上の解析対象のモデルをメッシュにより離散化したメッシュによるモデル形状を表示する。
【００１６】
記憶部２２は、フラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部２２は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。
【００１７】
記憶部２２は、制御部２３で実行されるＯＳ（Operating  System）や後述する輪郭の特定に用いる各種プログラムを記憶する。さらに、記憶部２２は、制御部２３で実行されるプログラムで使用する各種データを記憶する。かかるデータの一例として、記憶部２２は、ＣＡＤデータ３０と、メッシュデータ３１と、２次元データ３２と、設定値情報３３と、状態情報３４と、座標テーブル３５と、ＸＹソートデータ３６と、ＹＸソートデータ３７と、表示用データ３８とを記憶する。
【００１８】
ＣＡＤデータ３０は、基板に設計された回路に関する各種の情報を記憶したデータである。例えば、基板がプリント基板の場合、ＣＡＤデータ３０には、プリント基板内の各レイヤおよびレイヤ間の各種配線や各種素子、ホールなどの各要素の配置位置などの各種の情報が含まれている。ＣＡＤデータ３０は、輪郭特定装置１０において設計されたものでもよい。また、ＣＡＤデータ３０は、図示しない外部Ｉ／Ｆ部を介して外部の装置から入力されたものであってもよい。一例として、ＣＡＤデータ３０は、後述の離散化部４０によって参照される。
【００１９】
メッシュデータ３１は、ＣＡＤデータ３０により示される基板を直交格子のメッシュにより離散化したメッシュによるモデル形状を示すデータである。一例として、メッシュデータ３１は、後述の離散化部４０によって生成される。他の一例として、メッシュデータ３１は、後述の生成部４１によって参照される。
【００２０】
２次元データ３２は、メッシュにより離散化された基板を所定の平面で平面化したデータである。この２次元データ３２は、平面化された矩形状のメッシュが含まれる場合、メッシュデータ３１のどのメッシュを平面化したものかを示す情報、および、どの要素のメッシュであるかを示す情報を含む。一例として、２次元データ３２は、後述の生成部４１によって生成される。他の一例として、２次元データ３２は、後述の割当部４２、特定部４８によって参照される。
【００２１】
設定値情報３３は、矩形の４つの頂点にそれぞれ対応させる設定値が記憶されたデータである。矩形の４つの頂点にそれぞれ対応させる設定値は、それぞれを組み合わせた組み合わせ毎の合計値が異なるように定めている。一例として、設定値情報３３は、輪郭特定ソフトウェアの作成元で予め登録されてもよい。また、設定値情報３３は、管理者が入力部２０あるいは、輪郭特定装置１０と通信可能とされたクライアントコンピュータなどの端末装置から登録されてもよい。他の一例として、設定値情報３３は、後述の割当部４２によって参照される。
【００２２】
ここで、設定値の一例を説明する。図２は、矩形の４つの頂点にそれぞれ対応して定めた設定値の一例を示す図である。図２の例では、矩形５０の左下の頂点５１ａには、設定値「１」が対応付けられている。矩形５０の右下の頂点５１ｂには、設定値「２」が対応付けられている。矩形５０の右上の頂点５１ｃには、設定値「４」が対応付けられている。矩形５０の左上の頂点５１ｄには、設定値「８」が対応付けられている。この４つの頂点５１ａ〜５１ｄに割り当てられた設定値は、それぞれを組み合わせた組み合わせ毎の合計値が異なる。以下に頂点５１ａ〜５１ｄの組み合わせと、組み合わせた頂点に対応する設定値、および設定値の合計値を示す。
【００２３】
［頂点の組み合わせ］              ［頂点に対応する設定値］  ［設定値の合計値］
頂点５１ａ                        ：１                    ：１
頂点５１ｂ                        ：２                    ：２
頂点５１ａ、５１ｂ                ：１、２                ：３
頂点５１ｃ                        ：４                    ：４
頂点５１ａ、５１ｃ                ：１、４                ：５
頂点５１ｂ、５１ｃ                ：２、４                ：６
頂点５１ａ、５１ｂ、５１ｃ        ：１、２、４            ：７
頂点５１ｄ                        ：８                    ：８
頂点５１ａ、５１ｄ                ：１、８                ：９
頂点５１ｂ、５１ｄ                ：２、８                ：１０
頂点５１ａ、５１ｂ、５１ｄ        ：１、２、８            ：１１
頂点５１ｃ、５１ｄ                ：４、８                ：１２
頂点５１ａ、５１ｃ、５１ｄ        ：１、４、８            ：１３
頂点５１ｂ、５１ｃ、５１ｄ        ：２、４、８            ：１４
頂点５１ａ、５１ｂ、５１ｃ、５１ｄ：１、２、４、８        ：１５
【００２４】
このように、頂点５１ａ〜５１ｄを組み合わせた組み合わせ毎の合計値が異なることにより、頂点５１ａ〜５１ｄの組み合わせと合計値とは、１対１で対応する関係となる。すなわち、合計値から頂点５１ａ〜５１ｄの組み合わせが特定できるようになる。なお、矩形の４つの頂点に対応して定めた設定値「１」、「２」、「４」、「８」は一例であり、組み合わせ毎の合計値が異なれば何れの値としてもよい。また、組み合わせ毎の合計値は、連続した数値にならなくてもよい。
【００２５】
設定値情報３３には、４つの頂点に対応して設定値が記憶されている。図３は、設定値情報の構成例を示す図である。図３に示すように、設定値情報３３は、「頂点位置」、「設定値」の各項目を有する。頂点位置の項目は、矩形の頂点の位置を示す情報を格納する領域である。設定値の項目は、頂点に対応する設定値を格納する領域である。
【００２６】
図３の例では、矩形５０の左下の頂点５１ａは、設定値が「１」であることを示す。また、矩形の右下の頂点５１ｂは、設定値が「２」であることを示す。矩形の右上の頂点５１ｃは、設定値が「４」であることを示す。矩形の左上の頂点５１ｄは、設定値が「８」であることを示す。
【００２７】
状態情報３４は、合計値毎の輪郭の状態を示す状態情報が記憶されたデータである。一例として、状態情報３４は、輪郭特定ソフトウェアの作成元で予め登録されてもよい。また、状態情報３４は、管理者が入力部２０あるいは、輪郭特定装置１０と通信可能とされたクライアントコンピュータなどの端末装置から登録されてもよい。他の一例として、状態情報３４は、後述の特定部４８によって参照される。
【００２８】
図４は、状態情報の構成例を示す図である。図４に示すように、状態情報３４は、「合計値」、「状態」、「検索方向」の各項目を有する。合計値の項目は、設定値の組み合わせて得られる合計値を格納する領域である。本実施例では、合計値として、１〜４の設定値を組み合わせて得られる１〜１５の値が格納されている。状態の項目は、合計値が示す頂点の状態を示す情報を格納する領域である。検索方向の項目は、輪郭検索の際に次に検索を行う方向を示す情報を格納する領域である。図４の構成例では、検索方向は輪郭形状に対して反時計方向に検索する事を想定して示している。時計方向に検索する場合は、検索方向を図４とは逆にすることで対応できる。
【００２９】
ここで、合計値と頂点の状態との関係について説明する。図５は、合計値と頂点の状態の関係を説明するための図である。図５の例は、２つの矩形のメッシュ５５ａ、５５ｂが隣り合っている場合を示す。このメッシュ５５ａの頂点５６ａ、５６ｂ、５６ｃ、５６ｄに対して、それぞれ設定値情報３３に基づいて対応する設定値を割り当てた場合、頂点５６ａは、設定値「１」が割り当てられる。頂点５６ｂは、設定値「２」が割り当てられる。頂点５６ｃは、設定値「４」が割り当てられる。頂点５６ｄは、設定値「８」が割り当てられる。同様に、メッシュ５５ｂの頂点５６ｂ、５６ｃ、５６ｅ、５６ｆに対して、それぞれ設定値情報３３に基づいて対応する設定値を割り当てた場合、頂点５６ｂは、設定値「１」が割り当てられる。頂点５６ｅは、設定値「２」が割り当てられる。頂点５６ｆは、設定値「３」が割り当てられる。頂点５６ｃは、設定値「８」が割り当てられる。図４に示すようにメッシュ５５ａ、５５ｂが隣り合い、頂点５６ｂ、５６ｃがメッシュ５５ａ、５５ｂにそれぞれ含まれる場合、頂点５６ｂは、設定値「１」と「２」が割り当てられ、設定値の合計値が「３」となる。また、頂点５６ｃは、設定値「４」と「８」が割り当てられ、設定値の合計値が「１２」となる。この合計値は、上述のように、設定値の組み合わせ毎に異なる。このため、合計値から頂点の状態が判定できる。
【００３０】
状態情報３４には、合計値毎に、頂点の状態が記憶されている。また、状態情報３４には、合計値毎に、頂点の状態に応じて、輪郭検索の際の検索方向が記憶されている。
【００３１】
図４の例では、合計値が「１」の頂点は、矩形左下の独立した頂点であり、次に検索を行う方向が「右方向」であることを示す。合計値が「２」の頂点は、矩形右下の独立した頂点であり、次に検索を行う方向が「上方向」であることを示す。合計値が「３」の頂点は、左右に矩形が並ぶ下側の頂点であり、検索方向が変化しない通過点であるため、次に検索を行う方向が設定されていないことを示す。合計値が「４」の頂点は、矩形右上の独立した頂点であり、次に検索を行う方向が「左方向」であることを示す。合計値が「５」の頂点は、左下頂点と右上頂点が点接触した頂点であり、次に検索を行う方向の設定が、検索されてきた方向が上からの場合は「右方向」であり、検索されてきた方向が下からの場合は「左方向」であることを示す。合計値が「６」の頂点は、上下に矩形が並ぶ右側の頂点であり、検索方向が変化しない通過点であるため、次に検索を行う方向が設定されていないことを示す。合計値が「７」の頂点は、３つの矩形が隣り合う右下の入隅点となる頂点であり、次に検索を行う方向が「右方向」であることを示す。合計値が「８」の頂点は、矩形左上の独立した頂点であり、次に検索を行う方向が「下方向」であることを示す。合計値が「９」の頂点は、上下に矩形が並ぶ左側の頂点であり、検索方向が変化しない通過点であるため、次に検索を行う方向が設定されていないことを示す。合計値が「１０」の頂点は、右下頂点と左上頂点が点接触した頂点であり、次に検索を行う方向の設定が、検索されてきた方向が右からの場合は「下方向」であり、検索されてきた方向が左からの場合は「上方向」であることを示す。合計値が「１１」の頂点は、３つの矩形が隣り合う左下の入隅点となる頂点であり、次に検索を行う方向が「下方向」であることを示す。合計値が「１２」の頂点は、左右に矩形が並ぶ上側の頂点であり、検索方向が変化しない通過点であるため、次に検索を行う方向が設定されていないことを示す。合計値が「１３」の頂点は、３つの矩形が隣り合う左上の入隅点となる頂点であり、次に検索を行う方向が「左方向」であることを示す。合計値が「１４」の頂点は、３つの矩形が隣り合う右上の入隅点となる頂点であり、次に検索を行う方向が「上方向」であることを示す。合計値が「１５」の頂点は、４つの矩形が隣り合うモデル内部の内包点となる頂点であり、次に検索を行う方向が設定されていないことを示す。なお、図４の例では、状態および検索方向の項目にそれぞれの頂点の状態、検索方向を図により模式的に示している。
【００３２】
座標テーブル３５は、解析対象のモデルを分割したメッシュの頂点に関する情報が記憶されたデータである。一例として、座標テーブル３５は、後述の算出部４３によって登録される。他の一例として、座標テーブル３５は、後述の変更部４６によって更新される。他の一例として、座標テーブル３５は、後述の判定部４５、ソート部４４、特定部４８によって参照される。
【００３３】
図６は、座標テーブルの構成例を示す図である。図６に示すように、座標テーブル３５は、頂点毎に、頂点Ｘ，Ｙ座標、合計値、入力データへのインデックスが並んで記憶されている。頂点Ｘ，Ｙ座標は、頂点の位置を示すＸ，Ｙ座標を記憶する領域である。合計値は、頂点に割り当てられた設定値を合計した合計値を記憶する領域である。入力データへのインデックスは、頂点が属するメッシュを示す情報を記憶する領域である。
【００３４】
ここで、解析対象のモデルを分割したメッシュの各頂点と座標テーブル３５に記憶される情報との関係について説明する。図７は、メッシュの各頂点と座標テーブルに記憶される情報との関係について説明するための図である。図７の例は、解析対象のモデルが矩形のメッシュＡ〜Ｅに分割されている場合を示す。メッシュＡ〜Ｅは、（１）〜（１３）の頂点を有する。
【００３５】
座標テーブル３５には、解析対象のモデルを分割したメッシュの各頂点の座標位置、各頂点に設定値を割り当てて合計した合計値、頂点が属するメッシュを示す情報が記憶されている。なお、本実施例では、頂点のＸ，Ｙ座標を、それぞれの頂点を示す（１）〜（１３）により模式的に示している。
【００３６】
図６の例では、１番目の頂点は、頂点Ｘ，Ｙ座標が「（１）」であり、合計値が「８」、頂点が属するメッシュが「Ａ」であることを示す。２番目の頂点は、頂点Ｘ，Ｙ座標が「（２）」であり、合計値が「４」であり、頂点が属するメッシュが「Ａ」であることを示す。３番目の頂点は、頂点Ｘ，Ｙ座標が「（３）」であり、合計値が「９」であり、頂点が属するメッシュが「Ａ」と「Ｂ」であることを示す。４番目の頂点は、頂点Ｘ，Ｙ座標が「（４）」であり、合計値が「１４」であり、頂点が属するメッシュが「Ａ」と「Ｂ」と「Ｃ」であることを示す。５番目の頂点は、頂点Ｘ，Ｙ座標が「（５）」であり、合計値が「４」であり、頂点が属するメッシュが「Ｃ」であることを示す。６番目の頂点は、頂点Ｘ，Ｙ座標が「（６）」であり、合計値が「１」であり、頂点が属するメッシュが「Ｂ」であることを示す。７番目の頂点は、頂点Ｘ，Ｙ座標が「（７）」であり、合計値が「１１」であり、頂点が属するメッシュが「Ｂ」と「Ｃ」と「Ｄ」であることを示す。８番目の頂点は、頂点Ｘ，Ｙ座標が「（８）」であり、合計値が「６」であり、頂点が属するメッシュが「Ｃ」と「Ｄ」であることを示す。９番目の頂点は、頂点Ｘ，Ｙ座標が「（９）」であり、合計値が「１」であり、頂点が属するメッシュが「Ｄ」であることを示す。１０番目の頂点は、頂点Ｘ，Ｙ座標が「（１０）」であり、合計値が「１０」であり、頂点が属するメッシュが「Ｄ」と「Ｅ」であることを示す。１１番目の頂点は、頂点Ｘ，Ｙ座標が「（１１）」であり、合計値が「４」であり、頂点が属するメッシュが「Ｅ」であることを示す。１２番目の頂点は、頂点Ｘ，Ｙ座標が「（１２）」であり、合計値が「１」であり、頂点が属するメッシュが「Ｅ」であることを示す。１３番目の頂点は、頂点Ｘ，Ｙ座標が「（１３）」であり、合計値が「２」であり、頂点が属するメッシュが「Ｅ」であることを示す。
【００３７】
ＸＹソートデータ３６およびＹＸソートデータ３７は、座標テーブル３５に記憶された各頂点のデータを座標の配置位置の順にソートしたデータである。例えば、図７に示すメッシュの各頂点を設けられた平面の左右方向をＸ方向と上下方向をＹ方向とした場合、ＸＹソートデータ３６は、Ｘ方向、Ｙ方向の順に優先して座標テーブル３５に記憶された各頂点のデータをソートしたデータである。また、ＹＸソートデータ３７は、Ｙ方向を優先して座標テーブル３５に記憶された各頂点のデータをＹ方向、Ｘ方向の順に優先してソートしたデータである。図８は、図７に示した各頂点をＸ方向、Ｙ方向の順に優先してソートする場合の頂点の順番を示した図である。図９は、図７に示した各頂点をＹ方向、Ｘ方向の順に優先してソートする場合の頂点の順番を示した図である。
【００３８】
なお、ＸＹソートデータ３６およびＹＸソートデータ３７は、座標テーブル３５に記憶された各頂点のデータを実際にソートしたものでもよく、また、座標テーブル３５の各頂点のデータの記憶位置を示すポインタをソートしたものでもよい。本実施例では、各頂点のデータの位置を示すポインタをソートしてＸＹソートデータ３６およびＹＸソートデータ３７に記憶する。一例として、ＸＹソートデータ３６およびＹＸソートデータ３７は、後述のソート部４４によって登録される。他の一例として、ＸＹソートデータ３６およびＹＸソートデータ３７は、後述の判定部４５、特定部４８によって参照される。
【００３９】
図１０は、ＸＹソートデータの構成例を示す図である。図９に示すように、ＸＹソートデータ３６は、Ｘ方向、Ｙ方向の順にソートして図８に示した順に各頂点の記憶位置を示すポインタが記憶されている。図１１は、ＹＸソートデータの構成例を示す図である。図１０に示すように、ＹＸソートデータ３７は、Ｙ方向、Ｘ方向の順にソートして図８に示した順に各頂点の記憶位置を示すポインタが記憶されている。
【００４０】
表示用データ３８は、解析対象のモデルの輪郭を表示するための表示用のデータである。一例として、表示用データ３８は、後述の特定部４８によって登録される。他の一例として、表示用データ３８は、後述の出力部４９によって参照される。
【００４１】
図１に戻り、制御部２３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２３には、各種の集積回路や電子回路を採用できる。例えば、集積回路としては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）が挙げられる。また、電子回路としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。制御部２３は、図１に示すように、離散化部４０と、生成部４１と、割当部４２と、算出部４３と、ソート部４４と、判定部４５と、変更部４６と、削除部４７と、特定部４８と、出力部４９とを有する。
【００４２】
このうち、離散化部４０は、ＣＡＤデータ３０により示される基板を直交格子のメッシュにより離散化する処理部である。例えば、離散化部４０は、ＣＡＤデータ３０により示される基板に配置された各種配線や各種素子、ホールなどの各要素を解析対象のモデルとして、入力部２０から設定されたサイズのメッシュにより離散化する。そして、離散化部４０は、離散化が完了すると、メッシュによるモデル形状を示したメッシュデータを生成して記憶部２２に格納する。これにより、記憶部２２には、メッシュデータ３１が格納される。
【００４３】
生成部４１は、メッシュデータ３１により示されるメッシュによるモデル形状を所定の平面で平面化した２次元データを生成する処理部である。例えば、生成部４１は、基板が複数層で構成されている場合、それぞれの層毎にモデル形状を平面化した２次元データを生成する。例えば、基板が複数のレイヤを含んだプリント基板の場合、生成部４１は、各レイヤおよびレイヤ間の要素をそれぞれ平面化した２次元データを生成する。生成部４１は、メッシュによるモデル形状を所定の平面で平面化した平面内に、平面化された矩形状のメッシュが含まれる場合、メッシュに対応付けて、メッシュデータのどのメッシュを平面化したものかを示す情報を２次元データに格納する。また、生成部４１は、平面化された矩形状のメッシュが含まれる場合、メッシュに対応付けて、どの要素のメッシュであるかを示す情報も格納する。図１２は、基板の一例を示す図である。図１２の例は、上側の図が基板６０の平面図を示し、下側の図が基板６０の断面図を示す。図１２の例では、基板６０は、レイヤ６１ａ、６１ｂとレイヤ６１ａ、６１ｂを接続する要素６２が設けられている。この基板６０は、レイヤ６１ａ、６１ｂおよび要素６２がそれぞれ別に平面化されて２次元データが生成される。生成部４１は、生成した２次元データを記憶部２２に格納する。これにより、記憶部２２には、２次元データ３２が格納される。
【００４４】
割当部４２は、メッシュの各頂点に対して設定値情報３３に基づき、対応する設定値を割り当てる処理部である。例えば、割当部４２は、記憶部２２から２次元データ３２を読み出す。そして、割当部４２は、それぞれの平面毎に、矩形のメッシュで分割された解析対象のモデルのメッシュの各頂点に対して設定値情報３３に基づき、対応する設定値を割り当てる。
【００４５】
算出部４３は、設定値を合計した合計値を算出する処理部である。例えば、算出部４３は、それぞれの平面毎に、各頂点に割り当てられた設定値を頂点毎に合計した合計値を算出する。設定値情報３３に定められた設定値は、組み合わせた組み合わせ毎の合計値が異なる。このため、合計値は、頂点を含むメッシュがどのように配置されているかに応じて異なり、頂点の状態を表す。算出部４３は、それぞれの平面毎に、平面内での各頂点の座標、頂点を含むメッシュを特定し、平面毎に、各頂点の合計値、頂点の座標、頂点を含むメッシュを示す情報を座標テーブル３５に格納する。
【００４６】
ソート部４４は、座標テーブル３５に記憶された各平面の頂点のデータを、平面毎に配置位置の順にソートしてＸＹソートデータ３６およびＹＸソートデータ３７を生成する処理部である。例えば、ソート部４４は、平面毎に、座標の配置位置がＸ方向、Ｙ方向の順に優先して、座標テーブル３５に記憶された各頂点のデータの位置を示すポインタをソートしてＸＹソートデータ３６を生成する。また、ソート部４４は、平面毎に、座標の配置位置がＹ方向、Ｘ方向の順に優先して、座標テーブル３５に記憶された各頂点のデータの位置を示すポインタをソートしてＹＸソートデータ３７を生成する。ソート部４４は、生成したＸＹソートデータ３６およびＹＸソートデータ３７を記憶部２２に格納する。
【００４７】
ところで、頂点には、割り当てられた設定値の合計値が、「１」、「２」、「４」、「８」と設定値と同じになる頂点がある。この合計値が設定値と同じになる頂点には、次のように２つの種類がある。図１３は、合計値が設定値になる頂点の状態を説明するための図である。図１３の例は、２つの矩形のメッシュ５５ａ、５５ｂが縦に隣り合っており、メッシュ５５ａがメッシュ５５ｂよりも幅が狭く、メッシュ５５ａ、５５ｂの右側が揃っている場合を示す。メッシュ５５ａの頂点５６ａ、５６ｂ、５６ｃ、５６ｄに対して、それぞれ設定値情報３３に基づいて対応する設定値を割り当てた場合、頂点５６ａは、設定値「１」が割り当てられる。頂点５６ｂは、設定値「２」が割り当てられる。頂点５６ｃは、設定値「４」が割り当てられる。頂点５６ｄは、設定値「８」が割り当てられる。メッシュ５５ｂの頂点５６ｂ、５６ｄに対して、それぞれ設定値情報３３に基づいて対応する設定値を割り当てた場合、頂点５６ｂは、設定値「４」が割り当てられる。頂点５６ｅは、設定値「８」が割り当てられる。それぞれの頂点に対して割り当てた設定値を合計した場合、頂点５６ｂは、２つの設定値、「２」と「４」が割り当てられているため、合計値が「６」となる。一方、頂点５６ａ、５６ｃ、５６ｄ、５６ｅは、それぞれ割り当てられた設定値が１つであるため、合計値が設定値となる。この合計値が設定値となる頂点５６ａ、５６ｃ、５６ｄ、５６ｅには、頂点５６ｃ、５６ｄ、５６ｅに示すように、２つの直線が出合った出隅となる頂点と、頂点５６ａに示すように、２つの直線が出合った入隅となる頂点がある。
【００４８】
図１４は、入隅となる頂点のパターンを示した図である。図１４に示すように、頂点５２ａ〜５２ｈは、それぞれ合計値が設定値になる入隅の頂点である。
【００４９】
判定部４５は、合計値が何れかの設定値である頂点が隣接するメッシュの辺上に位置する入隅の頂点であるか判定する処理部である。判定部４５は、座標テーブル３５から合計値が何れかの設定値である頂点の座標を読み出す。そして、判定部４５は、読み出した頂点の座標から上下に隣接する頂点を特定する。例えば、判定部４５は、ＸＹソートデータ３６において、読み出した頂点のポインタに対し、データ順が前後のポインタを特定し、特定したポインタから頂点を特定する。
【００５０】
例えば、図１０に示すように、ＸＹソートデータ３６には、図８に示すように、Ｘ方向、Ｙ方向の順にソートして頂点の位置を示すポインタが記憶されている。このため、ＸＹソートデータ３６において、読み出した頂点のポインタに対してデータ順が前後のポインタが示す頂点は、読み出した頂点に対して上下に隣接する頂点がある場合、上下に隣接する頂点を示す。例えば、図１０の（３）のポインタに対してデータ順が前後の（６）（１）のポインタは、図８に示すように、（３）の頂点の上下に隣接する（６）（１）の頂点を示す。一方、例えば、図１０の（１）のポインタに対してデータ順が前後の（３）（９）のポインタは、図８に示すように、（１）の頂点の下側に隣接する（３）の頂点およびＸ方向が異なる（９）の頂点を示す。また、例えば、図１０の（９）のポインタに対してデータ順が前後の（１）（７）のポインタは、図８に示すように、（９）の頂点の上側に隣接する（７）の頂点およびＸ方向が異なる（１）の頂点を示す。
【００５１】
判定部４５は、座標テーブル３５に基づき、特定した２つの頂点の座標地位および属するメッシュを比較し、２つの頂点のＸ方向の位置が同じでかつ同じメッシュに属する場合、読み出した頂点を入隅の頂点と判定する。例えば、図１４の頂点５２ｅ〜５２ｈは、上下に隣接する頂点のＸ方向の位置が同じでかつ同じメッシュに属する。よって、判定部４５は、ＸＹソートデータ３６において読み出した頂点のポインタに対してデータ順が前後の頂点のＸ方向の位置が同じでかつ同じメッシュに属するかを判定することにより、図１４の頂点５２ｅ〜５２ｈのパターンの入隅の頂点を判定できる。
【００５２】
また、判定部４５は、読み出した頂点の座標から左右に隣接する頂点を特定する。例えば、判定部４５は、ＹＸソートデータ３７において、読み出した頂点のポインタに対し、データ順が前後のポインタを特定し、特定したポインタから頂点を特定する。
【００５３】
例えば、図１１に示すように、ＹＸソートデータ３７には、図９に示すように、Ｙ方向、Ｘ方向の順にソートして頂点の位置を示すポインタが記憶されている。このため、ＹＸソートデータ３７において、読み出した頂点のポインタに対してデータ順が前後のポインタが示す頂点は、読み出した頂点に対して左右に隣接する頂点がある場合、左右に隣接する頂点を示す。例えば、図１１の（４）のポインタに対してデータ順が前後の（３）（５）のポインタは、図９に示すように、（４）の頂点の左右に隣接する（３）（５）の頂点を示す。一方、例えば、図１１の（５）のポインタに対してデータ順が前後の（４）（１）のポインタは、図９に示すように、（５）の頂点の左側に隣接する（４）の頂点およびＹ方向が異なる（１）の頂点を示す。また、例えば、図１１の（１）のポインタに対してデータ順が前後の（５）（１）のポインタは、図９に示すように、（１）の頂点の右側に隣接する（２）の頂点およびＹ方向が異なる（５）の頂点を示す。
【００５４】
判定部４５は、座標テーブル３５に基づき、特定した２つの頂点の座標地位および属するメッシュを比較し、２つの頂点のＹ方向の位置が同じでかつ同じメッシュに属する場合、読み出した頂点を入隅の頂点と判定する。図１４の頂点５２ａ〜５２ｄは、左右に隣接する頂点のＹ方向の位置が同じでかつ同じメッシュに属する。よって、判定部４５は、ＹＸソートデータ３７において読み出した頂点のポインタに対してデータ順が前後の頂点のＹ方向の位置が同じでかつ同じメッシュに属するかを判定することにより、図１４の頂点５２ａ〜５２ｄのパターンの入隅の頂点を判定できる。
【００５５】
変更部４６は、判定部４５により隣接するメッシュの辺上に位置する入隅の頂点であると判定された頂点の座標テーブル３５に記憶された合計値を変更する処理部である。例えば、変更部４６は、入隅の頂点であると判定された頂点の合計値を、３つのメッシュの頂点が重なり合って同様の入隅の状態となった頂点を示す合計値に変更する。例えば、図１４に示すように、変更部４６は、合計値が「１」であり、左右に隣接する頂点が同じメッシュに属する頂点５２ａの合計値を「１３」に変更する。また、変更部４６は、合計値が「２」であり、左右に隣接する頂点が同じメッシュに属する頂点５２ｂの合計値を「１４」に変更する。また、変更部４６は、合計値が「４」であり、左右に隣接する頂点が同じメッシュに属する頂点５２ｃの合計値を「７」に変更する。また、変更部４６は、合計値が「８」であり、左右に隣接する頂点が同じメッシュに属する頂点５２ｄの合計値を「１１」に変更する。また、変更部４６は、合計値が「１」であり、上下に隣接する頂点が同じメッシュに属する頂点５２ｅの合計値を「７」に変更する。また、変更部４６は、合計値が「２」であり、上下に隣接する頂点が同じメッシュに属する頂点５２ｆの合計値を「１１」に変更する。また、変更部４６は、合計値が「４」であり、上下に隣接する頂点が同じメッシュに属する頂点５２ｇの合計値を「１３」に変更する。また、変更部４６は、合計値が「８」であり、上下に隣接する頂点が同じメッシュに属する頂点５２ｈの合計値を「１４」に変更する。
【００５６】
ところで、合計値が「３」、「６」、「９」、「１２」となる頂点は、図４に示す状態情報３４の状態に示すように、頂点が２並んだ矩形の間にあり、解析対象のモデルの形状をベクトルデータとして記憶する場合、不要な点である。また、合計値が「１５」となる頂点は、図４に示す状態情報３４の状態に示すように、解析対象のモデル内に内包された点であり、解析対象のモデルの形状を特定する際に不要な点である。
【００５７】
削除部４７は、解析対象のモデルの形状を特定する際に不要な頂点を座標テーブル３５、ＸＹソートデータ３６およびＹＸソートデータ３７から削除する処理部である。例えば、削除部４７は、座標テーブル３５、ＸＹソートデータ３６およびＹＸソートデータ３７から合計値が「３」、「６」、「９」、「１２」、「１５」となる頂点のデータを削除する。例えば、図７に示すように、（１）〜（１３）の頂点のデータが座標テーブル３５、ＸＹソートデータ３６およびＹＸソートデータ３７に記憶されていた場合、削除部４７は、図１５に示すように、（３）（８）の頂点のデータを削除する。図１５は、図７から不要な頂点を削除した結果を示す図である。これにより、データが座標テーブル３５、ＸＹソートデータ３６およびＹＸソートデータ３７には、（１）、（２）、（４）〜（７）、（９）〜（１３）の各頂点のデータが記憶される。図１６は、図６から不要な頂点のデータを削除した座標テーブルの構成例を示す図である。図１７は、図１０から不要な頂点のデータを削除したＸＹソートデータの構成例を示す図である。図１８は、図１１から不要な頂点のデータを削除したＹＸソートデータの構成例を示す図である。
【００５８】
特定部４８は、解析対象のモデルの輪郭の形状を特定する処理部である。例えば、特定部４８は、２次元データ３２から平面毎に要素を順に選択する。そして、特定部４８は、選択した要素のメッシュが１つの場合、選択した要素の１つメッシュを輪郭と特定する。一方、特定部４８は、選択した要素のメッシュが１つでない場合、２次元データ３２から選択した要素の各メッシュを特定する。特定部４８は、特定した各メッシュの頂点のうち、座標テーブル３５に記憶された合計値が５、１０以外の何れかの頂点を選択する。そして、特定部４８は、選択した頂点を開始点とする。また、特定部４８は、選択した頂点を処理対象の頂点として、状態情報３４に基づき、処理対象の頂点の合計値に応じた輪郭の検索方向を特定する。ここで、合計値が５、１０の頂点は、１つ前の頂点から検索されてきた検索方向が定まらないと、検索方向が特定できない。このため、合計値が５、１０の頂点を開始点の対象から外している。
【００５９】
特定部４８は、処理対象の頂点から検索方向に検索を行って次の頂点を特定する。特定部４８は、次の頂点が開始点となった場合、検索により輪郭が特定されたため、検索で通過した頂点の座標から輪郭の形状を示すベクトルデータを生成し、生成したデータを表示用データ３８として記憶部２２に格納する。特定部４８は、選択した要素の各メッシュの頂点に、輪郭が特定できていない頂点がある場合、輪郭が特定できていない頂点を選択し、選択した頂点を開始点として輪郭の特定を繰り返す。一方、特定部４８は、特定された各メッシュの全ての頂点について輪郭が特定できた場合、選択した要素の輪郭が特定できたものとして、次の要素を選択し、選択した要素の輪郭の特定を繰り返す。
【００６０】
例えば、頂点が図１５の場合を例にして、特定部４８が輪郭を検索する流れの一例を説明する。ここで、図１６に示す座標テーブル３５には、図１５の各頂点のＸ，Ｙ座標、合計値、頂点が属するメッシュが記憶されている。図１７に示すＸＹソートデータ３６には、図１６の各頂点のデータへのポインタがＸ方向、Ｙ方向の順に優先してソートされて格納されている。図１８に示すＹＸソートデータ３７には、図１６の各頂点のデータへのポインタがＹ方向、Ｘ方向の順に優先してソートされて格納されている。
【００６１】
図１５に示すメッシュＡ〜Ｅは、同じ要素を離散化したメッシュであるものとする。特定部４８は、合計値が５、１０以外の何れかの頂点を選択する。図１５の例では、図１６に示すように合計値が５、１０以外の（１）、（２）、（４）〜（７）、（９）、（１１）〜（１３）の頂点から選択される。例えば、特定部４８は、（１）の頂点を選択する。特定部４８は、（１）の頂点を開始点とする。特定部４８は、（１）の頂点を処理対象の頂点として、状態情報３４に基づき、（１）の頂点の合計値に応じた輪郭の検索方向を特定する。図１６に示すように、（１）の頂点の合計値は、「８」である。このため、検索方向は、図４に示す状態情報３４から合計値が「４」に対応する「下方向」と特定される。特定部４８は、下方向に次の頂点の検索を行って次の頂点を特定する。
【００６２】
ここで、特定部４８は、下方向に次の頂点を検索する場合、ＸＹソートデータ３６から処理対象の頂点へのポインタに対し、データ順が前のポインタを特定し、特定したポインタから頂点を特定する。また、特定部４８は、上方向に次の頂点を検索する場合、ＸＹソートデータ３６から処理対象の頂点へのポインタに対し、データ順が後のポインタを特定し、特定したポインタから頂点を特定する。また、特定部４８は、左方向に次の頂点を検索する場合、ＹＸソートデータ３７から処理対象の頂点へのポインタに対し、データ順が前のポインタを特定し、特定したポインタから頂点を特定する。また、特定部４８は、右方向に次の頂点を検索する場合、ＹＸソートデータ３７から処理対象の頂点へのポインタに対し、データ順が後のポインタを特定し、特定したポインタから頂点を特定する。
【００６３】
例えば、特定部４８は、図１７に示すＸＹソートデータ３６から（１）の頂点へのポインタに対し、データ順が前の（６）の頂点へのポインタを特定し、特定したポインタから（６）の頂点を特定する。
【００６４】
特定部４８は、（６）の頂点が開始点である（１）の頂点ではないため、（６）の頂点を処理対象の頂点として、状態情報３４に基づき、（６）の頂点の合計値に応じた輪郭の検索方向を特定する。（６）の頂点は、図１６に示すように合計値が「１」であるため、図４に示す状態情報３４から検索方向が「右方向」と特定される。特定部４８は、図１８に示すＹＸソートデータ３７から（６）の頂点へのポインタに対し、データ順が後の（７）の頂点へのポインタを特定し、特定したポインタから（７）の頂点を特定する。
【００６５】
特定部４８は、（７）の頂点が開始点である（１）の頂点ではないため、（７）の頂点を処理対象の頂点として、状態情報３４に基づき、（７）の頂点の合計値に応じた輪郭の検索方向を特定する。（７）の頂点は、図１６に示すように合計値が「１１」であるため、図４に示す状態情報３４から検索方向が「下方向」と特定される。特定部４８は、図１７に示すＸＹソートデータ３６から（７）の頂点へのポインタに対し、データ順が前の（９）の頂点へのポインタを特定し、特定したポインタから（９）の頂点を特定する。
【００６６】
特定部４８は、（９）の頂点が開始点である（１）の頂点ではないため、（９）の頂点を処理対象の頂点として、状態情報３４に基づき、（９）の頂点の合計値に応じた輪郭の検索方向を特定する。（９）の頂点は、図１６に示すように合計値が「１」であるため、図４に示す状態情報３４から検索方向が「右方向」と特定される。特定部４８は、図１８に示すＹＸソートデータ３７から（９）の頂点へのポインタに対し、データ順が後の（１０）の頂点へのポインタを特定し、特定したポインタから（１０）の頂点を特定する。
【００６７】
特定部４８は、（１０）の頂点が開始点である（１）の頂点ではないため、（１０）の頂点を処理対象の頂点として、状態情報３４に基づき、（１０）の頂点の合計値に応じた輪郭の検索方向を特定する。（１０）の頂点は、図１６に示すように合計値が「１０」である。図４に示す状態情報３４では、合計値が「１０」の検索方向は、検索されてきた方向が「右」からの場合、「下方向」であり、検索されてきた方向が「左」からの場合、「上方向」とされている。（１０）の頂点は、左側の（９）の頂点から検索されてきたため、検索されてきた方向が「左」である。このため、検索方向が「上方向」と特定される。特定部４８は、図１７に示すＸＹソートデータ３６から（１０）の頂点へのポインタに対し、データ順が後の（５）の頂点へのポインタを特定し、特定したポインタから（５）の頂点を特定する。
【００６８】
特定部４８は、（５）の頂点が開始点である（１）の頂点ではないため、（５）の頂点を処理対象の頂点として、状態情報３４に基づき、（５）の頂点の合計値に応じた輪郭の検索方向を特定する。（５）の頂点は、図１６に示すように合計値が「４」であるため、図４に示す状態情報３４から検索方向が「左方向」と特定される。特定部４８は、図１８に示すＹＸソートデータ３７から（５）の頂点へのポインタに対し、データ順が前の（４）の頂点へのポインタを特定し、特定したポインタから（４）の頂点を特定する。
【００６９】
特定部４８は、（４）の頂点が開始点である（１）の頂点ではないため、（４）の頂点を処理対象の頂点として、状態情報３４に基づき、（４）の頂点の合計値に応じた輪郭の検索方向を特定する。（４）の頂点は、図１６に示すように合計値が「１４」であるため、図４に示す状態情報３４から検索方向が「上方向」と特定される。特定部４８は、図１７に示すＸＹソートデータ３６から（４）の頂点へのポインタに対し、データ順が後の（２）の頂点へのポインタを特定し、特定したポインタから（２）の頂点を特定する。
【００７０】
特定部４８は、（２）の頂点が開始点である（１）の頂点ではないため、（２）の頂点を処理対象の頂点として、状態情報３４に基づき、（２）の頂点の合計値に応じた輪郭の検索方向を特定する。（２）の頂点は、図１６に示すように合計値が「４」であるため、図４に示す状態情報３４から検索方向が「左方向」と特定される。特定部４８は、図１８に示すＹＸソートデータ３７から（２）の頂点へのポインタに対し、データ順が前の（１）の頂点へのポインタを特定し、特定したポインタから（１）の頂点を特定する。
【００７１】
特定部４８は、特定した（１）の頂点が開始点である（１）の頂点であるため、検索した経路の（１）、（６）、（７）、（９）、（１０）、（５）、（４）、（２）の各頂点の座標から輪郭の形状を示すベクトルデータを生成して記憶部２２に格納する。
【００７２】
また、図１５に示す例の場合、（１１）〜（１３）の頂点は、輪郭が特定できていない。特定部４８は、輪郭が特定できていない（１１）〜（１３）の頂点の何れかを選択し、選択した頂点を開始点として輪郭の特定を繰り返す。図１５には、このようにして特定された２つの輪郭を示す多角形の頂点の座標が示されている。
【００７３】
出力部４９は、表示部２１への画像の出力を行う処理部である。例えば、出力部４９は、表示用データ３８に基づいて、特定した輪郭によるモデル形状の画像を表示部２１へ出力する。
【００７４】
ユーザは、表示部２１にされた輪郭によるモデル形状を元のモデル形状を参照しながら、モデルが適切に分割されているか確認を行う。
【００７５】
ここで、表示部２１に表示される画像について説明する。図１９は、ＦＴＤＴ法による解析を行う要素の一例を示す図である。図１９の例では、解析を行う要素として、基板に配線７０が配置されている。図２０は、要素をメッシュにより離散化した結果の一例を示す図である。図２０の例では、配線７０がメッシュにより２２個の矩形に分割されている。図２１は、離散化した要素の輪郭を特定した結果の一例を示す図である。図２１の例では、メッシュにより離散化された配線７０の輪郭が示されている。
【００７６】
図２０に示す配線７０をメッシュにより離散化した画像を表示部２１に表示する場合、配線７０がメッシュにより２２個の矩形の描画に用いる頂点は８８個となる。一方、図２１に配線７０の輪郭の画像を表示部２１に表示する場合、配線７０が１個の多角形になり、描画に用いる頂点は、メッシュで表示する場合より２４個に削減される。
【００７７】
このように、輪郭特定装置１０は、輪郭を特定して表示することにより、描画に用いる頂点が減り、描画する線の数も減るため、描画の負荷を軽減できる。
【００７８】
一例として、回路設定が行われたプリント基板をＦＴＤＴ法による電磁界解析を行うためにメッシュで離散化した場合、メッシュの数が９７０，７９２，３０８個であった。この基板を所定の面を表示した場合、表示する辺の数が１６，４７０，８５６個であった。この同じ面に対して輪郭を特定して表示を行った場合、表示する辺の数が４，１４８，２６１個となり、表示する辺の数が７４．８％削減された。また、表示に要するメモリも３０．７Ｍ削減された。図２２は、メッシュで離散化した基板の所定の面を表示した一例を示す図である。図２２の例は、配線の状態を判別しやすくするため、基板の一部を拡大している。図２３は、図２２と同じ面に対して輪郭を特定して表示した一例を示す図である。図２３の例は、図２２と同じ部分を示している。図２２に示すように、メッシュで離散化する場合、配線７０の斜めに配置された部分は、非常に多数のメッシュに分割される。一方、図２３に示すように、輪郭を特定して表示した場合、配線７０の描画に用いる頂点が減り、描画する線の数も減るため、描画の負荷を軽減される。
【００７９】
［処理の流れ］
次に、本実施例に係る輪郭特定装置１０により、メッシュデータにより示されるモデル形状の輪郭を特定する輪郭特定処理の流れを説明する。図２４は、輪郭特定処理の手順を示すフローチャートである。この輪郭特定処理は、例えば、入力部２０からメッシュデータにより示されるモデル形状の輪郭の特定を指示する所定操作が行われたタイミングで実行される。なお、輪郭特定処理は、ＣＡＤデータ３０に対する離間化処理に引き続き実行されてもよい。
【００８０】
図２４に示すように、生成部４１は、メッシュデータ３１により示されるメッシュによるモデル形状を所定の平面で平面化した２次元データを生成する（Ｓ１０）。例えば、生成部４１は、基板が複数層で構成されている場合、それぞれの層毎にモデル形状を平面化した２次元データを生成する。特定部４８は、２次元データ３２から輪郭を特定する処理対象の平面を選択する（Ｓ１１）。また、特定部４８は、選択した処理対象の平面から輪郭を特定する処理対象の要素を選択する（Ｓ１２）。特定部４８は、選択した処理対象の要素のメッシュが１つであるか否かを判定する（Ｓ１３）。メッシュが１つである場合（Ｓ１３肯定）、特定部４８は、１つメッシュを輪郭と特定し（Ｓ１４）、後述するＳ１９へ移行する。
【００８１】
一方、処理対象の要素のメッシュが１つではない場合（Ｓ１３否定）、割当部４２、算出部４３およびソート部４４が、輪郭を特定するため後述する準備処理を行う（Ｓ１５）。準備処理の終了後、判定部４５および変更部４６が、後述する入隅点検出処理を行う（Ｓ１６）。入隅点検出処理の終了後、削除部４７は、不要な頂点を座標テーブル３５、ＸＹソートデータ３６およびＹＸソートデータ３７から削除する（Ｓ１７）。そして、特定部４８が、輪郭を抽出するため後述する抽出処理を行う（Ｓ１８）。
【００８２】
特定部４８は、処理対象の平面の全ての要素に対する輪郭の特定が完了したか否かを判定する（Ｓ１９）。全ての要素に対する輪郭の特定が完了していない場合（Ｓ１９否定）、上述のＳ１２へ移行する。一方、全ての要素に対する輪郭の特定が完了した場合（Ｓ１９肯定）、特定部４８は、２次元データ３２の全ての平面に対する処理が完了したか否かを判定する（Ｓ２０）。全ての平面に対する処理が完了していない場合（Ｓ２０否定）、上述のＳ１１へ移行する。一方、全ての平面に対する処理が完了した場合（Ｓ２０肯定）、処理を終了する。
【００８３】
次に、本実施例に係る準備処理の流れについて説明する。図２５は、準備処理の手順を示すフローチャートである。この準備処理は、図２４に示す輪郭特定処理のＳ１５から呼び出されて実行される。
【００８４】
図２５に示すように、割当部４２は、処理対象の要素の全てのメッシュに対する処理が完了したか否かを判定する（Ｓ３０）。全てのメッシュに対する処理が完了していない場合（Ｓ３０否定）、割当部４２は、未処理のメッシュを１つ選択する（Ｓ３１）。割当部４２は、変数ｎを１に初期化する（Ｓ３２）。割当部４２は、変数ｎが１であるか否かを判定する（Ｓ３３）。変数ｎが１である場合（Ｓ３３肯定）、割当部４２は、選択したメッシュの左下の頂点を処理対象の頂点と特定する（Ｓ３４）。一方、変数ｎが１ではない場合（Ｓ３３否定）、割当部４２は、変数ｎが２であるか否かを判定する（Ｓ３５）。変数ｎが２である場合（Ｓ３５肯定）、割当部４２は、選択したメッシュの右下の頂点を処理対象の頂点と特定する（Ｓ３６）。一方、変数ｎが２ではない場合（Ｓ３５否定）、割当部４２は、変数ｎが３であるか否かを判定する（Ｓ３７）。変数ｎが３である場合（Ｓ３７肯定）、割当部４２は、選択したメッシュの右上の頂点を処理対象の頂点と特定する（Ｓ３８）。一方、変数ｎが３ではない場合（Ｓ３７否定）、割当部４２は、選択したメッシュの左上の頂点を処理対象の頂点と特定する（Ｓ３９）。
【００８５】
割当部４２は、設定値情報３３から、処理対象とされた頂点に対応する設定値を読み出す（Ｓ４０）。算出部４３は、処理対象とされた頂点の座標で座標テーブル３５を検索する（Ｓ４１）。算出部４３は、検索の結果、座標テーブル３５に同じ座標のデータがあるか否かを判定する（Ｓ４２）。同じ座標のデータがない場合（Ｓ４２否定）、算出部４３は、処理対象とされた頂点の設定値、頂点の座標、頂点を含むメッシュを示す情報を座標テーブル３５に追加する（Ｓ４３）。一方、同じ座標のデータがある場合（Ｓ４２肯定）、算出部４３は、既に記憶された同じ座標のデータに処理対象とされた頂点の設定値を加算する（Ｓ４４）。
【００８６】
割当部４２は、変数ｎが４であるか否かを判定する（Ｓ４５）。変数ｎが４ではない場合（Ｓ４５否定）、割当部４２は、変数ｎの値に１を加算し（Ｓ４６）、上述のＳ３３へ移行する。一方、変数ｎが４である場合（Ｓ４５肯定）、上述のＳ３０へ移行する。
【００８７】
一方、全てのメッシュに対する処理が完了した場合（Ｓ３０肯定）、ソート部４４は、頂点の配置位置の順に座標テーブル３５のデータをソートしてＸＹソートデータ３６およびＹＸソートデータ３７を生成し（Ｓ４７）、処理を終了して呼び出し元の処理へ戻る。
【００８８】
次に、本実施例に係る入隅点検出処理の流れについて説明する。図２６は、入隅点検出処理の手順を示すフローチャートである。この入隅点検出処理は、図２４に示す輪郭特定処理のＳ１６から呼び出されて実行される。
【００８９】
図２６に示すように、判定部４５は、ＸＹソートデータ３６の順に頂点を選択する（Ｓ５０）。判定部４５は、選択した頂点が座標テーブル３５で合計値が何れかの設定値となる頂点であるか否かを判定する（Ｓ５１）。合計値が何れかの設定値となる頂点ではない場合（Ｓ５１否定）、後述するＳ５５へ移行する。一方、合計値が何れかの設定値となる頂点である場合（Ｓ５１肯定）、ＸＹソートデータ３６に基づき、選択した頂点の左右の頂点を特定する（Ｓ５２）。判定部４５は、左右の頂点のＹ方向の位置が同じでかつ同じメッシュに属するか否かを判定する（Ｓ５３）。左右の頂点のＹ方向の位置が異なるまたは同じメッシュに属さない場合（Ｓ５３否定）、後述するＳ５５へ移行する。一方、左右の頂点のＹ方向の位置が同じでかつ同じメッシュに属する場合（Ｓ５３肯定）、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値を次のように変更する。すなわち、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値が１の場合、合計値を１３に変更する。また、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値が２の場合、合計値を１４に変更する。また、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値が４の場合、合計値を７に変更する。また、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値が８の場合、合計値を１１に変更する（Ｓ５４）。
【００９０】
判定部４５は、ＸＹソートデータ３６の順に全ての頂点を選択が完了したか否かを判定する（Ｓ５５）。全ての頂点の選択が完了していない場合（Ｓ５５否定）、上述のＳ５０へ移行する。全ての頂点を選択が完了した場合（Ｓ５５肯定）、判定部４５は、ＹＸソートデータ３７の順に頂点を選択する（Ｓ５６）。
【００９１】
判定部４５は、選択した頂点が座標テーブル３５で合計値が何れかの設定値となる頂点であるか否かを判定する（Ｓ５７）。合計値が何れかの設定値となる頂点ではない場合（Ｓ５７否定）、後述するＳ６１へ移行する。一方、合計値が何れかの設定値となる頂点である場合（Ｓ５７肯定）、ＹＸソートデータ３７に基づき、選択した頂点の上下の頂点を特定する（Ｓ５８）。判定部４５は、上下の頂点のＸ方向の位置が同じでかつ同じメッシュに属するか否かを判定する（Ｓ５９）。上下の頂点のＸ方向の位置が異なるまたは同じメッシュに属さない場合（Ｓ５９否定）、後述するＳ６１へ移行する。一方、上下の頂点のＸ方向の位置が同じでかつ同じメッシュに属する場合（Ｓ５９肯定）、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値を次のように変更する（Ｓ６０）。すなわち、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値が１の場合、合計値を７に変更する。また、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値が２の場合、合計値を１１に変更する。また、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値が４の場合、合計値を１３に変更する。また、変更部４６は、選択された頂点の座標テーブル３５に記憶された合計値が８の場合、合計値を１４に変更する。
【００９２】
判定部４５は、ＹＸソートデータ３７の順に全ての頂点を選択が完了したか否かを判定する（Ｓ６１）。全ての頂点を選択が完了していない場合（Ｓ６１否定）、上述のＳ５６へ移行する。全ての頂点を選択が完了した場合（Ｓ６１肯定）、処理を終了して呼び出し元の処理へ戻る。
【００９３】
次に、本実施例に係る輪郭を抽出する抽出処理の流れについて説明する。図２７は、抽出処理の手順を示すフローチャートである。この抽出処理は、図２７に示す輪郭特定処理のＳ１８から呼び出されて実行される。
【００９４】
図２７に示すように、特定部４８は、座標テーブル３５に、処理対象の要素の各メッシュの頂点に、合計値が５、１０以外の未処理の頂点があるか否かを判定する（Ｓ７０）。ここで、処理済みの頂点は、後述するＳ８２において合計値を−１に更新される。このため、特定部４８は、処理対象の要素の各メッシュの頂点に、合計値が−１、５、１０以外の頂点があるか否かを判定する。合計値が−１、５、１０以外の頂点がない場合（Ｓ７０否定）、処理対象の要素の各メッシュの全ての頂点の輪郭が特定できたため、処理を終了して呼び出し元の処理へ戻る。
【００９５】
合計値が−１、５、１０以外の頂点がある場合（Ｓ７０肯定）、特定部４８は、処理対象の要素の各メッシュの頂点から合計値が−１、５、１０以外の頂点を選択する（Ｓ７１）。特定部４８は、選択した頂点を開始点に設定する（Ｓ７２）。特定部４８は、選択した頂点を、処理対象の頂点として、状態情報３４に基づき、処理対象の頂点の合計値に応じた輪郭の検索方向を特定する（Ｓ７３）。
【００９６】
特定部４８は、輪郭の検索方向が下方向であるか否かを判定する（Ｓ７４）。検索方向が下方向である場合（Ｓ７４肯定）、特定部４８は、ＸＹソートデータ３６から処理対象の頂点へのポインタに対し、データ順が前のポインタを特定し、特定したポインタから頂点を特定する（Ｓ７５）。
【００９７】
一方、検索方向が下方向ではない場合（Ｓ７４否定）、特定部４８は、検索方向が上方向であるか否かを判定する（Ｓ７６）。検索方向が上方向である場合（Ｓ７６肯定）、特定部４８は、ＸＹソートデータ３６から処理対象の頂点へのポインタに対し、データ順が後のポインタを特定し、特定したポインタから頂点を特定する（Ｓ７７）。
【００９８】
一方、検索方向が上方向ではない場合（Ｓ７６否定）、特定部４８は、検索方向が左方向であるか否かを判定する（Ｓ７８）。検索方向が左方向である場合（Ｓ７８肯定）、特定部４８は、ＹＸソートデータ３７から処理対象の頂点へのポインタに対し、データ順が前のポインタを特定し、特定したポインタから頂点を特定する（Ｓ７９）。
【００９９】
一方、検索方向が左方向ではない場合（Ｓ７８否定）、検索方向が残った右方向であるため、特定部４８は、ＹＸソートデータ３７から処理対象の頂点へのポインタに対し、データ順が後のポインタを特定し、特定したポインタから頂点を特定する（Ｓ８０）。
【０１００】
特定部４８は、処理対象の頂点の合計値が５または１０であるか判定する（Ｓ８１）。処理対象の頂点の合計値が５または１０ではない場合（Ｓ８１否定）、特定部４８は、座標テーブル３５の処理対象の頂点の合計値を−１に更新する。一方、処理対象の頂点の合計値が５または１０である場合（Ｓ８１肯定）、合計値の更新を行わず、Ｓ８３へ移行する。これは、合計値が５または１０の頂点は、２つのメッシュが点接触している頂点であり、輪郭を求めるために２度、合計値が参照されるためである。
【０１０１】
特定部４８は、特定した頂点が開始点であるか否かを判定する（Ｓ８３）。特定した頂点が開始点ではない場合（Ｓ８３否定）、特定部４８は、特定した頂点を処理対象の頂点に設定し（Ｓ８４）、上述のＳ７３へ移行する。特定した頂点が開始点である場合（Ｓ８３肯定）、開始点以降に通過した頂点の座標から輪郭の形状を示すベクトルデータを生成し、生成したデータを表示用データ３８として記憶部２２に格納し、上述のＳ７０へ移行する。
【０１０２】
［実施例１の効果］
本実施例に係る輪郭特定装置１０は、矩形の４つの頂点にそれぞれ対応して、それぞれを組み合わせた組み合わせ毎の合計値が異なるように定めた設定値を示す設定値情報および前記合計値毎の輪郭の状態を示す状態情報３４を記憶部２２に記憶する。輪郭特定装置１０は、矩形のメッシュで分割された解析対象のモデルのメッシュの各頂点に対して設定値情報に基づき、対応する設定値を割り当てる。輪郭特定装置１０は、割り当てられた設定値を頂点毎に合計した合計値を算出する。そして、輪郭特定装置１０は、状態情報に基づき、頂点毎の合計値から解析対象のモデルの輪郭の形状を特定する。このように、輪郭特定装置１０は、解析対象のモデルのメッシュの各頂点に対して設定値を割り当て、頂点毎に割り当てられた設定値を合計した合計値を求めるという簡単な演算で、合計値から頂点の状態を特定でき、頂点の状態から輪郭の形状を特定できる。よって、輪郭特定装置１０は、特定した輪郭の形状に従って解析対象のモデルの輪郭の描画を行うことにより、描画の負荷を軽減できる。
【０１０３】
また、本実施例に係る輪郭特定装置１０は、合計値毎に輪郭の検索方向を示す方向情報をさらに記憶する。輪郭特定装置１０は、方向情報に基づき、頂点から当該頂点の合計値に応じた検索方向に輪郭の検索を行って前記解析対象のモデルの外形の頂点となる輪郭点を特定する。そして、輪郭特定装置１０は、ベクトルデータとして解析対象のモデルの輪郭の形状を特定する。よって、輪郭特定装置１０は、ベクトルデータとして解析対象のモデルの輪郭の形状を特定するため、解析対象のモデルを識別して色を変えるなどの描画が行いやすくなる。
【０１０４】
また、本実施例に係る輪郭特定装置１０は、算出された合計値が何れかの設定値である頂点が隣接するメッシュの辺上に位置する入隅の頂点であるか判定する。そして、輪郭特定装置１０は、隣接するメッシュの辺上に位置する入隅の頂点であると判定された頂点の合計値を、３つのメッシュの頂点が重なり合って同様の入隅の状態となった頂点を示す合計値に変更する。よって、輪郭特定装置１０は、頂点が隣接するメッシュの辺上に位置する入隅の頂点に対して個別に輪郭を特定する処理を行う必要がなく、３つのメッシュの頂点が重なり合った入隅の頂点と同様の処理で輪郭を特定できる。
【０１０５】
また、本実施例に係る輪郭特定装置１０は、複数のレイヤで構成された基板の解析対象のモデルを直交格子のメッシュにより離散化する。輪郭特定装置１０は、離散化された基板を所定の平面で平面化した２次元データを生成する。そして、輪郭特定装置１０は、２次元データ３２により示される平面上の解析対象のモデルを分割した矩形のメッシュの各頂点に対して設定値情報に基づき、対応する設定値を割り当てる。よって、輪郭特定装置１０は、基板を所定の平面での解析対象のモデルの輪郭の形状を特定することができる。
【実施例２】
【０１０６】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１０７】
例えば、上記の実施例では、状態情報３４に合計値毎に検索方向が記憶させた場合について説明したが、開示の装置はこれに限定されない。例えば、合計値毎に検索方向を別なデータとして記憶させてもよい。また、状態情報３４の図４に示した検索方向も一例であり、開示の装置はこれに限定されない。図４に示した検索方向は、輪郭を左回りで特定するように定められているが、輪郭を右回りで特定するように定めてもよい。
【０１０８】
また、上記の実施例では、頂点から頂点の合計値に応じた検索方向に輪郭の検索を行って前記解析対象のモデルの外形の頂点となる輪郭点を特定する場合について説明したが、開示の装置はこれに限定されない。例えば、合計値毎に輪郭の形状を示すイメージデータを記憶し、各頂点の合計値に応じたイメージデータにより輪郭の描画を行うものとしてもよい。
【０１０９】
また、上記の実施例では、座標テーブル３５、ＸＹソートデータ３６およびＹＸソートデータ３７から合計値が「３」、「６」、「９」、「１２」、「１６」となる頂点のデータを削除する場合について説明したが、開示の装置はこれに限定されない。例えば、合計値が「３」、「６」、「９」、「１２」の頂点は、検索方向が前の頂点と変わらないものとして次の頂点を検索することにより、輪郭を特定できる。また、合計値が−１、５、１０、１６以外の頂点から開始点を選択することにより、輪郭を検索する際に、合計値が１６の頂点が処理対象の頂点となることも抑制できる。
【０１１０】
また、上記の実施例では、ソート部４４が座標テーブル３５に記憶された各平面の頂点のデータを、平面毎に配置位置の順にソートしてＸＹソートデータ３６およびＹＸソートデータ３７を生成する場合について説明したが、開示の装置はこれに限定されない。例えば、座標テーブル３５がＸ方向、Ｙ方向の順またはＹ方向、Ｘ方向の順にソートして頂点のデータが格納されている場合、ソート部４４がソートされていない側のソードデータのみを生成してもよい。
【０１１１】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、輪郭特定装置１０の離散化部４０、生成部４１、割当部４２、算出部４３、ソート部４４、判定部４５、変更部４６、削除部４７、特定部４８、出力部４９の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。また、各処理部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の輪郭特定装置１０の機能を実現するようにしてもよい。
【０１１２】
［輪郭特定プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図２８を用いて、上記の実施例と同様の機能を有する輪郭特定プログラムを実行するコンピュータの一例について説明する。
【０１１３】
図２８は、輪郭特定プログラムを実行するコンピュータの一例について説明するための図である。図２８に示すように、コンピュータ２００は、操作部２１０と、ディスプレイ２２０と、通信部２３０とを有する。さらに、このコンピュータ２００は、ＣＰＵ２５０と、ＲＯＭ２６０と、ＨＤＤ２７０と、ＲＡＭ２８０と有する。これら２１０〜２８０の各部はバス２４０を介して接続される。
【０１１４】
ＨＤＤ２７０には、離散化部４０、生成部４１、割当部４２、算出部４３、ソート部４４、判定部４５、変更部４６、削除部４７、特定部４８、出力部４９と同様の機能を発揮する輪郭特定プログラム２７０ａが予め記憶される。この輪郭特定プログラム２７０ａについては、実施例１で示した各構成要素と同様、適宜統合又は分離しても良い。すなわち、ＨＤＤ２７０に格納される各データは、常に全てのデータがＨＤＤ２７０に格納される必要はなく、処理に必要なデータのみがＨＤＤ２７０に格納されれば良い。
【０１１５】
そして、ＣＰＵ２５０が、輪郭特定プログラム２７０ａをＨＤＤ２７０から読み出してＲＡＭ２８０に展開する。これによって、図２８に示すように、輪郭特定プログラム２７０ａは、輪郭特定プロセス２８０ａとして機能する。この輪郭特定プロセス２８０ａは、ＨＤＤ２７０から読み出した各種データを適宜ＲＡＭ２８０上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。輪郭特定プロセス２８０ａは、離散化部４０、生成部４１、割当部４２、算出部４３、ソート部４４、判定部４５、変更部４６、削除部４７、特定部４８、出力部４９にて実行される処理、例えば図２４〜図２７に示す処理を含む。すなわち、輪郭特定プロセス２８０ａは、離散化部４０、生成部４１、割当部４２、算出部４３、ソート部４４、判定部４５、変更部４６、削除部４７、特定部４８、出力部４９と同様の動作を実行する。なお、ＣＰＵ２５０上で仮想的に実現される各処理部は、常に全ての処理部がＣＰＵ２５０上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【０１１６】
なお、上記の輪郭特定プログラム２７０ａについては、必ずしも最初からＨＤＤ２７０やＲＯＭ２６０に記憶させておく必要はない。例えば、コンピュータ２００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ２００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ２００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ２００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【０１１７】
１０    輪郭特定装置
２０    入力部
２１    表示部
２２    記憶部
２３    制御部
３０    ＣＡＤデータ
３１    メッシュデータ
３２    ２次元データ
３３    設定値情報
３４    状態情報
３５    座標テーブル
３６    ＸＹソートデータ
３７    ＹＸソートデータ
３８    表示用データ
４０    離散化部
４１    生成部
４２    割当部
４３    算出部
４４    ソート部
４５    判定部
４６    変更部
４７    削除部
４８    特定部
４９    出力部
【図１】
0005825173.tif 000002
【図２】
0005825173.tif 000003
【図３】
0005825173.tif 000004
【図４】
0005825173.tif 000005
【図５】
0005825173.tif 000006
【図６】
0005825173.tif 000007
【図７】
0005825173.tif 000008
【図８】
0005825173.tif 000009
【図９】
0005825173.tif 000010
【図１０】
0005825173.tif 000011
【図１１】
0005825173.tif 000012
【図１２】
0005825173.tif 000013
【図１３】
0005825173.tif 000014
【図１４】
0005825173.tif 000015
【図１５】
0005825173.tif 000016
【図１６】
0005825173.tif 000017
【図１７】
0005825173.tif 000018
【図１８】
0005825173.tif 000019
【図１９】
0005825173.tif 000020
【図２０】
0005825173.tif 000021
【図２１】
0005825173.tif 000022
【図２２】
0005825173.tif 000023
【図２３】
0005825173.tif 000024
【図２４】
0005825173.tif 000025
【図２５】
0005825173.tif 000026
【図２６】
0005825173.tif 000027
【図２７】
0005825173.tif 000028
【図２８】
0005825173.tif 000029