以下、図面を参照しながら、実施形態を詳細に説明する。
図1は、実施形態の接合判定装置の機能的構成例を示している。図1の接合判定装置101は、記憶部111、処理部112、及び出力部113を含む。
記憶部111は、3次元アセンブリモデルに含まれる複数の部品モデルの形状データを記憶する。処理部112は、記憶部111に記憶されている形状データを用いて、実施形態に係る処理を実行する機能的なユニットである。
図2は、図1の接合判定装置101が行う接合判定処理の例を示すフローチャートである。まず、処理部112は、記憶部111を参照し、複数の部品モデルのうち第1の導電性部品モデルと第2の導電性部品モデルとが、第1の導電性部品モデルに含まれる複数の凸部により接触している場合、2つの凸部の間隔を求める(ステップ201)。このとき、処理部112は、第1の導電性部品モデルの形状データに基づいて、2つの凸部の間隔を求める。
そして、出力部113は、2つの凸部の間隔が閾値より小さい場合、第1の導電性部品モデルと第2の導電性部品モデルとが接合していることを示す判定結果を出力する(ステップ202)。
出力部113は、例えば、表示装置、プリンタ、又はネットワーク接続装置である。出力部113が表示装置である場合、出力部113は、判定結果を画面上に表示し、出力部113がプリンタである場合、出力部113は、判定結果を紙媒体に印刷して出力する。
出力部113がネットワーク接続装置である場合、出力部113は、判定結果を通信ネットワークに出力し、その通信ネットワークに接続された情報処理装置(コンピュータ)等へ判定結果が送信される。情報処理装置は、受信した判定結果を表示装置又はプリンタを介して表示又は印刷することができる。
このような接合判定装置101によれば、3次元アセンブリモデルに含まれる2つの部品モデルの電気的な接続状態を検証することができる。
図3は、図1の記憶部111が記憶する情報の例を示している。図3の記憶部111は、部品情報301、構成情報302、接合ルール303、及び設計ルール304を含む。
部品情報301は、EMC設計の対象となる装置の3次元アセンブリモデルに含まれる複数の部品モデルの情報であり、構成情報302は、複数の部品モデルが組み立てられた状態における、それらの部品モデルの組み立て順序を示す情報である。各部品モデルは、対応する部品の3次元形状を表すモデルである。
接合ルール303は、2つ以上の部品モデルが電気的に接続するための接合形態を規定する情報である。接合ルール303には、例えば、以下の3つの接合形態のうち1つ以上の接合形態が規定されている。
(1)圧力により変形する導電性部品である接合部品と、他の導電性部品とが接触する。
(2)接合部品以外の導電性部品に設けられた複数の凸部と、他の導電性部品とが接触する。
(3)2つの導電性部品の面同士が向い合せで接触する。
設計ルール304は、接合ルール303により規定された各接合形態がEMC設計上の要請を満たすための条件を規定する情報である。EMC設計上の要請には、例えば、シールド構造が含まれる。
接合形態(1)の場合、接合部品が圧力により変形した後における変形方向の長さの許容範囲を、設計ルール304として規定することができる。接合形態(2)の場合、2つの凸部の間隔の許容範囲を、設計ルール304として規定することができる。また、接合形態(3)の場合、一方の導電性部品の接触面内における接触領域の位置の許容範囲を、設計ルール304として規定することができる。
図4は、図1の処理部112の機能的構成例を示している。図4の処理部112は、分類部401、接合判定部402、接触チェック部403、接合部品間隔抽出部404、凸部判定部405、及び凸部間隔抽出部406を含む。処理部112は、さらに、接触箇所チェック部407、両端接触抽出部408、隅接触抽出部409、設計ルールチェック部410、及び表示処理部411を含む。
分類部401は、3次元アセンブリモデルに含まれる複数の部品モデルを種類毎に分類するとともに、各部品モデルが導電性部品モデルであるか否かをチェックする。接合判定部402は、2つの導電性部品モデルが接触している場合に、その接触が接合ルール303に該当するか否かをチェックする。
接触チェック部403は、2つの導電性部品モデルが接触しているか否かをチェックする。接合部品間隔抽出部404は、複数の接合部品モデルと他の導電性部品モデルとが接触している場合に、2つの接合部品モデルの間隔を抽出する。凸部判定部405は、2つの導電性部品モデルが複数の接触箇所で接触している場合に、接触面の面積が小さい方の導電性部品モデルが複数の凸部を含むか否かを判定する。凸部間隔抽出部406は、導電性部品モデルが複数の凸部を含む場合に、2つの凸部の間隔を抽出する。
接触箇所チェック部407は、2つの導電性部品モデルが接触している場合に、導電性部品モデルがプリント基板に該当するか否かに応じて、隅接触チェック又は両端接触チェックのいずれかを行う。両端接触抽出部408は、導電性部品モデルがプリント基板に該当しない場合に、その導電性部品モデルの面の両端から、他の導電性部品モデルと接触している領域を抽出する。隅接触抽出部409は、導電性部品モデルがプリント基板に該当する場合に、その導電性部品モデルの多角形の面の隅から、他の導電性部品モデルと接触している領域を抽出する。
設計ルールチェック部410は、変形後の接合部品モデルの長さ、接合部品間隔抽出部404が抽出した2つの接合部品モデルの間隔、又は凸部間隔抽出部406が抽出した2つの凸部の間隔が、設計ルール304を満たすか否かをチェックする。設計ルールチェック部410は、両端接触抽出部408が抽出した領域の位置、又は隅接触抽出部409が抽出した領域の位置が、設計ルール304を満たすか否かもチェックする。
表示処理部411は、接合判定部402、接触箇所チェック部407、及び設計ルールチェック部410のチェック結果に基づいて、各導電性部品モデルに対する接合判定の判定結果を示す表示情報を生成し、出力部113へ転送する。
図5乃至図8は、記憶部111が記憶する部品情報301の例を示している。この部品情報301は、図5の部品名テーブル、図6の形状データテーブル、図7のエッジデータテーブル、及び図8の頂点データテーブルを含む。
図5の部品名テーブルは、各部品モデルの部品名、材料名、及び形状データの識別情報を含む。例えば、部品名“AAAA−123456.prt”の部品モデルの形状データModel1は、図6の形状データテーブルに対応付けられている。図5の部品名テーブルは一例に過ぎず、部品名テーブルは、他の部品モデルのデータを含むこともできる。
図6の形状データテーブルは、部品モデルの形状を形成する複数の面の面ID、面タイプ、面法線、面積、及びエッジIDを含む。面IDは、面の識別情報であり、面タイプは、平面、円筒面、自由曲面等の種別を表し、面法線は、面の法線の向きを表す。円筒面又は自由曲面は、複数のポリゴンで形成されているため、その面法線はポリゴン毎又はポリゴンの頂点毎に定義される。
また、エッジIDは、面の形状を形成する複数のエッジの識別情報である。例えば、面f1を形成するエッジs1〜エッジs3の形状データは、図7のエッジデータテーブルに示されている。図6の形状データテーブルは一例に過ぎず、形状データテーブルは、他の面のデータを含むこともできる。
図7のエッジデータテーブルは、各エッジのエッジID、エッジ長、頂点ID、及び隣接面IDを含む。エッジIDは、エッジの識別情報であり、エッジ長は、エッジの長さを表し、頂点IDは、エッジの両端にある頂点の識別情報であり、隣接面IDは、エッジの両側に隣接する面の識別情報である。例えば、エッジs1及びエッジs2の両端にある頂点p1〜頂点p3のデータは、図8の頂点データテーブルに示されている。図7のエッジデータテーブルは一例に過ぎず、エッジデータテーブルは、他のエッジのデータを含むこともできる。
図8の頂点データテーブルは、各頂点の頂点ID、座標、及び頂点法線を含む。頂点IDは、頂点の識別情報であり、座標は、頂点の位置を表す3次元座標であり、頂点法線は、頂点の法線の向きを表す。頂点p1、頂点p2、及び頂点p3の頂点法線は、いずれも面f1の面法線と同じである。
図8の頂点データテーブルは一例に過ぎず、頂点データテーブルは、他の頂点のデータを含むこともできる。例えば、頂点データテーブルがポリゴンの頂点のデータを含む場合、ポリゴンの各頂点の頂点法線には、ポリゴンの法線が設定される。
図9は、記憶部111が記憶する構成情報302の例を示している。図9の構成情報302は、構成ID、部品名、配置位置、親ID、子ID、兄ID、及び弟IDを含む。構成IDは、各部品モデルが組み立てられた状態を識別する識別情報であり、部品名は、部品モデルの部品名であり、配置位置は、3次元アセンブリモデル内における部品モデルの位置を表す。
親IDは、3次元アセンブリモデルの組み立て順序において、上位の構成IDを表し、子IDは、下位の構成IDを表す。例えば、構成ID2の部品モデルの親IDは“1”であり、子IDは“3”である。この場合、構成ID1の部品モデル上に構成ID2の部品モデルが組み立てられ、構成ID2の部品モデル上に構成ID3の部品モデルが組み立てられている。
兄ID及び弟IDは、同じ親IDを有する他の部品モデルの構成IDを表す。例えば、構成ID4の部品モデルの親IDは“2”であり、兄IDは“3”であり、弟IDは“5”である。この場合、構成ID2の部品モデル上に構成ID3、構成ID4、及び構成ID5の部品モデルが組み立てられ、構成ID3の部品モデルは、構成ID4の部品モデルの兄に対応し、構成ID4の部品モデルは、構成ID5の部品モデルの兄に対応する。図9の構成情報302は一例に過ぎず、構成情報302は、他の部品モデルのデータを含むこともできる。
次に、図10から図63までを参照しながら、図4の処理部112が行う接合判定処理についてより詳細に説明する。
図10は、分類部401が行う分類処理の例を示すフローチャートである。まず、分類部401は、記憶部111に記憶された部品情報301を参照して、未抽出の部品モデルを抽出し(ステップ1001)、その部品モデルが導電性部品モデルであるか否かをチェックする(ステップ1002)。このとき、分類部401は、例えば、部品モデルの部品名又は材料名に基づいて導電性部品モデルであるか否かをチェックすることができる。
抽出した部品モデルが導電性部品モデルでない場合(ステップ1002,NO)、分類部401は、次の部品モデルを対象としてステップ1001以降の処理を繰り返す。一方、抽出した部品モデルが導電性部品モデルである場合(ステップ1002,YES)、分類部401は、部品名に基づいて部品モデルを分類する(ステップ1003)。そして、分類部401は、部品情報301に含まれるすべての部品モデルを抽出したか否かをチェックする(ステップ1004)。
未抽出の部品モデルがある場合(ステップ1004,NO)、分類部401は、次の部品モデルを対象としてステップ1001以降の処理を繰り返し、すべての部品モデルを抽出した場合(ステップ1004,YES)、処理を終了する。
図11は、ステップ1002及びステップ1003において分類部401が使用する部品名変換テーブルの例を示している。図11の部品名変換テーブルは、記憶部111に記憶されており、部品名、分類名、及び導電性を含む。部品名の欄の“*”は、ワイルドカードを表し、分類名は、部品名に対応する部品の種類を表し、導電性は、その部品の導電性の有無を表す。導電性がある部品モデルは導電性部品モデルであり、導電性がない部品モデルは非導電性部品モデルである。図11の部品名変換テーブルは一例に過ぎず、部品名変換テーブルは、他の部品名のデータを含むこともできる。
図12は、ステップ1002において分類部401が使用する材料名変換テーブルの例を示している。図12の材料名変換テーブルは、記憶部111に記憶されており、材料名及び導電性を含む。導電性がある材料の部品モデルは導電性部品モデルであり、導電性がない材料の部品モデルは非導電性部品モデルである。図12の材料名変換テーブルは一例に過ぎず、材料名変換テーブルは、他の材料名のデータを含むこともできる。
図13は、分類部401が図11の部品名変換テーブル及び図12の材料名変換テーブルを用いて、図5の部品名テーブルに含まれる各部品モデルが導電性部品モデルであるか否かをチェックし、各部品モデルを分類した結果を示している。分類部401は、図13のような分類結果を記憶部111に格納する。
部品名“AAAA−123456.prt”の部品モデルは、材料名が“Fe”であるため、図12の材料名変換テーブルに基づいて導電性ありと判定され、図11の部品名変換テーブルに基づいて“構造部品”に分類される。また、部品名“Gkt−2345−a78.prt”の部品モデルは、図11の部品名変換テーブルに基づいて導電性ありと判定され、“ガスケット”に分類される。
一方、部品名“Pkn−345−c89.prt”の部品モデルは、材料名が“Rubber”であるため、図12の材料名変換テーブルに基づいて導電性なしと判定され、図11の部品名変換テーブルに基づいて“パッキン”に分類される。また、部品名“Cn−1234−r56.prt”の部品モデルは、図11の部品名変換テーブルに基づいて導電性ありと判定され、“コネクタ”に分類される。
図13に示されていない他の分類名としては、フィンガ、CPU、プリント基板等が用いられる。
図14は、処理部112が行う接合判定処理の例を示すフローチャートである。まず、接合判定部402は、記憶部111に記憶された構成情報302を参照して、接触チェックの第1の対象として未だ抽出されていない部品モデルがあるか否かをチェックする(ステップ1401)。そして、未抽出の部品モデルがある場合(ステップ1401,YES)、接合判定部402は、未抽出の部品モデルを、接触チェックの第1の対象として抽出する(ステップ1402)。
次に、接合判定部402は、分類部401が生成した分類結果を参照して、第1の対象が導電性部品モデルであるか否かをチェックする(ステップ1403)。第1の対象が導電性部品モデルでない場合(ステップ1403,NO)、接合判定部402は、次の部品モデルを対象としてステップ1401以降の処理を繰り返す。
一方、第1の対象が導電性部品モデルである場合(ステップ1403,YES)、接合判定部402は、構成情報302を参照して、接触チェックの第2の対象として未だ抽出されていない部品モデルがあるか否かをチェックする(ステップ1404)。そして、未抽出の部品モデルがある場合(ステップ1404,YES)、接合判定部402は、未抽出の部品モデルを、接触チェックの第2の対象として抽出する(ステップ1405)。
次に、接合判定部402は、分類部401が生成した分類結果を参照して、第2の対象が導電性部品モデルであるか否かをチェックする(ステップ1406)。第2の対象が導電性部品モデルでない場合(ステップ1406,NO)、接合判定部402は、次の部品モデルを対象としてステップ1404以降の処理を繰り返す。
一方、第2の対象が導電性部品モデルである場合(ステップ1406,YES)、接触チェック部403は、部品情報301及び構成情報302を参照して、第1の対象と第2の対象とが接触しているか否かをチェックする(ステップ1407)。
このとき、接触チェック部403は、例えば、第1の対象の部品モデルが有する各面と、第2の対象の部品モデルが有する各面との間で、交差判定を実施することができる。そして、第1の対象の1つ以上の面が第2の対象の1つ以上の面と交差している場合、第1の対象と第2の対象とが接触していると判定される。
接合判定部402は、接触チェック部403の接触チェック結果を判定する(ステップ1408)。第1の対象と第2の対象とが接触していない場合(ステップ1408,NO)、接合判定部402は、次の部品モデルを対象としてステップ1404以降の処理を繰り返す。
一方、第1の対象と第2の対象とが接触している場合(ステップ1408,YES)、接合判定部402は、2つの導電性部品モデルの接触が接合ルール303に該当するか否かをチェックする(ステップ1409)。そして、接合判定部402は、接合ルールチェック結果と接触箇所とを記憶部111に格納し、次の部品モデルを対象としてステップ1401以降の処理を繰り返す。
ステップ1404において未抽出の部品モデルがない場合(ステップ1404,NO)、接合判定部402は、次の部品モデルを対象としてステップ1401以降の処理を繰り返す。また、ステップ1401において未抽出の部品モデルがない場合(ステップ1401,NO)、接合判定部402は、処理を終了する。
このような接合判定処理によれば、3次元アセンブリモデルに含まれる導電性部品モデル同士で接触チェックが行われ、接触している場合に接合しているか否かを判定することができる。
図15は、図14のステップ1409において、処理部112が行う接合部品判定処理の例を示すフローチャートである。まず、接合判定部402は、第1の対象と第2の対象のうち、いずれか一方の導電性部品モデルを抽出する(ステップ1501)。そして、接合判定部402は、分類部401が生成した分類結果を参照して、その導電性部品モデルが接合部品モデルであるか否かをチェックする(ステップ1502)。
例えば、図16に示すガスケット及び図17に示すフィンガは、圧力により変形する導電性部品であり、接合部品に該当する。接合判定部402は、分類部401が生成した分類結果において、接合部品に該当する分類名を有する導電性部品モデルを接合部品モデルと判定する。
図18は、接合部品を用いた接合形態(1)の例を示している。図18のガスケット1801は接合部品に該当し、非接合部品であるコネクタ1802と接触している。ガスケット1801は、例えば、図19に示すように、底面1901と上面1902を有し、底面1901は別の部品に接続されている。そして、上面1902と接触する相手部品から上面1902に圧力が加わることで、ガスケットが上下方向に歪み、図20に示すように、上面1902が下方に押し込まれる。
このとき、押し込み量の上限値D1と下限値D2は、底面1901と上面1902との距離の範囲内で設定される。そして、押し込み量の上限値D1と下限値D2に対応して、変形後のガスケットの上下方向の長さの下限値T1と上限値T2も、底面1901と上面1902との距離の範囲内で設定される。この場合、例えば、下限値T1と上限値T2を設計ルール304の許容範囲として設定することができる。
図21は、“ガスケット”に分類された、部品名“Gkt−2345−a78.prt”の部品モデルに対する設計ルール304の例を示している。図21の設計ルール304は、部品名、形状データの識別情報、底面の面ID、下限値T1、及び上限値T2を含む。
抽出した導電性部品モデルが接合部品モデルである場合(ステップ1502,YES)、接合判定部402は、接合ルール303に規定された接合形態(1)に該当すると判定し、その接合部品モデルの底面を抽出する(ステップ1503)。次に、接合判定部402は、接合部品モデルが接触している相手部品モデルの接触面を抽出する(ステップ1504)。そして、接合判定部402は、接合部品モデルの底面から相手部品モデルの接触面までの距離を求め(ステップ1505)、設計ルールチェック部410は、その距離を設計ルール304の閾値と比較する(ステップ1506)。
設計ルール304に下限値T1と上限値T2が含まれている場合、底面から接触面までの距離が下限値T1及び上限値T2とそれぞれ比較される。そして、距離が下限値T1以上であり、上限値T2以下である場合、設計ルール304を満たすと判定される。この距離は、圧力により変形した接合部品モデルの変形方向における長さに対応する。
下限値T1及び上限値T2は、変形後の接合部品モデルと相手部品モデルとの接触によりシールド効果が正しく発揮される距離の下限値及び上限値に設定されることが好ましい。これにより、変形後の接合部品モデルと相手部品モデルとの接触関係だけではなく、シールド構造の検証を行うことが可能になる。
ステップ1501において抽出された導電性部品モデルがフィンガ等の他の接合部品モデルである場合も、同様にして、変形後の接合部品モデルの変形方向における長さが下限値及び上限値と比較される。
接合判定部402は、設計ルール304を満たすと判定された場合、第1の対象と第2の対象とが接合していることを示す判定結果を記憶部111に格納する(ステップ1507)。
その後、表示処理部411は、接合判定部402の判定結果を示す表示情報を生成する。これにより、接合部品モデルが他の導電性部品モデルと接合していることを示す判定結果が画面上に表示される。
このとき、表示処理部411は、接合部品モデルを、他の導電性部品モデルとは異なる表示形態(色、透明度、模様等)で表示する表示情報を生成してもよい。また、表示処理部411は、底面から接触面までの距離と下限値T1又は上限値T2との差分に対応する表示形態で接合部品モデルを表示する表示情報を生成してもよい。
図22は、図9の構成ID“4”及び構成ID“10”〜構成ID“15”の接合部品モデルである7個のガスケットに対する接合判定結果の例を示している。構成ID(接合部品)は、接合部品モデルの構成IDを表し、構成ID(底面側)は、接合部品モデルの底面と接触する部品モデルの構成IDを表し、構成ID(上面側)は、接合部品モデルの上面と接触する相手部品モデルの構成IDを表す。判定結果“OK”は、設計ルール304を満たすことを示し、判定結果“NG”は、設計ルール304を満たさないことを示す。
この接合判定結果によれば、構成ID“4”のガスケットの底面から構成ID“9”の相手部品モデルの接触面までの距離は“6”であり、その判定結果は“NG”である。一方、構成ID“10”のガスケットの底面から構成ID“3”の相手部品モデルの接触面までの距離は“4”であり、その判定結果は“OK”である。同様に、構成ID“11”〜構成ID“15”のガスケットについても、判定結果は“OK”である。
ところで、抽出した導電性部品モデルが接合部品モデルでない場合(ステップ1502,NO)、第1の対象と第2の対象との間で接触箇所が複数存在する場合がある。このような場合に複数の凸部を含む導電性部品モデルを用いた接合形態(2)を検出するため、処理部112は図23の凸部判定処理を行う。
図24は、導電性部品モデルに設けられた複数の凸部の例を示している。図24の導電性部品モデル2401は、複数の凸部に対応する複数の接合用突起2402を有し、これらの接合用突起2402は一定間隔で配置されている。そして、導電性部品モデル2401は、複数の接合用突起2402により接触相手の導電性部品モデルと接触することで、電気的な接続を確保する。
まず、凸部判定部405は、図15のステップ1501で抽出した導電性部品モデルから未だ抽出されていない接触面があるか否かをチェックする(ステップ2301)。未抽出の接触面がある場合(ステップ2301,YES)、凸部判定部405は、導電性部品モデルから未抽出の接触面を抽出し、その接触面と接触している相手部品モデルの接触面も抽出する(ステップ2302)。そして、凸部判定部405は、2つの接触面のうち面積が小さい方の接触面を選択する。
次に、凸部判定部405は、選択した接触面に隣接する隣接面のうち、未だ抽出されていない隣接面があるか否かをチェックする(ステップ2303)。
図25は、図23の接合用突起2402の形状を形成する複数の面を示している。ステップ2302において、面積が小さい方の接触面として接触面2501が選択された場合、隣接面2502〜隣接面2505は、接触面2501に隣接する隣接面である。また、隣接面2506及び隣接面2507は、隣接面2502に隣接する隣接面であり、隣接面2508は、隣接面2506に隣接する隣接面である。さらに、隣接面2509は、隣接面2503に隣接する隣接面であり、隣接面2510は、隣接面2508に隣接する隣接面である。
接触面に隣接する未抽出の隣接面がある場合(ステップ2303,YES)、凸部判定部405は、未抽出の隣接面を抽出し(ステップ2304)、接触面の面積に対する隣接面の面積の比率(面積比)を基準値と比較する(ステップ2305)。面積比が基準値以下である場合(ステップ2305,YES)、凸部判定部405は、接触面と隣接面の関係が山折り接続であるか否かをチェックする(ステップ2306)。
山折り接続であるか否かは、例えば、接触面の法線の向きと隣接面の法線の向きとの関係に基づいて判定することができる。例えば、図24の接触面2501と隣接面2502の関係は山折り接続であり、接触面2501と隣接面2503の関係も山折り接続である。
接触面と隣接面の関係が山折り接続である場合(ステップ2306,YES)、凸部判定部405は、隣接面が接触面と同じグループに属することを示すグループ化結果を記憶部111に格納する(ステップ2307)。面積比が基準値より大きい場合(ステップ2305,NO)、又は接触面と隣接面の関係が山折り接続でない場合(ステップ2306,NO)、凸部判定部405は、次の隣接面についてステップ2303以降の処理を行う。
ステップ2303において接触面に隣接する未抽出の隣接面がない場合、凸部判定部405は、さらに、抽出済みの隣接面に隣接する隣接面についてステップ2303以降の処理を繰り返す。このとき、ステップ2305では、抽出済みの隣接面の面積に対する新たに抽出された隣接面の面積の比率が基準値と比較され、ステップ2306では、抽出済みの隣接面と新たに抽出された隣接面の関係がチェックされる。そして、ステップ2307では、新たに抽出された隣接面が抽出済みの隣接面と同じグループに分類される。
例えば、図24の接合用突起2402の場合、図26に示すように、図25の隣接面2502〜隣接面2510を接触面2501と同じグループに分類することができる。
接触面又は抽出済みの隣接面に隣接する未抽出の隣接面がない場合(ステップ2303,NO)、凸部判定部405は、次の接触面についてステップ2301以降の処理を繰り返す。これにより、複数の凸部のそれぞれの形状を形成する複数の面をグループ化することができる。
未抽出の接触面がない場合(ステップ2301,NO)、凸部判定部405は、次に、生成された複数のグループのうち、同じ面を含むグループ同士を結合して1つのグループに統合する(ステップ2308)。そして、凸部判定部405は、グループ間で面構成を比較し(ステップ2309)、複数のグループが同じ面構成を有するか否かをチェックする(ステップ2310)。このとき、例えば、一方のグループに属するすべての面の面タイプ及び面積が、他方のグループに属する面の面タイプ及び面積と同じであれば、2つのグループは同じ面構成を有すると判定される。
複数のグループが同じ面構成を有する場合(ステップ2310,YES)、凸部判定部405は、それらのグループに対応する複数の凸部が存在し、それらの凸部は実質的に同じ形状を有するものと判定する。そして、凸部判定部405は、接合ルール303に規定された接合形態(2)に該当すると判定する。
そこで、凸部間隔抽出部406は、隣接する2つのグループに含まれる接触面又は隣接面の間隔を、2つの凸部の間隔として求め(ステップ2311)、設計ルールチェック部410は、2つの凸部の間隔を設計ルール304の閾値と比較する(ステップ2312)。そして、設計ルールチェック部410は、間隔が閾値より小さい場合、設計ルール304を満たすと判定する。例えば、間隔が“20”で閾値が“35”である場合、この間隔は設計ルール304を満たしている。
閾値は、複数の凸部を含む導電性部品モデルと他の導電性部品モデルとの接触によりシールド効果が正しく発揮される間隔の上限値に設定されることが好ましい。これにより、2つの導電性部品モデルの接触関係だけではなく、シールド構造の検証を行うことが可能になる。
接合判定部402は、設計ルール304を満たすと判定された場合、第1の対象と第2の対象とが接合していることを示す判定結果を記憶部111に格納する(ステップ2313)。そして、接合判定部402は、複数の凸部の複数の接触面の情報と、それらが接触している相手部品モデルの接触面の情報とを、記憶部111に格納する(ステップ2314)。
一方、同じ面構成を有する2つ以上のグループが存在しない場合(ステップ2310,NO)、実質的に同じ形状を有する複数の凸部が存在しないものと判定される。そこで、接合判定部402は、ステップ2311〜ステップ2313の処理を行うことなく、ステップ2314の処理を行う。この場合、第1の対象の接触面の情報と第2の対象の接触面の情報とが記憶部111に格納される。
その後、表示処理部411は、接合判定部402の判定結果を示す表示情報を生成する。これにより、複数の凸部を含む導電性部品モデルが他の導電性部品モデルと接合していることを示す判定結果が画面上に表示される。
このとき、表示処理部411は、複数の凸部を含む導電性部品モデルを、他の導電性部品モデルとは異なる表示形態(色、透明度、模様等)で表示する表示情報を生成してもよい。また、表示処理部411は、複数の凸部を、その他の部分とは異なる表示形態で表示する表示情報を生成してもよく、2つの凸部の間隔の寸法を表示する表示情報を生成してもよい。さらに、表示処理部411は、間隔と閾値との差分に対応する表示形態で複数の凸部を表示する表示情報を生成してもよい。
図27は、図24の導電性部品モデル2401に対する判定結果の表示例を示している。この例では、2つの接合用突起2402の間隔の寸法“20”と、設計ルール304を満たすことを示す“OK”とが表示されている。
図28乃至図33は、図23の処理で用いられるデータの例を示している。図28の接触チェック結果は、接触チェック部403が構成ID“3”の導電性部品モデルと構成ID“8”の導電性部品モデルとの間で接触チェックを行った結果を示している。この接触チェック結果によれば、構成ID“3”の導電性部品モデルに含まれる面ID“f10”の面は、構成ID“8”の導電性部品モデルに含まれる面ID“f5”の面と交差している。同様に、面ID“f20”、面ID“f30”、及び面ID“f40”の各面は、面ID“f5”、面ID“f25”、及び面ID“f35”の各面と交差している。
図29は、構成ID“3”の導電性部品モデルに含まれる面ID“f10”の面を接触面として抽出した場合のグループ化結果を示している。このグループ化結果によれば、面ID“f10”、面ID“f11”、面ID“f12”、及び面ID“f13”の面が同じグループに分類されている。
図30は、構成ID“3”の導電性部品モデルに含まれる面ID“f20”の面を接触面として抽出した場合のグループ化結果を示している。このグループ化結果によれば、面ID“f20”、面ID“f21”、面ID“f22”、及び面ID“f23”の面が同じグループに分類されている。
図31は、構成ID“3”の導電性部品モデルに含まれる面ID“f30”の面を接触面として抽出した場合のグループ化結果を示している。このグループ化結果によれば、面ID“f30”、面ID“f31”、面ID“f32”、及び面ID“f33”の面が同じグループに分類されている。
図32は、図29乃至図31のグループ化結果に基づく面構成のチェック結果を示している。このチェック結果によれば、構成ID“3”の導電性部品モデルに含まれる4つのグループのうち、面ID“f10”の接触面を含むグループと、面ID“f20”の接触面を含むグループとが同じ面構成を有している。一方、面ID“f30”の接触面を含むグループと同じ面構成の他のグループは存在せず、面ID“f40”の接触面を含むグループと同じ面構成の他のグループも存在しない。
図33は、面ID“f10”、面ID“f20”、面ID“f80” 面ID“f90”、及び面ID“f100”の5つの接触面を含む5つのグループが同じ面構成を有する場合の接合判定結果を示している。この接合判定結果によれば、面ID“f10”の接触面を含むグループと面ID“f20”の接触面を含むグループとの間における2つの凸部の間隔は“20”であり、判定結果は“OK”である。同様に、他の2つのグループ間における2つの凸部の間隔も“20”であり、判定結果も“OK”である。このような接合判定結果に基づいて、図27のような情報が表示される。
図23の凸部判定処理において、ステップ2309及びステップ2310の処理を省略することも可能である。この場合、ステップ2311において、凸部間隔抽出部406は、複数のグループが同じ面構成を有するか否かにかかわらず、隣接する2つのグループに含まれる接触面又は隣接面の間隔を求める。
ところで、複数の接合部品モデルが同じ相手部品モデルと接触している場合、2つの接合部品モデルの間隔に基づいて接合判定を行うこともできる。
図34は、このような接合部品間隔判定処理の例を示すフローチャートである。図34の接合部品間隔判定処理は、例えば、図14の接合判定処理の終了後に行われる。
まず、接合判定部402は、記憶部111に記憶された構成情報302と分類部401が生成した分類結果とを参照して、未だ抽出されていない接合部品モデルがあるか否かをチェックする(ステップ3401)。
未抽出の接合部品モデルがある場合(ステップ3401,YES)、接合判定部402は、接合ルール303に規定された接合形態(1)に該当すると判定する。次に、接合判定部402は、未抽出の接合部品モデルを抽出し(ステップ3402)、その接合部品モデルが接触している相手部品モデルを抽出する(ステップ3403)。そして、接合判定部402は、抽出した相手部品モデルが、記憶部111に登録済みであるか否かをチェックする(ステップ3404)。
抽出した相手部品モデルが登録済みである場合(ステップ3404,YES)、接合判定部402は、抽出した接合部品モデルを、登録済みの相手部品モデルと接触する接合部品モデルとして記憶部111に登録する(ステップ3405)。そして、接合判定部402は、次の接合部品モデルについてステップ3401以降の処理を繰り返す。
一方、抽出した相手部品モデルが登録済みでない場合(ステップ3404,NO)、接合判定部402は、抽出した相手部品モデルを、新たな相手部品モデルとして記憶部111に登録する(ステップ3406)。そして、接合判定部402は、ステップ3405以降の処理を行う。
未抽出の接合部品モデルがない場合(ステップ3401,NO)、接合判定部402は、次に、登録済みの相手部品モデルの中から未だ抽出されていない相手部品モデルがあるか否かをチェックする(ステップ3407)。
未抽出の相手部品モデルがある場合(ステップ3407,YES)、接合判定部402は、未抽出の相手部品モデルを抽出し(ステップ3408)、その相手部品モデルと接触しているすべての接合部品モデルを抽出する(ステップ3409)。そして、接合部品間隔抽出部404は、抽出された複数の接合部品モデルの間の間隔を抽出する(ステップ3410)。接合部品モデル間の間隔としては、例えば、2つの接合部品モデルに含まれる面のうち、最も近い面同士の間隔が抽出される。
次に、設計ルールチェック部410は、抽出された間隔を設計ルール304の閾値(所定値)と比較し、間隔が閾値より小さい場合、設計ルール304を満たすと判定する(ステップ3411)。例えば、間隔が“40”で閾値が“50”である場合、この間隔は設計ルール304を満たしている。
閾値は、複数の接合部品モデルと他の導電性部品モデルとの接触によりシールド効果が正しく発揮される間隔の上限値に設定されることが好ましい。これにより、複数の接合部品モデルと他の導電性部品モデルの接触関係だけではなく、シールド構造の検証を行うことが可能になる。
接合判定部402は、設計ルール304を満たすと判定された場合、相手部品モデルと複数の接合部品モデルとが接合していることを示す判定結果を記憶部111に格納する(ステップ3412)。そして、接合判定部402は、次の相手部品モデルについてステップ3407以降の処理を繰り返し、未抽出の相手部品モデルがない場合(ステップ3407,NO)、処理を終了する。
その後、表示処理部411は、接合判定部402の判定結果を示す表示情報を生成する。これにより、複数の接合部品モデルが同じ導電性部品モデルと接合していることを示す判定結果が画面上に表示される。
このとき、表示処理部411は、接合部品モデルを、他の導電性部品モデルとは異なる表示形態(色、透明度、模様等)で表示する表示情報を生成してもよい。また、表示処理部411は、2つの接合部品モデルの間隔の寸法を表示する表示情報を生成してもよく、間隔と閾値との差分に対応する表示形態で複数の接合部品モデルを表示する表示情報を生成してもよい。
図35は、複数のガスケットに対する判定結果の表示例を示している。この例では、ガスケット3501〜ガスケット3505の間隔の寸法と、判定結果“OK”又は“NG”とが表示されている。例えば、ガスケット3501とガスケット3505の間隔の寸法は“55”であり、その判定結果は“NG”である。また、ガスケット3503とガスケット3504の間隔の寸法は“45”であり、その判定結果は“OK”である。
図36は、図22の構成ID“10”〜構成ID“13”の接合部品モデルである4個のガスケットに対する接合判定結果の例を示している。構成ID(相手部品)は、4個の接合部品モデルに共通する相手部品モデルの構成IDを表し、構成ID(接合部品)は、接合部品モデルの構成IDを表し、構成ID(最短)は、接合部品モデルから最も近い別の接合部品モデルの構成IDを表す。
この接合判定結果によれば、構成ID“10”のガスケットと構成ID“11”のガスケットの間隔は“55”であり、その判定結果は“NG”である。また、構成ID“12”のガスケットと構成ID“13”のガスケットの間隔は“45”であり、その判定結果は“OK”である。このような接合判定結果に基づいて、図35のような情報が表示される。
図23のステップ2310において、同じ面構成を有する2つ以上のグループが存在しない場合であっても、ステップ2314において、第1の対象の接触面の情報と第2の対象の接触面の情報とが記憶部111に格納される。そこで、この接触面の情報を利用して、2つの導電性部品モデルの面同士が向い合せで接触している接合形態(3)を検出することが可能である。
図37は、このような接触箇所チェック処理の例を示すフローチャートである。図37の接触箇所チェック処理は、例えば、図14の接合判定処理の終了後に行われる。
まず、接触箇所チェック部407は、記憶部111に記憶された構成情報302と接合判定部402が生成した接触面の情報とを参照して、未だ抽出されていない接触部品モデルがあるか否かをチェックする(ステップ3701)。ここで、接触部品モデルとは、他の部品モデルと接触する接触面を有する部品モデルを意味する。
未抽出の接触部品モデルがある場合(ステップ3701,YES)、接触箇所チェック部407は、未抽出の接触部品モデルを抽出する(ステップ3702)。そして、接触箇所チェック部407は、分類部401が生成した分類結果を参照して、その接触部品モデルの分類名がプリント基板であるか否かをチェックする(ステップ3703)。
接触部品モデルの分類名がプリント基板でない場合(ステップ3703,NO)、接触部品モデルの両端が他の部品モデルと接触しているか否かをチェックするため、処理部112は図38の両端接触チェック処理を行う。この場合、例えば、一方の導電性部品モデルの接触面の両端に接触面が存在することを、設計ルール304として規定することができる。
まず、両端接触抽出部408は、接触部品モデルの接触面の幾何中心を計算する(ステップ3801)。接触面の幾何中心は、例えば、接触面の複数の頂点により形成される多角形の重心位置に対応する。そして、両端接触抽出部408は、接触部品モデルの接触面の外形における長手方向を抽出し(ステップ3802)、その接触面を長手方向に幾何中心からの距離に応じて複数の分割領域に分割する(ステップ3803)。
図39は、接触部品モデルの例を示している。図39の接触部品モデルの接触面3901の横方向の長さL1が縦方向の長さL2より長い場合、横方向が長手方向に決定される。そして、図40に示すように、接触面3901の幾何中心3902からの距離に応じて、接触面3901が分割領域3911〜分割領域3915に分割される。これらの5つの分割領域のうち分割領域3911及び分割領域3915が、接触面3901の両端の分割領域に該当する。
次に、両端接触抽出部408は、接触面上の複数の分割領域のそれぞれが接触する他の部品モデルの接触面を抽出する(ステップ3804)。このとき、両端接触抽出部408は、各分割領域が接触する接合部品モデルの接触面も抽出することができる。そして、設計ルールチェック部410は、両端の分割領域が他の部品モデルの接触面と接触しているか否かをチェックする(ステップ3805)。
両端の分割領域が他の部品モデルの接触面と接触している場合(ステップ3805,YES)、両端接触抽出部408は、接合ルール303に規定された接合形態(3)に該当し、接触部品モデルが他の導電性部品モデルと接合していると判定する。そして、両端接触抽出部408は、接触面の両端が接触していることを示す情報を記憶部111に格納する(ステップ3807)。
両端の分割領域の一方が他の部品モデルの接触面と接触していない場合(ステップ3805,NO)、両端接触抽出部408は、接触部品モデルが接合していないと判定する。そして、設計ルールチェック部410は、他方の分割領域が他の部品モデルの接触面と接触しているか否かをチェックする(ステップ3806)。
他方の分割領域が他の部品モデルの接触面と接触している場合(ステップ3806,YES)、両端接触抽出部408は、接触面の両端のうち片方が接触していることを示す情報を記憶部111に格納する(ステップ3808)。
他方の分割領域が他の部品モデルの接触面と接触していない場合(ステップ3806,NO)、両端接触抽出部408は、接触面の両端が接触していないことを示す情報を記憶部111に格納する(ステップ3809)。
そして、接触箇所チェック部407は、次の接触部品モデルについて図37のステップ3701以降の処理を繰り返し、未抽出の接触部品モデルがない場合(ステップ3701,NO)、処理を終了する。
その後、表示処理部411は、両端接触抽出部408の判定結果を示す表示情報を生成する。これにより、導電性部品モデルの接触面の両端が他の導電性部品モデルと接触しており、導電性部品モデルが接合していることを示す判定結果が画面上に表示される。
このとき、表示処理部411は、複数の分割領域のうち、他の部品モデルの接触面と接触している分割領域を、他の分割領域とは異なる表示形態(色、透明度、模様等)で表示する表示情報を生成してもよい。
図41は、接合判定部402が生成した接触面の情報に基づいて両端接触抽出部408が生成する接触部品モデルの情報の例を示している。構成ID(接触部品)は、接触部品モデルの構成IDを表し、接触面ID(接触部品)は、接触部品モデルの接触面の面IDを表す。構成ID(相手部品)は、接触部品モデルと接触する他の部品モデルの構成IDを表し、接触面ID(相手部品)は、他の部品モデルの接触面の面IDを表し、導電性は、他の部品モデルの導電性の有無を表す。
一時的な接触面は、接触部品モデルの接触面と他の部品モデルの接触面とが重なることにより生成される面であり、その面IDは、図6の形状データテーブルに含まれる面IDとは別に生成される。
図41の情報によれば、構成ID“8”の接触部品モデルの接触面f6と、構成ID“10”〜構成ID“13”のそれぞれの導電性部品モデルの接触面f8とが接触していることが分かる。構成ID“8”の接触部品モデルの接触面f6は、さらに、構成ID“6”の導電性部品モデルの接触面f15とも接触している。
構成ID“10”、構成ID“12”、構成ID“11”、及び構成ID“13”の導電性部品モデルに対する一時的な接触面は、それぞれ接触面tmpf1、接触面tmpf2、接触面tmpf3、及び接触面tmpf4である。また、構成ID“6”の導電性部品モデルに対する一時的な接触面は、接触面tmpf5である。
図42は、構成ID“8”の接触部品モデルの接触面f6における、幾何中心から接触面tmpf1〜接触面tmpf5までの最短距離を示している。正の符号は、幾何中心から長手方向における一方の端に向かう向き(右方向)を表し、負の符号は、幾何中心から他方の端に向かう向き(左方向)を表す。これらの接触面tmpf1〜接触面tmpf5は、接触面f6上の互いに異なる分割領域に含まれている。
図43は、設計ルール304として規定される、幾何中心から一時的な接触面までの距離と判定結果との関係を示している。判定結果は、距離が大きい方から小さい方へ順に、優、良、及び不可となっており、一時的な接触面が接触面f6の端に近いほど良好な判定結果を示している。(右)は右方向の判定結果を表し、(左)は左方向の判定結果を表す。
図43の複数の距離範囲は、接触面f6上の複数の分割領域にそれぞれ対応しており、−40〜−30の距離範囲の分割領域は左端の分割領域に対応し、+31〜+40の距離範囲の分割領域は右端の分割領域に対応する。
これらの分割領域の距離範囲は、接触部品モデルと他の導電性部品モデルとの接触によりシールド効果が正しく発揮される距離範囲に設定されることが好ましい。これにより、接触部品モデルと他の導電性部品モデルの接触関係だけではなく、シールド構造の検証を行うことが可能になる。
図44は、図43の設計ルール304に基づく接触面tmpf1〜接触面tmpf5の判定結果を示しており、図45は、図44の各判定結果に対応する分割領域の数を示している。図45の判定結果によれば、接触面f6の両端の分割領域に対応する優(左)及び優(右)の分割領域において、一時的な接触面が検出されたため、構成ID“8”の接触部品モデルは接合していると判定される。
これに対して、優(左)の分割領域又は優(右)の分割領域の一方のみにおいて一時的な接触面が検出された場合は、構成ID“8”の接触部品モデルは接合していないと判定される。
あるいは、両端接触抽出部408が、図45の判定結果毎の分割領域の数を重み付け加算することで、接合判定の評価値を計算してもよい。この場合、両端接触抽出部408は、評価値が閾値より大きい場合に接触部品モデルが接合していると判定し、評価値が閾値以下の場合に接触部品モデルが接合していないと判定する。
ところで、接触部品モデルの分類名がプリント基板である場合(ステップ3703,YES)、接触部品モデルの隅が他の部品モデルと接触しているか否かをチェックするため、処理部112は図46〜図48の隅接触チェック処理を行う。この場合、例えば、一方の導電性部品モデルの隅領域に接触箇所が存在することを、設計ルール304として規定することができる。
まず、隅接触抽出部409は、接触部品モデルに含まれる複数の面のうち1つの面を抽出する(ステップ4601)。このとき、隅接触抽出部409は、例えば、最大の面積を有する面を抽出することができる。
図49は、プリント基板上に複数の集積回路部品が配置された3次元アセンブリモデルの例を示している。この3次元アセンブリモデルの場合、プリント基板に含まれる面のうち、図50に示す部品実装面が抽出される。
次に、隅接触抽出部409は、抽出した面の外周を形成する複数のエッジのうち1つのエッジを抽出する(ステップ4602)。このとき、隅接触抽出部409は、例えば、最大のエッジ長を有するエッジを抽出することができる。そして、隅接触抽出部409は、そのエッジの一方の頂点を開始点として抽出し(ステップ4603)、開始点を代表点として記憶部111に登録する(ステップ4604)。
次に、隅接触抽出部409は、外周上の次の頂点を抽出し、その頂点が開始点であるか否かをチェックする(ステップ4605)。次の頂点が開始点である場合は、外周を一周したことになる。次の頂点が開始点ではない場合(ステップ4605,NO)、隅接触抽出部409は、前の頂点から次の頂点までの距離を一定値と比較する(ステップ4606)。
次の頂点までの距離が一定値より大きい場合(ステップ4606,NO)、隅接触抽出部409は、次の頂点を代表点として記憶部111に登録し(ステップ4604)、ステップ4605以降の処理を繰り返す。
一方、次の頂点までの距離が一定値以下である場合(ステップ4606,YES)、隅接触抽出部409は、次の頂点を記憶部111に記録する(ステップ4607)。そして、隅接触抽出部409は、記録済みの1つ以上の頂点により形成される多角形の幾何中心を計算する(ステップ4608)。記録済みの頂点が1つしかない場合は、その頂点が幾何中心になる。
次に、隅接触抽出部409は、幾何中心から多角形の各頂点までの距離を一定値と比較する(ステップ4609)。ステップ4609の一定値は、ステップ4606の一定値とは異なる値である。幾何中心からすべての頂点までの距離までが一定値以下である場合(ステップ4609,YES)、隅接触抽出部409は、次の頂点についてステップ4606以降の処理を繰り返す。これにより、互いに近接する複数の頂点が順に記録されていき、新たな頂点が記録される度に幾何中心が更新される。
一方、幾何中心からいずれかの頂点までの距離までが一定値より大きい場合(ステップ4609,NO)、隅接触抽出部409は、最後に記録した頂点を記憶部111から削除する(ステップ4610)。そして、隅接触抽出部409は、残された頂点の幾何中心を新たな頂点に設定し(ステップ4611)、その頂点を代表点として記憶部111に登録して(ステップ4604)、ステップ4605以降の処理を繰り返す。
例えば、図50の部品実装面において、図51の頂点5101が開始点として抽出された場合、図52〜図54に示すように、ステップ4609の一定値の半径を有する円5102を用いて、外周上の頂点が順に探索される。そして、各々の円5102の中心近傍に位置する幾何中心が代表点として登録される。
外周を一周して次の頂点が開始点になった場合(ステップ4605,YES)、登録された代表点が隅の頂点であるか否かをチェックするために、処理部112は図47の処理を行う。
まず、隅接触抽出部409は、開始点を代表開始点として記憶部111に登録する(図47のステップ4701)。そして、隅接触抽出部409は、開始点を現在の代表点として記録し、次の代表点を抽出して(ステップ4702)、次の代表点が代表開始点であるか否かをチェックする(ステップ4703)。次の代表点が代表開始点である場合は、外周を一周したことになる。
次の代表点が代表開始点ではない場合(ステップ4703,NO)、隅接触抽出部409は、ベクトルV1が記録済みであるか否かをチェックする(ステップ4704)。ベクトルV1が記録済みでない場合(ステップ4704,NO)、隅接触抽出部409は、前の代表点を始点とし、現在の代表点を終点とするベクトルV1を生成する(ステップ4705)。そして、隅接触抽出部409は、現在の代表点を始点とし、次の代表点を終点とするベクトルV2を生成する(ステップ4706)。
一方、ベクトルV1が記録済みである場合(ステップ4704,YES)、隅接触抽出部409は、ベクトルV1を生成することなく、ステップ4706の処理を行う。
次に、隅接触抽出部409は、ベクトルV1とベクトルV2の成す角度を一定値と比較する(ステップ4707)。例えば、図55の角度θは、ベクトルV1とベクトルV2の成す角度を表している。
ベクトルV1とベクトルV2の成す角度が一定値以下である場合(ステップ4707,YES)、隅接触抽出部409は、現在の代表点は隅の頂点ではないと判定する。そして、隅接触抽出部409は、ベクトルV1を記憶部111に記録し(ステップ4708)、次の代表点を新たな現在の代表点として記録して、ステップ4702以降の処理を繰り返す。
一方、ベクトルV1とベクトルV2の成す角度が一定値より大きい場合(ステップ4707,NO)、隅接触抽出部409は、現在の代表点を隅の頂点として記憶部111に記録する(ステップ4709)。そして、隅接触抽出部409は、ベクトルV1を記憶部111から削除し(ステップ4710)、次の代表点を新たな現在の代表点として記録して、ステップ4702以降の処理を繰り返す。
一例として、図56に示す代表点5601〜代表点5604のうち、代表点5602が現在の代表点であるときに、ステップ4702において、代表点5603が次の代表点として抽出された場合について説明する。この場合、代表点5601を始点とし、5602を終点とするベクトル5611が生成され、ベクトルV1として記録される。そして、代表点5602を始点とし、代表点5603を終点とするベクトル5612が、ベクトルV2として生成される。
ここで、ベクトル5611とベクトル5612の成す角度θが一定値以下である場合、代表点5602は隅の頂点ではないと判定される。この場合、代表点5603が新たな現在の代表点として記録され、代表点5604が次の代表点として抽出されて、代表点5603を始点とし、代表点5604を終点とするベクトル5613が、ベクトルV2として生成される。そして、記録済みのベクトル5611と生成されたベクトル5613の成す角度が一定値と比較される。
一方、ベクトル5611とベクトル5612の成す角度θが一定値より大きい場合、代表点5602は隅の頂点として記録される。この場合、記録済みのベクトル5611が削除され、代表点5603が新たな現在の代表点として記録され、代表点5604が次の代表点として抽出される。そして、代表点5602を始点とし、代表点5603を終点とするベクトル5612が生成され、新たなベクトルV1として記録される。このような処理をすべての代表点について繰り返すことで、外周上のすべての隅の頂点が検出される。
外周を一周して次の代表点が代表開始点になった場合(ステップ4703,YES)、検出された隅の頂点が接合しているか否かをチェックするために、処理部112は図48の処理を行う。
まず、隅接触抽出部409は、記録済みの隅の頂点のうち、未だ抽出されていない隅の頂点があるか否かをチェックする(ステップ4801)。未抽出の隅の頂点がある場合(ステップ4801,YES)、隅接触抽出部409は、未抽出の隅の頂点を抽出し、その頂点から一定距離内の近傍領域である隅領域を抽出する。
この一定距離は、設計ルール304として規定され、接触部品モデルと他の導電性部品モデルとの接触によりシールド効果が正しく発揮される距離の上限値に設定されることが好ましい。これにより、接触部品モデルと他の導電性部品モデルの接触関係だけではなく、シールド構造の検証を行うことが可能になる。
次に、設計ルールチェック部410は、接合判定部402が生成した接触面の情報を参照して、隅領域に接触箇所があるか否かをチェックする(ステップ4802)。隅領域に接触箇所がある場合(ステップ4802,YES)、隅接触抽出部409は、接合ルール303に規定された接合形態(3)に該当し、隅の頂点又は隅領域が他の導電性部品モデルと接合していると判定する。そして、隅接触抽出部409は、判定結果を記憶部111に格納する(ステップ4803)。
一方、隅領域に接触箇所がない場合(ステップ4802,NO)、隅接触抽出部409は、隅の頂点又は隅領域が接合していないと判定し、判定結果を記憶部111に格納する(ステップ4804)。
図57は、隅領域内の接触箇所の例を示している。隅の頂点5701に対する隅領域5702に接触箇所5703がある場合、隅の頂点5701は他の部品モデルと接触していると判定される。
そして、隅接触抽出部409は、次の隅の頂点についてステップ4801以降の処理を繰り返す。未抽出の隅の頂点がない場合(ステップ4801,NO)、接触箇所チェック部407は、次の接触部品モデルについて図37のステップ3701以降の処理を繰り返す。
その後、表示処理部411は、隅接触抽出部409の判定結果を示す表示情報を生成する。これにより、プリント基板の隅の頂点又は隅領域が他の導電性部品モデルと接合していることを示す判定結果が画面上に表示される。
このとき、表示処理部411は、複数の隅領域のうち、接触箇所が存在する隅領域を、他の隅領域とは異なる表示形態(色、透明度、模様等)で表示する表示情報を生成してもよい。
図58は、図50の部品実装面に対する判定結果の表示例を示している。この例では、検出された各々の隅の頂点を中心とする所定半径の円5801が表示されている。そして、隅の頂点が他の部品モデルと接触している場合、円5801の内部が斜線で強調表示され、隅の頂点が他の部品モデルと接触していない場合、円5801の内部は強調表示されない。
図59〜図61は、隅接触抽出部409が処理に用いる情報の例を示している。図59は、抽出された面の外周を形成するエッジのエッジ長と頂点IDを示しており、図60は、それらの頂点の座標を示している。図59の開始エッジは、最大のエッジ長を有するエッジを表し、開始点は、開始エッジの2つの頂点のうち、開始点として抽出された頂点の頂点IDを表す。
図61は、記憶部111に登録された代表点の情報を示している。図61の情報は、代表点、次の代表点、頂点ID、座標、及び角度を含む。代表点は、代表点として登録された頂点の頂点IDを表し、次の代表点は、代表点の次の代表点の頂点IDを表す。座標は、代表点の座標を表し、角度は、図47のステップ4707の判定で用いられるベクトルV1とベクトルV2の成す角度を表す。
この例では、図46のステップ4606の判定における一定値として15が用いられ、ステップ4609の判定における一定値として10が用いられている。代表点p3は、ステップ4603で抽出された開始点であり、代表点p1及び代表点p2は、ステップ4606の判定結果がNOの場合に代表点として登録された頂点である。また、代表点rp1は、頂点p4、頂点p5、及び頂点p6の幾何中心であり、ステップ4606の判定結果がYES、ステップ4609の判定結果がNOの場合に、代表点として登録される。
例えば、ステップ4707の判定で用いられる一定値が20である場合、代表点p3、代表点rp1、代表点p1、及び代表点p2の角度は、いずれも一定値より大きいため、これらの代表点はすべて隅の頂点として記録される。
図62は、隅の頂点として記録された代表点p3、代表点rp1、代表点p1、及び代表点p2の判定結果を示している。この例では、図48のステップ4802の隅領域を規定する一定距離として10が用いられている。判定結果“OK”は、隅の頂点が接触していることを示し、判定結果“NG”は、隅の頂点が接触していないことを示す。
例えば、代表点p3の隅領域には、構成ID“20”の部品モデルと接触する接触箇所があるため、その判定結果は“OK”である。また、代表点rp1の隅領域には、構成ID“25”の部品モデルと接触する接触箇所があるため、その判定結果は“OK”である。一方、代表点p1及び代表点p2の隅領域には、他の部品モデルと接触する接触箇所がないため、その判定結果は“NG”である。
図63は、上述した接合判定部402、両端接触抽出部408、及び隅接触抽出部409の判定結果を含むリストの表示例を示している。図63のリストは、判定、検証タイプ、部品1/属性、部品2/属性、設計ルール、及び計算結果を含み、表示処理部411により生成される。
部品1/属性は、接触している2つの導電性部品モデルのうち一方の部品名とその属性を表し、部品2/属性は、他方の部品名とその属性を表す。属性“導電性部品”は、導電性部品モデルであることを表し、属性“接合部品”は、接合部品モデルであることを表す。
検証タイプは、接合判定対象の接合形態を表す。検証タイプ“接合部品”は、接合部品モデルが他の導電性部品モデルと接触する接合形態を表し、検証タイプ“接合部品間隔”は、複数の接合部品モデルが同じ導電性部品モデルと接触する接合形態を表す。検証タイプ“凸部間隔”は、導電性部品モデルの複数の凸部が他の導電性部品モデルと接触する接合形態を表す。検証タイプ“両端接触”は、導電性部品モデルの接触面の両端が他の導電性部品モデルと接触する接合形態を表し、検証タイプ“隅接触”は、導電性部品モデルの接触面の隅領域が他の導電性部品モデルと接触する接合形態を表す。
設計ルールは、設計ルールチェック部410が判定に用いた設計ルール304を表し、計算結果は、設計ルールと比較される数値又は比較結果を表し、判定は、接合判定の判定結果を表す。
例えば、検証タイプ“接合部品”の“A.prt/導電性部品”と“B.prt/接合部品”との接合判定では、設計ルールとして下限値“5”及び上限値“10”が設定されている。そして、“B.prt/接合部品”の底面から“A.prt/導電性部品”の接触面までの距離の計算結果“8”は、下限値以上、上限値以下であるため、判定結果は“OK”となる。
検証タイプ“接合部品間隔”の“A.prt/導電性部品”と“B.prt”、“C.prt”、“D.prt”、及び“E.prt”との接合判定では、設計ルールとして閾値“50”が設定されている。そして、“B.prt”、“C.prt”、“D.prt”、及び“E.prt”の間隔の計算結果“40”、“45”、“60”、及び“55”のうち、2つの計算結果が閾値以上であるため、判定結果は“NG”となる。
検証タイプ“凸部間隔”の“CC.prt/導電性部品”と“DD.prt/導電性部品”との接合判定では、設計ルールとして閾値“35”が設定されている。そして、“CC.prt/導電性部品”の2つの凸部の間隔の計算結果“20”は閾値より小さいため、判定結果は“OK”となる。
検証タイプ“両端接触”の“EE.prt/導電性部品”の接合判定では、設計ルールとして、両端が接触していることが設定されている。そして、計算結果では、“EE.prt/導電性部品”の両端の分割領域が他の導電性部品モデルと接触しているため、判定結果は“OK”となる。
検証タイプ“両端接触”の“FF.prt/導電性部品”の接合判定では、設計ルールとして、両端が接触していることが設定されている。そして、計算結果では、“FF.prt/導電性部品”の両端の分割領域のうち、片方のみが他の導電性部品モデルと接触しているため、判定結果は“NG”となる。
検証タイプ“隅接触”の“GG.prt/導電性部品”(プリント基板)の接合判定では、設計ルールとして、隅領域を規定する一定距離“10”が設定されている。そして、計算結果では、“GG.prt/導電性部品”の8個の隅領域のすべてが他の導電性部品モデルと接触しているため、判定結果は“OK”となる。
表示処理部411は、ユーザが表示されたリストからいずれかの判定結果を選択すると、以下のような表示を行う表示情報をさらに生成することができる。
(A)検証タイプ“接合部品”の場合、3次元アセンブリモデル上で、接合部品モデルの底面から他の導電性部品モデルの接触面までの距離と、その距離が設計ルールを満たしているか否かを示す判定結果とを表示する。
(B)検証タイプ“接合部品間隔”の場合、3次元アセンブリモデル上で、2つの接合部品モデルの間隔と、その間隔が設計ルールを満たしているか否かを示す判定結果とを表示する。
(C)検証タイプ“凸部間隔”の場合、3次元アセンブリモデル上で、導電性部品モデルの2つの凸部の間隔と、その間隔が設計ルールを満たしているか否かを示す判定結果とを表示する。
(D)検証タイプ“両端接触”の場合、3次元アセンブリモデル上で、導電性部品モデルの接触面の両端にある分割領域と、各分割領域が他の導電性部品モデルと接触しているか否かを示す判定結果とを表示する。
(E)検証タイプ“隅接触”の場合、3次元アセンブリモデル上で、導電性部品モデルの接触面の隅領域と、その隅領域が他の導電性部品モデルと接触しているか否かを示す判定結果とを表示する。
図10、図14、図15、図23、図34、図37、図38、及び図46〜図48のフローチャートは一例に過ぎず、接合判定装置の構成や条件に応じて一部の処理を省略又は変更してもよい。
例えば、図15の接合部品判定処理のみを実施する場合は、図23、図34、図37、図38、及び図46〜図48の処理を省略することができる。図23の凸部判定処理のみを実施する場合は、図15、図34、図37、図38、及び図46〜図48の処理を省略することができる。
図34の接合部品間隔判定処理のみを実施する場合は、図15、図23、図37、図38、及び図46〜図48の処理を省略することができる。図38の両端接触チェック処理のみを実施する場合は、図15、図23、図34、及び図46〜図48の処理を省略することができる。図46〜図48の隅接触チェック処理のみを実施する場合は、図15、図23、図34、及び図38の処理を省略することができる。
図15の接合部品判定処理、図23の凸部判定処理、図34の接合部品間隔判定処理、図38の両端接触チェック処理、又は図46〜図48の隅接触チェック処理のうち、いずれか2つ以上の処理を選択して組み合わせることも可能である。
図15の接合部品判定処理において、接合部品モデルの底面から相手部品モデルの接触面までの距離の代わりに、変形後の接合部品モデルの長さを表す他のパラメータを用いてもよい。
図23の凸部判定処理において、接触面と隣接面とをグループ化して、グループ間で面構成を比較する代わりに、他の方法で複数の凸部を検出してもよい。また、グループ間で面構成を比較する際に、比較対象の2つの面の面タイプが同じであり、2つの面の面積の差分が許容範囲内であれば、2つの面は同じ面構成を有すると判定してもよい。
図34の接合部品間隔判定処理において、2つの接合部品モデルに含まれる面のうち最も近い面同士の間隔を用いる代わりに、2つの接合部品モデルのそれぞれを代表する頂点同士の間隔を用いてもよい。
図38の両端接触チェック処理において、接触面上のすべての分割領域について他の部品モデルの接触面を抽出する代わりに、両端の分割領域のみについて他の部品モデルの接触面を抽出してもよい。
図46〜図48の隅接触チェック処理において、複数の頂点の幾何中心を代表点として登録する代わりに、各頂点をそのまま代表点として登録してもよい。また、ベクトルV1とベクトルV2の成す角度に基づいて隅の頂点を検出する代わりに、他の方法で隅の頂点を検出してもよい。
図1の接合判定装置101は、例えば、図64に示すような情報処理装置を用いて実現可能である。
図64の情報処理装置は、Central Processing Unit(CPU)6401、メモリ6402、入力装置6403、出力装置6404、補助記憶装置6405、媒体駆動装置6406、及びネットワーク接続装置6407を備える。これらの構成要素はバス6408により互いに接続されている。
メモリ6402は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ6402は、記憶部111として用いることができる。
CPU6401(プロセッサ)は、例えば、メモリ6402を利用してプログラムを実行することにより、図1の処理部112として動作し、接合判定処理を行う。このとき、CPU6401は、図4の分類部401、接合判定部402、接触チェック部403、接合部品間隔抽出部404、凸部判定部405、又は凸部間隔抽出部406としても動作する。CPU6401は、さらに、図4の接触箇所チェック部407、両端接触抽出部408、隅接触抽出部409、設計ルールチェック部410、又は表示処理部411としても動作する。
入力装置6403は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置6404は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。処理結果には接合判定の判定結果を示す表示情報が含まれ、出力装置6404は、出力部113として用いることができる。
補助記憶装置6405は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。この補助記憶装置6405には、ハードディスクドライブも含まれる。情報処理装置は、補助記憶装置6405にプログラム及びデータを格納しておき、それらをメモリ6402にロードして使用することができる。補助記憶装置6405は、記憶部111として用いることができる。
媒体駆動装置6406は、可搬型記録媒体6409を駆動し、その記録内容にアクセスする。可搬型記録媒体6409は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。この可搬型記録媒体6409には、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等も含まれる。ユーザ又はオペレータは、この可搬型記録媒体6409にプログラム及びデータを格納しておき、それらをメモリ6402にロードして使用することができる。
このように、接合判定処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ6402、補助記憶装置6405、及び可搬型記録媒体6409のような、物理的な(非一時的な)記録媒体が含まれる。
ネットワーク接続装置6407は、Local Area Network(LAN)、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。ネットワーク接続装置6407は、出力部113として用いることができる。
情報処理装置は、ネットワーク接続装置6407を介して、ユーザ端末から処理要求を受信し、処理結果である表示情報をユーザ端末へ送信することができる。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置6407を介して受け取り、それらをメモリ6402にロードして使用することもできる。
なお、情報処理装置が図64のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がユーザ端末から通信ネットワーク経由で処理要求を受信する場合は、入力装置6403及び出力装置6404を省略してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図64を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
3次元アセンブリモデルに含まれる複数の部品モデルの形状データを記憶する記憶部を参照し、
前記複数の部品モデルのうち第1の導電性部品モデルと第2の導電性部品モデルとが、前記第1の導電性部品モデルに含まれる複数の凸部により接触している場合、前記第1の導電性部品モデルの形状データに基づいて、前記複数の凸部のうち2つの凸部の間隔を求め、
前記2つの凸部の間隔が閾値より小さい場合、前記第1の導電性部品モデルと前記第2の導電性部品モデルとが接合していることを示す判定結果を出力する、
処理をコンピュータに実行させるプログラム。
(付記2)
前記2つの凸部の間隔を求める処理は、前記複数の凸部の形状が実質的に同じ形状である場合に、前記2つの凸部の間隔を求めることを特徴とする付記1記載のプログラム。
(付記3)
前記2つの凸部の間隔を求める処理は、前記複数の凸部のうち1つの凸部に含まれ前記第2の導電性部品モデルと接触している接触面の面積と、前記接触面に隣接する隣接面の面積との比率に基づいて、前記接触面と前記隣接面とを1つのグループに分類し、前記複数の凸部に対応する複数のグループの間でそれぞれのグループに含まれる前記接触面を比較するとともに、前記複数のグループの間でそれぞれのグループに含まれる前記隣接面を比較することで、前記複数の凸部の形状が実質的に同じ形状であることを検出することを特徴とする付記2記載のプログラム。
(付記4)
前記2つの凸部の間隔を求める処理は、前記複数のグループのうち2つのグループに含まれる実質的に同じ形状の2つの接触面又は2つの隣接面の間隔を、前記2つの凸部の間隔として求めることを特徴とする付記3記載のプログラム。
(付記5)
前記複数の部品モデルのうち圧力により変形する2つの第3の導電性部品モデルと、前記複数の部品モデルのうち第4の導電性部品モデルとが接触している場合、前記2つの第3の導電性部品モデルの形状データに基づいて前記2つの第3の導電性部品モデルの間隔を求め、
前記2つの第3の導電性部品モデルの間隔が所定値より小さい場合、前記2つの第3の導電性部品モデルと前記第4の導電性部品モデルとが接合していることを示す判定結果を出力する、
処理を前記コンピュータにさらに実行させることを特徴とする付記1乃至4のいずれか1項に記載のプログラム。
(付記6)
前記複数の部品モデルのうち第5の導電性部品モデルに含まれる多角形の面から隅領域を抽出し、
前記隅領域と前記複数の部品モデルのうち第6の導電性部品モデルとが接触している場合、前記隅領域と前記第6の導電性部品モデルとが接合していることを示す判定結果を出力する、
処理を前記コンピュータにさらに実行させることを特徴とする付記1乃至5のいずれか1項に記載のプログラム。
(付記7)
前記複数の部品モデルのうち第7の導電性部品モデルに含まれる面を長手方向に複数の領域に分割し、
前記複数の領域のうち両端に位置する2つの領域の各々と前記複数の部品モデルのうち1つの導電性部品モデルとが接触している場合、前記第7の導電性部品モデルが接合していることを示す判定結果を出力する、
処理を前記コンピュータにさらに実行させることを特徴とする付記1乃至6のいずれか1項に記載のプログラム。
(付記8)
前記複数の部品モデルのうち圧力により変形する第8の導電性部品モデルと、前記複数の部品モデルのうち第9の導電性部品モデルとが接触している場合、前記第8の導電性部品モデルの形状データに基づいて、変形した前記第8の導電性部品モデルの変形方向における長さを求め、
前記変形方向における長さが許容範囲内である場合、前記第8の導電性部品モデルと前記第9の導電性部品モデルとが接合していることを示す判定結果を出力する、
処理を前記コンピュータにさらに実行させることを特徴とする付記1乃至7のいずれか1項に記載のプログラム。
(付記9)
3次元アセンブリモデルに含まれる複数の部品モデルの形状データを記憶する記憶部と、
前記複数の部品モデルのうち第1の導電性部品モデルと第2の導電性部品モデルとが、前記第1の導電性部品モデルに含まれる複数の凸部により接触している場合、前記第1の導電性部品モデルの形状データに基づいて、前記複数の凸部のうち2つの凸部の間隔を求める処理部と、
前記2つの凸部の間隔が閾値より小さい場合、前記第1の導電性部品モデルと前記第2の導電性部品モデルとが接合していることを示す判定結果を出力する出力部と、
を備えることを特徴とする接合判定装置。
(付記10)
コンピュータによって実行される接合判定方法であって、
3次元アセンブリモデルに含まれる複数の部品モデルの形状データを記憶する記憶部を参照し、
前記複数の部品モデルのうち第1の導電性部品モデルと第2の導電性部品モデルとが、前記第1の導電性部品モデルに含まれる複数の凸部により接触している場合、前記第1の導電性部品モデルの形状データに基づいて、前記複数の凸部のうち2つの凸部の間隔を求め、
前記2つの凸部の間隔が閾値より小さい場合、前記第1の導電性部品モデルと前記第2の導電性部品モデルとが接合していることを示す判定結果を出力する、
ことを特徴とする接合判定方法。