(57)【要約】  【課題】  複数の物体間における互いに接触する可能性がある面の対の定義を正確かつ効率的に行う。  【解決手段】  複数の物体の表面形状に関するデータを取得する形状データ取得部と、前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得部と、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得部と、前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義部とを備えてなる。  【選択図】  図１
2006048583.tif 000002
【特許請求の範囲】
【請求項１】
複数の物体の表面形状に関するデータを取得する形状データ取得部と、
前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得部と、
前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得部と、
前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義部と
を備えてなる接触定義装置。
【請求項２】
請求項１に記載の接触定義装置において、
前記物体の表面形状に関するデータは、複数の面要素のデータからなるものであり、
前記表面形状に関するデータに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行うグループ化部を有し、
前記接触定義部は、前記グループ化された面要素のグループの領域毎に前記定義を行う接触定義装置。
【請求項３】
請求項２に記載の接触定義装置において、
前記グループ化部は、所定の座標軸と直交する面要素については、該直交する座標軸、該面要素の座標および該面要素における法線ベクトルの方向に基づいてグループ化を行う接触定義装置。
【請求項４】
複数の物体の表面形状に関するデータを取得する形状データ取得ステップと、
前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得ステップと、
前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得ステップと、
前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義ステップと
をコンピュータに実行させる接触定義プログラム。
【請求項５】
複数の物体の表面形状に関するデータを取得する形状データ取得ステップと、
前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得ステップと、
前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得ステップと、
前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義ステップと
を有する接触定義方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の物体間における接触に関する定義を行う接触定義装置、接触定義プログラムおよび接触定義方法に関するものである。
【背景技術】
【０００２】
従来、接触を伴う物体の変形や運動を有限要素法などにより解析する技術が提供されている（例えば、特許文献１から３参照。）。
【０００３】
上記従来技術では、接触する可能性がある物体同士を物体の形状データ等に基づいてユーザが確認し、それぞれの物体における互いに接触する可能性のある面の対（いわゆる接触対）をユーザがマニュアルで選択し、選択した面の対を接触対として定義する。
【特許文献１】特開平９−１４５４９３号公報  （第４―８頁、第２図）
【特許文献２】特開２００１−３３７９４０号公報  （第５―１０頁、第１図）
【特許文献３】特開２００２−５６０３７号公報  （第３―４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上述のようなマニュアル操作は、解析対象となる物体の数が増えたり、物体間における接触箇所が多くなったりすることによって煩雑になり、接触する可能性のある面の選択や接触対の定義のミスが生じやすくなる。このようなミスは、ユーザがマニュアルで確認することもできるが、定義を行ったデータに対する解析を実際に実行したときに初めて発見される場合も少なくない。
【０００５】
上述のような接触対の定義ミスの発生は、当該ミスのデバッグ等の工数の増加を招き、作業の効率化の妨げとなっていた。
【０００６】
本発明は上述した問題点を解決するためになされたものであり、複数の物体間における互いに接触する可能性がある面の対の定義を正確かつ効率的に行うことを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決するため、本発明に係る接触定義装置は、複数の物体の表面形状に関するデータを取得する形状データ取得部と、前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得部と、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得部と、前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義部とを備えてなることを特徴とするものである。このような構成によれば、従来マニュアル操作により行っていた複数の物体間における互いに接触する可能性がある面の対の定義を、自動的に正確かつ効率的に行うことができる。
【０００８】
上述のような構成の接触定義装置において、前記物体の表面形状に関するデータは、複数の面要素のデータからなるものであり、前記表面形状に関するデータに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行うグループ化部を有し、前記接触定義部は、前記グループ化された面要素のグループの領域毎に前記定義を行う構成とすることが好ましい。このように、グループ化された面要素のグループに対して接触対の定義を行うことで、個々の面要素に対して接触対の定義を行う場合に比べ、大幅な処理負担の軽減に寄与することができる。
【０００９】
また、上述のような構成の接触定義装置において、前記グループ化部は、所定の座標軸と直交する面要素については、該直交する座標軸、該面要素の座標および該面要素における法線ベクトルの方向に基づいてグループ化を行う構成とすることもできる。一般に、物体の表面形状に関するデータを構成している面要素は、座標軸（例えば、Ｘ−Ｙ−Ｚ座標系等におけるいずれかの座標軸）と直交している場合が多く、該直交する座標軸、該面要素の座標および該面要素における法線ベクトルの方向に基づいてグループ化を行うことで、接触対となる可能性が高い面グループ同士での効率的な接触定義の処理を行うことが可能となる。
【００１０】
また、本発明に係る接触定義プログラムは、複数の物体の表面形状に関するデータを取得する形状データ取得ステップと、前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得ステップと、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得ステップと、前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義ステップとをコンピュータに実行させることを特徴とするものである。
【００１１】
また、本発明に係る接触定義方法は、複数の物体の表面形状に関するデータを取得する形状データ取得ステップと、前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得ステップと、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得ステップと、前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義ステップとを有することを特徴とするものである。
【発明の効果】
【００１２】
以上に詳述したように本発明によれば、複数の物体間における互いに接触する可能性がある面の対の定義を正確かつ効率的に行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１４】
図１は、本実施の形態による接触定義装置の全体構成を示す機能ブロック図である。
【００１５】
本実施の形態による接触定義装置１は、ベクトル情報生成部１１、ベクトル情報取得部１２、グループ化部１３、接触定義部１４、形状データ取得部１５、位置関係情報取得部１６、剛性情報取得部１７、データベース１８、ＣＰＵ１９および記憶部１ａを備えてなる構成となっている。
【００１６】
データベース１８は、複数の物体の表面形状に関するデータである形状データ１８ａ、複数の物体間の所定の位置関係に関する位置関係情報１８ｂ、複数の物体の剛性に関するデータである剛性情報１８ｃおよび複数の物体間における接触に関する定義情報である接触定義情報１８ｄを格納している。
【００１７】
形状データ取得部１５は、データベース１８に格納されている形状データ１８ａを取得する役割を有している。なお、ここでの形状データ１８ａにおけるそれぞれの物体の表面形状に関するデータは、複数の面要素のデータから構成されている。
【００１８】
位置関係情報取得部１６は、データベース１８に格納されている位置関係情報１８ｂを取得する役割を有する。ベクトル情報生成部１１は、形状データ１８ａに基づいて、複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を生成する役割を有している。
【００１９】
ベクトル情報取得部１２は、ベクトル情報生成部１１において生成された法線ベクトルに関する情報を取得する役割を有している。
【００２０】
グループ化部１３は、形状データ取得部１５にて取得された形状データ１８ａに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行う役割を有している。複数の面要素のグループ化についての詳細は後述する。接触定義部１４は、グループ化された面要素のグループの領域毎に、形状データ１８ａ、位置関係情報１８ｂおよび法線ベクトルに関する情報に基づいて、複数の物体間における互いに接触する可能性がある面の対の定義（接触定義）を行う。この接触定義によって得られる接触定義に関する情報は、データベース１８に接触定義情報１８ｄとして格納される。
【００２１】
剛性情報取得部１７は、データベース１８に格納されている剛性情報１８ｃを取得する役割を有する。
【００２２】
また、記憶部１ａには、配列ＮＯＤＥ、配列ＥＬＥＭ、配列ＦＡＣＥＡ、配列ＦＡＣＥ、配列ＫＴ３、変数ＫＴ１、配列ＭＥＮＮＯ、配列ＦＡＣＥＢ、配列ＥＤＧＥ、配列ＥＤＧＥＡ、変数ＩＣＭＥＮ、変数ＩＣＮＯＤＥ、配列ＭＩＮＭＡＸ、配列ＥＤＧＥＢ、配列ＡＲＥＡ、配列ＦＡＣＥＤおよび配列ＣＰＡＩＲといった複数のデータが格納されている。これらデータについての詳細は後述する。
【００２３】
なお、ここではデータベース１８が接触定義装置１内に配置されている例を示したが、これに限られるものではなく、例えば、接触定義装置１と電気通信回線を通じて通信可能に接続されている外部機器にデータベース１８を配置してもよい。また、ここでは形状データ１８ａ〜接触定義情報１８ｄが１つのデータベースに格納されている例を示しているが、これに限られるものではなく、それぞれのデータが別々の外部機器における記憶領域に格納されていてもよい。
【００２４】
続いて、本実施の形態による接触定義装置の動作について説明する。
【００２５】
図２は、本実施の形態による接触定義装置における処理の流れを示すフローチャートである。
【００２６】
まず、形状データ１８ａ、位置関係情報１８ｂおよび剛性情報１８ｃを、データベース１８から取得する（形状データ取得ステップ、位置関係情報取得ステップ、剛性情報取得ステップ）（Ｓ１０１）。
【００２７】
次に、取得した形状データ１８ａに基づいて、複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を生成する（ベクトル情報生成ステップ）（Ｓ１０２）。
【００２８】
続いて、ベクトル情報生成ステップにおいて生成された法線ベクトルに関する情報を取得する（ベクトル情報取得ステップ）（Ｓ１０３）。
【００２９】
上述のステップにて取得した形状データ１８ａに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行う（グループ化ステップ）（Ｓ１０４）。
【００３０】
そして、グループ化された面要素のグループの領域毎に、形状データ１８ａ、位置関係情報１８ｂおよび法線ベクトルに関する情報に基づいて、接触定義を行う（接触定義ステップ）（Ｓ１０５）。なお、接触定義ステップにおいて、接触定義に関する情報は、接触定義情報１８ｄとして格納される。このように、グループ化された面要素のグループに対して接触対の定義を行うことで、個々の面要素に対して接触対の定義を行う場合に比べ、大幅な処理負担の軽減に寄与することができる。
【００３１】
以下、具体例を示しつつ、本実施の形態について詳細に説明する。図３に、接触定義を行う対象となる複数の物体の例としての部品Ａ、部品Ｂおよび部品Ｃを示す。
【００３２】
同図に示す部品Ａ、部品Ｂおよび部品Ｃの表面形状に関するデータは、例えば有限要素法解析に用いられる解析用入力データ（データベース１８に格納されている形状データ１８ａ、位置関係情報１８ｂおよび剛性情報１８ｃに相当）である。各部品は、それぞれがメッシュ分割されており、複数の要素から構成されている。これらの要素は、複数の節点によりその領域が規定されている。解析用入力データは、要素の番号、それぞれの要素を構成する節点の座標および当該部品の材質に関する情報（剛性など）を有している。
【００３３】
ここでは、部品Ａは１００ｍｍ×１００ｍｍ×５ｍｍの板形状に、部品Ｂは１００ｍｍ×１００ｍｍ×３ｍｍの板状部材に７０ｍｍ×７０ｍｍの穴が形成された形状に、部品Ｃは１００ｍｍ×１００ｍｍ×１０ｍｍの板形状に設定されている。これら部品Ａ〜部品Ｃは、図４に示すように重ねて組み立てられるものであり、同図に示すように組み立てられた状態（すなわち、各部品が所定の位置関係にある状態）では、外力を受けた場合等における部材の変形等も考慮すると、部品Ａの底面と部品Ｂの上面及び部品Ｃの上面、部品Ｂの底面と部品Ｃの上面が接触する可能性があると考えられる。
【００３４】
なお、上述の部品Ａ〜部品Ｃは、組み立てられた状態において、隣接する部品間で節点を共有することのないよう、節点の位置が設定されている。
【００３５】
図５は、本実施の形態における解析用入力データを用いた接触定義の具体的な処理の流れを示すフローチャートである。本実施の形態における接触定義の処理は、同図に示すように解析用入力データの取得（Ｓ２１）、各部品の外表面形状の抽出（Ｓ２２）、面グループの分類（Ｓ２３）、フリーエッジの作成（Ｓ２４）、フリーエッジの領域を求める（Ｓ２５）、接触対を求める（Ｓ２６）、出力（Ｓ２７）のステップから構成されている。
【００３６】
ここで、Ｓ２１は、形状データ取得ステップ、位置関係情報取得ステップおよび剛性情報取得ステップに相当し、Ｓ２１における処理は、主に形状データ取得部１５、位置関係情報取得部１６および剛性情報取得部１７により実現される。
【００３７】
Ｓ２２およびＳ２３は、ベクトル情報生成ステップ、ベクトル情報取得ステップおよびグループ化ステップに相当し、Ｓ２２およびＳ２３における処理は、主にベクトル情報生成部１１、ベクトル情報取得部１２およびグループ化部１３により実現される。Ｓ２４〜Ｓ２７は、接触定義ステップに相当し、Ｓ２４〜Ｓ２７における処理は、主に接触定義部１４、接触定義情報１８ｄにより実現される。以下、これらのステップ（Ｓ２１〜Ｓ２７）について詳細に説明する。
【００３８】
まず、図６のフローチャートを用いて解析用入力データの読み込み（図５のＳ２１）について詳細に説明する。
【００３９】
データベース１８に格納されている部品Ａ〜部品Ｃの解析用入力データを取得する（Ｓ２１０１）。
【００４０】
取得すべきデータがない場合（Ｓ２１０２，Ｙｅｓ）、処理は終了する。一方、取得すべきデータがある場合（Ｓ２１０２，Ｎｏ）、取得したデータ中に含まれる要素の情報とこれら要素を構成する節点の情報とを判別し（Ｓ２１０３）、各部品を構成する節点の番号および節点座標を配列ＮＯＤＥに（Ｓ２１０４）、各部品の表面形状を規定する要素の番号および各要素を構成する節点の番号を配列ＥＬＥＭに格納する（Ｓ２１０５）。なお、本実施の形態では、節点の座標値および物体間の位置関係はＸ−Ｙ−Ｚ座標系により規定されている。
【００４１】
図７に配列ＮＯＤＥにおけるデータ配列の構成例を、図８に配列ＥＬＥＭにおけるデータ配列の構成例を示す。
【００４２】
続いて、図９のフローチャートを用いて各部品の外表面形状の抽出（図５のＳ２２）について詳細に説明する。
【００４３】
まず、上述の配列ＥＬＥＭに格納されているデータ配列から要素の情報を１つ分ずつ読み込み（Ｓ２２０１）、面要素を作成し、面要素を構成する節点番号を面要素ごとに配列ＦＡＣＥＡに格納する（Ｓ２２０２）。図１０に配列ＦＡＣＥＡにおけるデータ配列の構成例を示す。
【００４４】
なお、面要素を構成する節点については、順序があらかじめ定義されている。図１１に６面体（直方体）を、図１２に５面体（三角柱）を、図１３にこれら５面体および６面体における各面を構成する節点の順序の定義方法の一例を示す。図１３において、例えば６面体の第１面は節点Ｎ１、節点Ｎ４、節点Ｎ３および節点Ｎ２によって構成されるように定義されていることがわかる。
【００４５】
続いて、配列ＦＡＣＥＡに格納されている面のデータの読み込み（Ｓ２２０３）および配列ＦＡＣＥに格納されている面のデータの読み込み（Ｓ２２０４）を行う。配列ＦＡＣＥは、その時点において各部品の外表面とされる面のデータを格納している。図１４に、配列ＦＡＣＥにおけるデータ配列の構成例を示す。
【００４６】
配列ＦＡＣＥＡに格納されている面と配列ＦＡＣＥにすでに格納されている面とを比較する（Ｓ２２０５）。ここでは、図１０および図１４に示すように、配列ＦＡＣＥＡが８×６の、配列ＦＡＣＥが８×１０００００×１０００のデータ配列となっており、これら全てのデータについて比較を行う。
【００４７】
上述の比較（Ｓ２２０５）において、配列ＦＡＣＥＡに格納されている面要素と配列ＦＡＣＥに格納されているいずれかの面要素との間で３節点共有していれば（Ｓ２２０６）、両面要素は同一面であるとし、同一面の配列ＦＡＣＥデータを削除する（Ｓ２２０７）。このとき、部品番号を配列ＫＴ３に記憶しておく（Ｓ２２０８）。図１５に配列ＫＴ３におけるデータ配列の構成例を示す。配列ＫＴ３は、配列ＦＡＣＥに同じ部品が別の部品として定義されていないかどうかをチェックするために用いられるものであり、部品番号が格納されている。
【００４８】
一方、上述の比較（Ｓ２２０５）において、配列ＦＡＣＥＡに格納されている面要素と配列ＦＡＣＥに格納されているいずれかの面要素との間で１節点あるいは２節点共有していれば（Ｓ２２１２）、配列ＦＡＣＥの部品番号を変数ＫＴ１に記憶する（Ｓ２２１３）。そして、配列ＦＡＣＥに格納されている全ての面要素と比較し（Ｓ２２１４）、３節点共有していなければ、比較している面配列ＦＡＣＥＡを配列ＦＡＣＥの変数ＫＴ１で示される部品番号の領域に新たに格納する（Ｓ２２１５）。
【００４９】
また、配列ＦＡＣＥに格納されている全ての面要素との間で共有している節点がなければ（Ｓ２２１６、Ｓ２２１７）、新たな部品領域として配列ＦＡＣＥＡに格納されているデータを配列ＦＡＣＥに格納する（Ｓ２２１８）。
【００５０】
続いて、配列ＦＡＣＥＡに格納されているデータ全てについての比較が終了した後（Ｓ２２０９）、配列ＫＴ３を用いて１つの要素について、同一面が検索された部品番号が同じであるかどうかをチェックし（Ｓ２２１０）、部品番号が異なっていたら、同じ部品であるにも拘らず別部品として格納されているものとして、配列ＫＴ３で示される部品番号のＦＡＣＥデータを結合する（すなわち、一方の部品番号のデータを他方の部品番号のデータ中に格納する）（Ｓ２２１１）。上述の処理を面要素のデータ数分だけ繰り返し行う。
【００５１】
続いて、図１６のフローチャートを用いて面グループの分類（図５のＳ２３）について詳細に説明する。
【００５２】
まず、配列ＦＡＣＥに格納されている面要素のデータを読み込む（Ｓ２３０１）。次に、読み込んだ面要素を構成する複数の節点の座標データを、配列ＮＯＤＥから取り出す（Ｓ２３０３）。
【００５３】
続いて、上述のステップにおいて取り出した節点の座標データから、当該面要素についての平面の方程式（ａＸ＋ｂＹ＋ｃＺ＋ｄ＝０）を求める（Ｓ２３０４）。すなわち、表面形状に関するデータに基づいて、複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を生成する（ベクトル情報生成ステップ）。
【００５４】
面グループ毎の平面の方程式の情報（法線ベクトルに関する情報）を格納する配列ＭＥＮＮＯに、すでに同じ部品について同じ平面の方程式が格納されているかどうかを検索し（Ｓ２３０５）、格納されていなければ（Ｓ２３０５，Ｎｏ）、新たな面グループ番号を付与し、配列ＭＥＮＮＯに格納する（Ｓ２３０６）。本実施の形態では、この処理（Ｓ２３０６）がベクトル情報取得ステップに相当する。図１７に配列ＭＥＮＮＯにおけるデータ配列の構成例を示す。
【００５５】
各面要素のデータを、部品番号および面の方程式が同じ面毎に配列ＦＡＣＥＢに格納することで面要素のグループ化を行う（Ｓ２３０７）。すなわち、同一物体における同一平面上に存在する複数の面要素についてグループ化を行う（グループ化ステップ）。図１８に配列ＦＡＣＥＢにおけるデータ配列の構成例を示す。
【００５６】
上述のステップ（Ｓ２３０１〜Ｓ２３０７）の処理を、配列ＦＡＣＥに格納されているデータ分だけ繰り返す（Ｓ２３０２）。
【００５７】
図１９に、部品Ａ〜部品Ｃを構成する各面要素がグループ分けされた様子を示す。同図に示すように、部品Ａは面グループ番号１（ｇ１）〜面グループ番号６（ｇ６）に、部品Ｂは面グループ番号７（ｇ７）〜面グループ番号１６（ｇ１６）に、部品Ｃは面グループ番号１７（ｇ１７）〜面グループ番号２２（ｇ２２）にグループ分けされている。
【００５８】
次に、図２０のフローチャートを用いて、それぞれの面グループにおけるフリーエッジの作成（図５のＳ２４）について説明する。
【００５９】
上述の面グループの分類によって配列ＦＡＣＥＢに格納された面のデータを読み込み（Ｓ２４０１）、読み込んだ面に対してエッジ（当該面の輪郭線）を作成し、当該作成したエッジに関するデータを配列ＥＤＧＥに格納する（Ｓ２４０２）。図２１に配列ＥＤＧＥにおけるデータ配列の構成例を示す。
【００６０】
続いて、配列ＦＡＣＥＢに格納された面グループのデータを新たに読み込む処理を行い（Ｓ２４０３）、配列ＦＡＣＥＢに読み込むべき面グループのデータがまだ格納されている場合（Ｓ２４０４，Ｎｏ）、読み込んだ面のエッジを作成して配列ＥＤＧＥＡに格納する（Ｓ２４０５）。配列ＦＡＣＥＢに読み込むべき面グループのデータが格納されていない場合（Ｓ２４０４，Ｙｅｓ）、処理は終了する。図２２に配列ＥＤＧＥＡにおけるデータ配列の構成例を示す。
【００６１】
次に、配列ＥＤＧＥＡに格納された面グループのエッジに関するデータと配列ＥＤＧＥに格納された面グループのエッジに関するデータとを読み込み（Ｓ２４０６，Ｓ２４０７）、両者のエッジに関するデータを比較する（Ｓ２４０８）。
【００６２】
上述の比較の結果、配列ＥＤＧＥＡに格納された面グループのエッジの中に、配列ＥＤＧＥに格納されているエッジと同じエッジがあれば、配列ＥＤＧＥにおける重複するエッジのデータを削除する（Ｓ２４０９）。
【００６３】
一方、配列ＥＤＧＥＡに格納された面グループのエッジの中に、配列ＥＤＧＥに格納されているエッジと同じエッジが存在せず、配列ＥＤＧＥに次に比較すべきデータがない場合（Ｓ２４１０，Ｙｅｓ）、配列ＥＤＧＥに配列ＥＤＧＥＡに格納されているエッジのデータを格納する（Ｓ２４１１）。配列ＥＤＧＥに比較すべきデータがある場合（Ｓ２４１０，Ｎｏ）、配列ＥＤＧＥに格納された面グループのエッジに関するデータの読み込み（Ｓ２４０７）に戻る。
【００６４】
配列ＥＤＧＥＡに格納された面グループのエッジに関するデータが終了している場合（Ｓ２４１２，Ｙｅｓ）、配列ＦＡＣＥＢに格納された面グループのデータの読み込み処理（Ｓ２４０３）に戻る。一方、配列ＥＤＧＥＡに格納された面グループのエッジに関するデータが終了していない場合（Ｓ２４１２，Ｎｏ）、配列ＥＤＧＥＡに格納されたエッジのデータの読み込み処理（Ｓ２４０６）に戻る。
【００６５】
上述のステップ（Ｓ２４０３〜Ｓ２４１２）における処理を、面データ分繰り返し、各面グループにおけるエッジを抽出する（Ｓ２４０４）。
【００６６】
次に、図２３および図２４のフローチャートを用いて、それぞれの面グループにおける閉じたエッジの領域の抽出（図５のＳ２５）について説明する。ここでは、説明の便宜上、一連のフローチャートを図２３と図２４に分割している。
【００６７】
まず、配列ＥＤＧＥに格納されているエッジに関するデータを取得する（Ｓ２５０１）。ここで、取得したデータのエッジをエッジＥ１とする。
【００６８】
次に、配列ＥＤＧＥにおけるエッジＥ１のデータのフラグを確認する（Ｓ２５０２）。フラグが１でなければ（Ｓ２５０２，Ｎｏ）、面グループ番号を変数ＩＣＭＥＮに、節点番号を変数ＩＣＮＯＤＥに格納し、フラグを１に設定する（Ｓ２５０３）。
【００６９】
そして、配列ＥＤＧＥにおけるエッジＥ１に関する節点番号に基づき、これらの節点番号に対応する節点座標を配列ＮＯＤＥから取得する（Ｓ２５０４）。この取得した節点座標の最小値と最大値を、配列ＭＩＮＭＡＸに格納する（Ｓ２５０５）。図２５に配列ＭＩＮＭＡＸにおけるデータ配列の構成例を示す。
【００７０】
一方、フラグが１であった場合（Ｓ２５０２，Ｙｅｓ）、配列ＥＤＧＥに格納されているエッジに関するデータの取得ステップ（Ｓ２５０１）に戻る。
【００７１】
配列ＥＤＧＥに格納されているエッジに関するデータを新たに取得する（Ｓ２５０６）。ここで取得したデータのエッジをエッジＥ２とする。
【００７２】
次に、配列ＥＤＧＥにおけるエッジＥ２のデータのフラグを確認する（Ｓ２５０７）。フラグが１であれば（Ｓ２５０７，Ｙｅｓ）、配列ＥＤＧＥに格納されているエッジに関するデータの取得（Ｓ２５０６）に戻る（ループ２）。
【００７３】
フラグが１でなければ（Ｓ２５０７，Ｎｏ）、上述のステップ（Ｓ２５０３）において変数ＩＣＭＥＮに格納された面グループ番号および変数ＩＣＮＯＤＥに格納された節点番号と、配列ＥＤＧＥにおけるエッジＥ２の面グループ番号および節点番号とを比較し、その結果、面グループ番号が同じで且つ等しい節点番号が存在している場合（Ｓ２５０８，Ｙｅｓ）、配列ＥＤＧＥにおけるエッジＥ２に関する節点番号に基づき、これらの節点番号に対応する節点座標を配列ＮＯＤＥから取得する（Ｓ２５０９）。この取得した節点座標の最小値と最大値を、配列ＭＩＮＭＡＸ１に格納する（Ｓ２５１０）。なお、配列ＭＩＮＭＡＸ１のデータ配列の構成は、配列ＭＩＮＭＡＸのデータ配列の構成と同様となっている。
【００７４】
配列ＥＤＧＥにおけるエッジＥ２の節点番号により変数ＩＣＮＯＤＥに格納されている節点番号を更新し、フラグを１、ループ２のカウンタＪを１に設定する（Ｓ２５１１）。
【００７５】
エッジＥ１とエッジＥ２の節点座標の最小値を比較し、エッジＥ２の最小値がエッジＥ１の最小値よりも小さいとき（Ｓ２５１２，Ｙｅｓ）、最小値を更新する（Ｓ２５１３）。
【００７６】
エッジＥ１とエッジＥ２の節点座標の最大値を比較し、エッジＥ２の最大値がエッジＥ１の最大値よりも大きいとき（Ｓ２５１４，Ｙｅｓ）、最大値を更新する（Ｓ２５１５）。エッジＥ２の最大値がエッジＥ１の最大値よりも小さいとき（Ｓ２５１４，Ｎｏ）、上述のステップ（Ｓ２５１２）に戻り、同様の処理を繰り返し行い、Ｙ座標、Ｚ座標の最大値、最小値を求める（ループ３）。
【００７７】
そして、上述の処理により得られた閉じたエッジの領域に関する情報を配列ＥＤＧＥＢに格納する（Ｓ２５１６）。なお、ここでの配列ＥＤＧＥＢとは、閉じたエッジの数と領域に関する情報であり、エッジの数によってその面グループに穴が形成されていることなどが把握できる。図２６に、配列ＥＤＧＥＢにおけるデータ配列の構成例を示す。図２７に、上述の処理によって抽出された閉じたエッジの領域の例を示す。同図では、面グループ番号７（図１７に示す面グループｇ７）について抽出したエッジを示している。面グループｇ７は、節点７１〜７４からなるエッジ領域と、節点７５〜７８からなるエッジ領域の２つのエッジ領域を有している（すなわち、穴が形成されている）ことが分かる。
【００７８】
次に、図２８および図２９のフローチャートを用いて、面グループ間における接触対の定義（図５のＳ２６）について説明する。ここでは、説明の便宜上、一連のフローチャートを図２８と図２９に分割している。
【００７９】
まず、配列ＭＥＮＮＯから、１つの面グループのデータを取得する（Ｓ２６０１）。ここで取得した面グループを面Ｍ１とする。続いて、配列ＭＥＮＮＯから新たに面グループのデータを取得する（Ｓ２６０２）。ここで取得した面グループを面Ｍ２とする。配列ＭＥＮＮＯから取得した面Ｍ１および面Ｍ２に関する平面の方程式データに基づいて、面Ｍ１と面Ｍ２の法線ベクトルのなす角を求める。
【００８０】
ここで、法線ベクトルの方向が反対方向でなければ（Ｓ２６０３，Ｎｏ）、配列ＭＥＮＮＯからの新たな面グループのデータの取得処理に戻る（Ｓ２６０２）（ループ２）。
【００８１】
法線ベクトルの方向が反対方向である場合（Ｓ２６０３，Ｙｅｓ）、面Ｍ２を構成する節点の座標を、面Ｍ１の平面の方程式に代入し、代入した値の正負から、面Ｍ２が面Ｍ１における法線ベクトルの方向にある面かどうかを判断する（Ｓ２６０４）。面Ｍ２が面Ｍ１における法線ベクトルの方向にない場合（Ｓ２６０４，Ｎｏ）、配列ＭＥＮＮＯからの新たな面グループのデータの取得処理に戻る（Ｓ２６０２）（ループ２）。
【００８２】
一方、面Ｍ２が面Ｍ１における法線ベクトルの方向に存在する場合（Ｓ２６０４，Ｙｅｓ）、面Ｍ２の領域が面Ｍ１の範囲内にあるかどうか（すなわち、面Ｍ１全体における法線ベクトルの延長線上に、面Ｍ２の領域が存在するかどうか）を配列ＥＤＧＥＢに格納されているエッジ領域のデータから判断する（Ｓ２６０５）。
【００８３】
面Ｍ２の領域が面Ｍ１の範囲内になければ（Ｓ２６０５，Ｎｏ）、配列ＭＥＮＮＯからの新たな面グループのデータの取得処理に戻る（Ｓ２６０２）（ループ２）。一方、面Ｍ２の領域が面Ｍ１の範囲内にある場合（Ｓ２６０５，Ｙｅｓ）、面Ｍ１の領域のうち面Ｍ２の領域により満たされる領域（すなわち、面Ｍ２全体における法線ベクトルの延長線上に存在する面Ｍ１の領域）を配列ＡＲＥＡに格納する（Ｓ２６０６）。図３０に、配列ＡＲＥＡにおけるデータ配列の構成例を示す。
【００８４】
続いて、面Ｍ１と面Ｍ２との距離を計算し（Ｓ２６０７）、配列ＦＡＣＥＤに既に格納されている接触対の候補と考えられる面と面Ｍ１との距離と比較する（Ｓ２６０８，Ｓ２６０９）。図３１に、配列ＦＡＣＥＤにおけるデータ配列の構成例を示す。
【００８５】
配列ＦＡＣＥＤに格納されている面の領域と一致し（一致した面を面Ｍ３とする）（Ｓ２６０９，一致）、面Ｍ１と面Ｍ２の距離が面Ｍ１と面Ｍ３の距離よりも小さいとき（Ｓ２６１０，Ｙｅｓ）、配列ＦＡＣＥＤに格納されている面Ｍ３のデータを面Ｍ２のデータに書き換える（Ｓ２６１１）。
【００８６】
面Ｍ２が満たす領域と配列ＦＡＣＥＤに格納されている面が満たす領域とが一部一致するとき（一部一致した面を面Ｍ３とする）（Ｓ２６０９，一部一致）、面Ｍ１と面Ｍ２の距離が面Ｍ１と面Ｍ３の距離よりも小さければ（Ｓ２６１２，Ｙｅｓ）、面Ｍ２のデータを配列ＦＡＣＥＤに新たに格納し、一部領域が一致する面Ｍ３については、面Ｍ２が満たしている領域を面Ｍ３が満たしている領域から除いた領域を面Ｍ３の満たす領域とし、配列ＦＡＣＥＤのデータを書き換える（Ｓ２６１３）。
【００８７】
一方、面Ｍ１と面Ｍ２の距離が面Ｍ１と面Ｍ３の距離よりも大きく（Ｓ２６１２，Ｎｏ）、面Ｍ２の満たす領域が面Ｍ３の満たす領域に全て含まれない場合（Ｓ２６１４，Ｎｏ）、面Ｍ３が満たしている領域を面Ｍ２が満たしている領域から除いた領域を面Ｍ２が満たす領域として、面Ｍ２のデータを配列ＦＡＣＥＤに新たに格納する（Ｓ２６１５）。
【００８８】
面Ｍ２が満たす領域と配列ＦＡＣＥＤに格納されている面が満たす領域とが全く一致しないとき（Ｓ２６０９，不一致）、配列ＭＥＮＮＯからの新たな面グループのデータの取得処理に戻る（Ｓ２６０２）。
【００８９】
上述のステップ（Ｓ２６０２〜Ｓ２６１５）を配列ＭＥＮＮＯに格納されているデータ分だけ繰り返し（ループ２）、面Ｍ１に対して接触する可能性のある面を求め、接触対に関する情報が格納される配列ＣＰＡＩＲに当該面のデータを格納する（Ｓ２６１６）。図３２に、配列ＣＰＡＩＲにおけるデータ配列の構成例を示す。
【００９０】
すなわち、表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、所定の位置関係において、任意の物体の外表面の任意の領域（面要素のグループ）における法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域（面要素のグループ）のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義している（接触定義ステップ）。
【００９１】
上記処理を全ての面について行い（ループ１）、全ての接触対を求める。このようにして、接触対の定義を行う構成としたことにより、各面グループの面の領域を認識し、任意の１つの面グループと複数の面グループとの接触定義が可能となる。
【００９２】
なお、本実施の形態における接触対の定義では、接触する可能性の有無を判断するために、比較するそれぞれの面における法線ベクトルの方向が互いに反対方向を向いているかどうかを見ているが、この反対方向とは、厳密に反対方向を向いている場合のみに限定されるものではなく、互いにほぼ向かい合っている法線ベクトルの方向が、厳密に反対方向を向いている状態から例えば４５°の範囲内で傾斜している場合も含むようにすることもできる。
【００９３】
次に、定義された接触対に関する情報の出力（図５のＳ２７）について説明する。
【００９４】
ここでは、定義された接触対に関する情報（配列ＦＡＣＥＢおよび配列ＣＰＡＩＲ）を、有限要素解析を行うソフト（いわゆるソルバ）にて処理可能なデータ形式（解析入力ソルバ形式）で出力している。
【００９５】
具体的なデータ形式としては、例えば、
ＣＯＮＴＡＣＴ−ＮＯＤＥＳ  ２
１  ５００６５１  ５００６５８  ５００６６３  ５００６５１
２  ５００７４３  ５００７６３  ５００７３９  ５００７４３
ＣＯＮＴＡＣＴＰＡＩＲ    １      ２      ７
のように表現される。
【００９６】
ここで、「ＣＯＮＴＡＣＴ−ＮＯＤＥＳ」は、面グループ番号２の面グループが、節点番号が５００６５１、５００６５８、５００６６３、５００６５１の節点から構成される面番号１の面要素と、節点番号が５００７４３、５００７６３、５００７３９、５００７４３の節点から構成される面番号２の面要素とを有していることを表している。
【００９７】
「ＣＯＮＴＡＣＴＰＡＩＲ」は、接触対の番号が１であり、面グループ番号が２の面グループと、面グループ番号が７の面グループとからなる接触対であることを表している。
【００９８】
図３３は、上述のような接触対に関する情報を一覧出力した例を示す表である。同図に示す表では、接触対番号および面グループ番号に加えて、部品番号および面グループ間の距離も示している。
【００９９】
なお、本実施の形態では、剛性情報取得部１７によって複数の部品の剛性に関するデータ（剛性や材質等）を取得し、接触定義部１４における接触定義において利用することができる。
【０１００】
具体的には、この取得した剛性に関するデータに基づいて、接触する可能性があると定義される面グループ同士のうち、剛性が高い方の部品の面を食い込みを生じさせない面と定義する。本実施の形態では、定義した接触対に関する情報において、接触面の定義順序によって、食い込みが生じる側の面を規定しており、先に定義されている面が食い込みを生じさせない面としている（図３３参照）。
【０１０１】
この他、本実施の形態では、表面形状に関するデータがメッシュ分割された解析用入力データであることを利用して、接触する可能性があると定義される面グループ同士のうち、メッシュサイズが大きい側の面要素の領域を食い込みを生じさせない面と定義することもできる。
【０１０２】
なお、上述の実施の形態においては、接触定義において使用する法線ベクトルに関する情報を、部品の表面形状に関するデータに基づいて、ベクトル情報生成部１１にて生成する構成としているが、これに限られるものではなく、例えば、表面形状に関するデータ中に予め法線ベクトルに関する情報が含まれているような場合には、この予め含まれている法線ベクトルに関する情報を、ベクトル情報取得部１２によって取得するようにしてもよい。
【０１０３】
この他、本実施の形態では、形状データ１８ａ、位置関係情報１８ｂおよび剛性情報１８ｃがそれぞれデータベース１８に別々に格納されている例を示したが、これに限られるものではなく、例えば絶対座標系における座標値によって物体の表面形状を規定する等、形状データと位置関係情報が１つのデータによって表現される構成であってもよい。
【０１０４】
本実施の形態では、処理の高速化のために複数の面要素をグループ化してから接触対の定義を行っているが、これに限られるものではなく、個々の面要素について接触対の定義を行うことも可能である。
【０１０５】
また、曲面も面要素の集合であり、上述のような個々の面要素間での接触定義を行えば、平面と平面の間での接触定義だけでなく、平面と曲面との間での接触定義や、曲面と曲面との間での接触定義を行うこともできる。
【０１０６】
なお、上述の実施の形態では、同一物体における同一平面上に存在する複数の面要素についてグループ化を行うようにしているが、この他、例えばグループ化部によって、所定の座標軸と直交する面要素については、該直交する座標軸、該面要素の座標および該面要素における法線ベクトルの方向に基づいてグループ化を行うようにしてもよい。このように、座標軸と直交する面要素同士をグループ化して取り扱うことで、接触対の定義処理の高速化に寄与することができる。
【０１０７】
一般に、物体の表面形状に関するデータを構成している面要素は、座標軸（例えば、Ｘ−Ｙ−Ｚ座標系におけるいずれかの座標軸）と直交しているものが多く、該直交する座標軸、該面要素の座標および該面要素における法線ベクトルの方向に基づいてグループ化を行うことで、接触対となる可能性の高い面グループ同士での効率的な接触定義の処理を行うことが可能となる。
【０１０８】
なお、上述の実施の形態では、表面形状に関するデータがメッシュ分割された解析用入力データである例を示したが、メッシュ作成前の表面形状に関するデータ（いわゆる、ジオメトリデータ）を表面形状に関するデータとして用いることも可能である。ジオメトリデータは、物体のエッジやサーフェース（上述の面グループに相当）に関する情報から構成されているデータである。
【０１０９】
具体的に、ジオメトリデータを用いた接触定義では、部品ごとのジオメトリデータに基づいてサーフェース情報を取得し、このサーフェース情報に基づいてフリーエッジを求め、求めたフリーエッジを閉じた状態のエッジごとに分類し、エッジの領域を求める。そして、サーフェース情報およびエッジの領域に基づいて接触対の定義を行う。
【０１１０】
上述のように、本実施の形態によれば、複数の物体の表面形状に関するデータを取得する形状データ取得ステップと、前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得ステップと、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得ステップと、前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義ステップとを有する接触定義方法を提供することができる。
【０１１１】
また、上述のような接触定義方法において、前記物体の表面形状に関するデータは、複数の面要素のデータからなるものであり、前記表面形状に関するデータに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行うグループ化ステップを有し、前記接触定義ステップは、前記グループ化された面要素のグループの領域毎に前記定義を行うことが好ましい。また、前記グループ化ステップは、所定の座標軸と直交する面要素については、該直交する座標軸、該面要素の座標および該面要素における法線ベクトルの方向に基づいてグループ化を行うようにすることもできる。なお、前記所定の位置関係は、前記複数の物体同士を組み立てた状態における位置関係であることが望ましい。
【０１１２】
この他、上述のような接触定義方法において、前記表面形状に関するデータに基づいて、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を生成するベクトル情報生成ステップを有し、前記ベクトル情報取得ステップは、前記ベクトル情報生成ステップにおいて生成された法線ベクトルに関する情報を取得する構成としてもよい。
【０１１３】
また、上述のような接触定義方法において、前記複数の物体の剛性に関するデータを取得する剛性情報取得ステップを有し、前記接触定義ステップは、前記取得した剛性に関するデータに基づいて、接触する可能性があると定義される領域同士のうち、剛性が高い方の物体の面を食い込みを生じさせない面と定義することもできる。
【０１１４】
なお、上述のような接触定義方法において、前記表面形状に関するデータは、メッシュ分割された複数の面要素のデータからなるものであり、前記接触定義ステップは、接触する可能性があると定義される領域同士のうち、メッシュサイズが大きい側の面要素の領域を食い込みを生じさせない面と定義する構成とすることが好ましい。
【０１１５】
上述した接触定義方法における各ステップは、接触定義プログラムをコンピュータ（例えば、ＣＰＵ１９など）に実行させることにより実現される。
【０１１６】
なお、上述した接触定義プログラムは、コンピュータにより読取り可能な記録媒体（例えば、記憶部１ａなど）に記憶させることによって、接触定義装置を構成するコンピュータに実行させることが可能となる。なお、上記コンピュータにより読取り可能な記録媒体としては、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの半導体記憶装置等の可搬型記憶媒体、コンピュータに実装されるＲＯＭ、ＲＡＭや磁気記録装置等の固定型記憶装置や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【０１１７】
具体的に本実施の形態による接触定義プログラムは、複数の物体の表面形状に関するデータを取得する形状データ取得ステップと、前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得ステップと、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得ステップと、前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義ステップとをコンピュータに実行させる構成となっている。
【０１１８】
また、上述のような接触定義プログラムにおいて、前記物体の表面形状に関するデータは、複数の面要素のデータからなるものであり、前記表面形状に関するデータに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行うグループ化ステップを有し、前記接触定義ステップは、前記グループ化された面要素のグループの領域毎に前記定義を行うことが好ましい。また、前記グループ化ステップは、所定の座標軸と直交する面要素については、該直交する座標軸、該面要素の座標および該面要素における法線ベクトルの方向に基づいてグループ化を行うようにすることもできる。なお、前記所定の位置関係は、前記複数の物体同士を組み立てた状態における位置関係であることが望ましい。
【０１１９】
この他、上述のような接触定義プログラムにおいて、前記表面形状に関するデータに基づいて、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を生成するベクトル情報生成ステップを有し、前記ベクトル情報取得ステップは、前記ベクトル情報生成ステップにおいて生成された法線ベクトルに関する情報を取得する構成としてもよい。
【０１２０】
また、上述のような接触定義プログラムにおいて、前記複数の物体の剛性に関するデータを取得する剛性情報取得ステップを有し、前記接触定義ステップは、前記取得した剛性に関するデータに基づいて、接触する可能性があると定義される領域同士のうち、剛性が高い方の物体の面を食い込みを生じさせない面と定義することもできる。
【０１２１】
なお、上述のような接触定義プログラムにおいて、前記表面形状に関するデータは、メッシュ分割された複数の面要素のデータからなるものであり、前記接触定義ステップは、接触する可能性があると定義される領域同士のうち、メッシュサイズが大きい側の面要素の領域を食い込みを生じさせない面と定義する構成とすることが好ましい。
【０１２２】
以上、本実施の形態によれば、接触対の定義処理を自動的に行うことにより、ケアレスミスを防ぐことができ、接触面および接触対の定義に要する時間を大幅に短縮することができる。また、面グループの領域を認識した上で接触する可能性のある面の判別を行っているため、１つの面グループと複数の面グループとの間での接触定義が可能となる。
【０１２３】
また、本実施の形態によれば、複数の物体間における互いに接触する可能性がある面の対の定義を正確かつ効率的に行うことのできる接触定義装置、接触定義プログラムおよび接触定義方法を提供することができる。
（付記１）複数の物体の表面形状に関するデータを取得する形状データ取得部と、
前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得部と、
前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得部と、
前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義部と
を備えてなる接触定義装置。
（付記２）付記１に記載の接触定義装置において、
前記物体の表面形状に関するデータは、複数の面要素のデータからなるものであり、
前記表面形状に関するデータに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行うグループ化部を有し、
前記接触定義部は、前記グループ化された面要素のグループの領域毎に前記定義を行う接触定義装置。
（付記３）付記１に記載の接触定義装置において、
前記所定の位置関係は、前記複数の物体同士を組み立てた状態における位置関係である接触定義装置。
（付記４）付記１に記載の接触定義装置において、
前記表面形状に関するデータに基づいて、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を生成するベクトル情報生成部を有し、
前記ベクトル情報取得部は、前記ベクトル情報生成部により生成された法線ベクトルに関する情報を取得する接触定義装置。
（付記５）付記１に記載の接触定義装置において、
前記複数の物体の剛性に関するデータを取得する剛性情報取得部を有し、
前記接触定義部は、前記取得した剛性に関するデータに基づいて、接触する可能性があると定義される領域同士のうち、剛性が高い方の物体の面を食い込みを生じさせない面と定義する接触定義装置。
（付記６）付記１に記載の接触定義装置において、
前記表面形状に関するデータは、メッシュ分割された複数の面要素のデータからなるものであり、
前記接触定義部は、接触する可能性があると定義される領域同士のうち、メッシュサイズが大きい側の面要素の領域を食い込みを生じさせない面と定義する接触定義装置。
（付記７）複数の物体の表面形状に関するデータを取得する形状データ取得ステップと、
前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得ステップと、
前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得ステップと、
前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義ステップと
をコンピュータに実行させる接触定義プログラム。
（付記８）付記７に記載の接触定義プログラムにおいて、
前記物体の表面形状に関するデータは、複数の面要素のデータからなるものであり、
前記表面形状に関するデータに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行うグループ化ステップを有し、
前記接触定義ステップは、前記グループ化された面要素のグループの領域毎に前記定義を行う接触定義プログラム。
（付記９）付記７に記載の接触定義プログラムにおいて、
前記所定の位置関係は、前記複数の物体同士を組み立てた状態における位置関係である接触定義プログラム。
（付記１０）付記７に記載の接触定義プログラムにおいて、
前記表面形状に関するデータに基づいて、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を生成するベクトル情報生成ステップを有し、
前記ベクトル情報取得ステップは、前記ベクトル情報生成ステップにおいて生成された法線ベクトルに関する情報を取得する接触定義プログラム。
（付記１１）付記７に記載の接触定義プログラムにおいて、
前記複数の物体の剛性に関するデータを取得する剛性情報取得ステップを有し、
前記接触定義ステップは、前記取得した剛性に関するデータに基づいて、接触する可能性があると定義される領域同士のうち、剛性が高い方の物体の面を食い込みを生じさせない面と定義する接触定義プログラム。
（付記１２）付記７に記載の接触定義プログラムにおいて、
前記表面形状に関するデータは、メッシュ分割された複数の面要素のデータからなるものであり、
前記接触定義ステップは、接触する可能性があると定義される領域同士のうち、メッシュサイズが大きい側の面要素の領域を食い込みを生じさせない面と定義する接触定義プログラム。
（付記１３）複数の物体の表面形状に関するデータを取得する形状データ取得ステップと、
前記複数の物体間の所定の位置関係に関する位置関係情報を取得する位置関係情報取得ステップと、
前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を取得するベクトル情報取得ステップと、
前記表面形状に関するデータ、位置関係情報および法線ベクトルに関する情報に基づいて、前記所定の位置関係において、任意の物体の外表面の任意の領域における前記法線ベクトルの方向に位置する該法線ベクトルと略反対方向の法線ベクトルをもつ他の物体の外表面の領域のうち、該任意の領域に最も近い領域を、該任意の領域と接触する可能性のある領域と定義する接触定義ステップと
を有する接触定義方法。
（付記１４）付記１３に記載の接触定義方法において、
前記物体の表面形状に関するデータは、複数の面要素のデータからなるものであり、
前記表面形状に関するデータに基づいて、同一物体における同一平面上に存在する複数の面要素についてグループ化を行うグループ化ステップを有し、
前記接触定義ステップは、前記グループ化された面要素のグループの領域毎に前記定義を行う接触定義方法。
（付記１５）付記１３に記載の接触定義方法において、
前記所定の位置関係は、前記複数の物体同士を組み立てた状態における位置関係である接触定義方法。
（付記１６）付記１３に記載の接触定義方法において、
前記表面形状に関するデータに基づいて、前記複数の物体のうちの任意の物体の外表面の任意の領域における該物体の外側に向かう法線ベクトルに関する情報を生成するベクトル情報生成ステップを有し、
前記ベクトル情報取得ステップは、前記ベクトル情報生成ステップにおいて生成された法線ベクトルに関する情報を取得する接触定義方法。
（付記１７）付記１３に記載の接触定義方法において、
前記複数の物体の剛性に関するデータを取得する剛性情報取得ステップを有し、
前記接触定義ステップは、前記取得した剛性に関するデータに基づいて、接触する可能性があると定義される領域同士のうち、剛性が高い方の物体の面を食い込みを生じさせない面と定義する接触定義方法。
（付記１８）付記１３に記載の接触定義方法において、
前記表面形状に関するデータは、メッシュ分割された複数の面要素のデータからなるものであり、
前記接触定義ステップは、接触する可能性があると定義される領域同士のうち、メッシュサイズが大きい側の面要素の領域を食い込みを生じさせない面と定義する接触定義方法。
【図面の簡単な説明】
【０１２４】
【図１】本発明の実施の形態による接触定義装置の全体構成を示す機能ブロック図である。
【図２】本実施の形態による接触定義装置における処理の流れを示すフローチャートである。
【図３】接触定義を行う対象となる複数の物体の例としての部品Ａ、部品Ｂおよび部品Ｃを示す図である。
【図４】部品Ａ、部品Ｂおよび部品Ｃが組み立てられた状態を示す図である。
【図５】本実施の形態における解析用入力データを用いた接触定義の具体的な処理の流れを示すフローチャートである。
【図６】解析用入力ファイルの読み込みについて説明するためのフローチャートである。
【図７】配列ＮＯＤＥにおけるデータ配列の構成例を示す図である。
【図８】配列ＥＬＥＭにおけるデータ配列の構成例を示す図である。
【図９】各部品の外表面形状の抽出について説明するためのフローチャートである。
【図１０】配列ＦＡＣＥＡにおけるデータ配列の構成例を示す図である。
【図１１】６面体（直方体）における節点の順序の定義方法について説明するための図である。
【図１２】５面体（三角柱）における節点の順序の定義方法について説明するための図である。
【図１３】節点の順序の定義方法について説明するための図である。
【図１４】配列ＦＡＣＥにおけるデータ配列の構成例を示す図である。
【図１５】配列ＫＴ３におけるデータ配列の構成例を示す図である。
【図１６】面グループの分類について説明するためのフローチャートである。
【図１７】配列ＭＥＮＮＯにおけるデータ配列の構成例を示す図である。
【図１８】配列ＦＡＣＥＢにおけるデータ配列の構成例を示す図である。
【図１９】部品Ａ〜部品Ｃを構成する各面要素がグループ分けされた様子を示す図である。
【図２０】それぞれの面グループにおけるフリーエッジの作成について説明するためのフローチャートである。
【図２１】配列ＥＤＧＥにおけるデータ配列の構成例を示す図である。
【図２２】配列ＥＤＧＥＡにおけるデータ配列の構成例を示す図である。
【図２３】それぞれの面グループにおける閉じたエッジの領域の抽出について説明するためのフローチャートである。
【図２４】それぞれの面グループにおける閉じたエッジの領域の抽出について説明するためのフローチャートである。
【図２５】配列ＭＩＮＭＡＸにおけるデータ配列の構成例を示す図である。
【図２６】配列ＥＤＧＥＢにおけるデータ配列の構成例を示す図である。
【図２７】抽出された閉じたエッジの領域の例を示す図である。
【図２８】面グループ間における接触対の定義について説明するためのフローチャートである。
【図２９】面グループ間における接触対の定義について説明するためのフローチャートである。
【図３０】配列ＡＲＥＡにおけるデータ配列の構成例を示す図である。
【図３１】配列ＦＡＣＥＤにおけるデータ配列の構成例を示す図である。
【図３２】配列ＣＰＡＩＲにおけるデータ配列の構成例を示す図である。
【図３３】接触対に関する情報を一覧出力した例を示す表である。
【符号の説明】
【０１２５】
１１  ベクトル情報生成部、１２  ベクトル情報取得部、１３  グループ化部、１４  接触定義部、１５  形状データ取得部、１６  位置関係情報取得部、１７  剛性情報取得部、１８  データベース、１９  ＣＰＵ、１ａ  記憶部。
【図１】
2006048583.tif 000003
【図２】
2006048583.tif 000004
【図３】
2006048583.tif 000005
【図４】
2006048583.tif 000006
【図５】
2006048583.tif 000007
【図６】
2006048583.tif 000008
【図７】
2006048583.tif 000009
【図８】
2006048583.tif 000010
【図９】
2006048583.tif 000011
【図１０】
2006048583.tif 000012
【図１１】
2006048583.tif 000013
【図１２】
2006048583.tif 000014
【図１３】
2006048583.tif 000015
【図１４】
2006048583.tif 000016
【図１５】
2006048583.tif 000017
【図１６】
2006048583.tif 000018
【図１７】
2006048583.tif 000019
【図１８】
2006048583.tif 000020
【図１９】
2006048583.tif 000021
【図２０】
2006048583.tif 000022
【図２１】
2006048583.tif 000023
【図２２】
2006048583.tif 000024
【図２３】
2006048583.tif 000025
【図２４】
2006048583.tif 000026
【図２５】
2006048583.tif 000027
【図２６】
2006048583.tif 000028
【図２７】
2006048583.tif 000029
【図２８】
2006048583.tif 000030
【図２９】
2006048583.tif 000031
【図３０】
2006048583.tif 000032
【図３１】
2006048583.tif 000033
【図３２】
2006048583.tif 000034
【図３３】
2006048583.tif 000035