(57)【特許請求の範囲】
【請求項１】
複数の物体の形状と位置関係とを示す形状データを入力する入力手段と、
所定のサイズの複数のブロックで構成された空間において、前記形状データが示す前記複数の物体の形状と位置関係とに基づいて、前記複数のブロックのそれぞれに対応する物体又は空間の属性を割り当てたブロックデータを生成する生成手段と、
前記ブロックデータにおいて、物体の属性を有するブロックに隣接するブロックのうちの一部を、前記形状データにおける前記複数の物体同士の接触状態と前記ブロックデータにおける前記複数の物体同士の接触状態との違いを検出する処理に用いるブロックとして、前記形状データが示す前記複数の物体の位置関係に基づいて決定する決定手段と、
前記物体の属性を有するブロックに隣接するブロックのうち、前記決定手段により前記検出処理に用いるブロックとして決定されたブロックを用いて、前記接触状態の違いを検出する検出手段とを有することを特徴とする情報処理装置。
【請求項２】
前記形状データにおける前記複数の物体同士の接触状態と前記ブロックデータにおける
前記複数の物体同士の接触状態との間で違いが検出された場合に、前記複数の物体のうちの少なくとも一部の接触状態が前記形状データと前記ブロックデータとで同じになるように、前記ブロックデータが有するブロックのうちの一部の属性を補正する補正手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数の物体が有する各面について、前記形状データにおける前記各面での別物体との接触状態を示す情報を取得する取得手段と、
前記ブロックデータにおいて、前記複数の物体が有する各面について、該面に隣接するブロックを抽出する抽出手段と、を更に有し、
前記補正手段は、前記各面に隣接するブロックの属性が、前記接触状態を示す情報から予想される属性と異なる場合に、前記各面に隣接するブロックの属性を、前記接触状態を示す情報から予想される属性に補正することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記補正手段は、前記ブロックデータにおいて、前記複数の物体のうちの第一の物体について前記属性の補正処理を行い、
前記抽出手段は、前記複数の物体のうちの、前記第一の物体とは異なる第二の物体が有する各面に隣接するブロックを、前記第一の物体についての前記属性の補正処理が行われたブロックデータにおいて抽出し、
前記補正手段は、前記第一の物体について前記属性の補正処理が行われたブロックデータにおいて、前記第二の物体について前記属性の補正処理を行うことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記抽出手段は、前記ブロックデータにおいて、前記複数の物体が有する各面について、該面を構成するブロックを更に抽出し、
前記補正手段は、前記ブロックデータにおいて、面を構成するブロックの属性が部品から空間に補正された場合に、該ブロックが構成する面に隣接するブロックの属性の補正を行わないことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記形状データにおける前記複数の物体同士の接触状態と前記ブロックデータにおける前記複数の物体同士の接触状態との間で違いが検出された場合に、前記違いをユーザに通知する通知手段を更に有することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記形状データにおける前記複数の物体が有する複数の面について、各面から別の物体までの距離を取得する距離取得手段と、
前記決定手段は、前記ブロックデータが有するブロックのうち、前記別の物体までの距離が所定の閾値よりも小さい面に対応するブロックを、前記検出処理に用いるブロックとして決定することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記決定手段は、前記複数の面のうち前記別の物体までの距離が前記面の面外方向における前記ブロックデータの最大の要素長以下である面に隣接するブロックを、前記検出処理に用いるブロックとして決定することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記決定手段は、前記複数の面のうち、前記別の物体までの距離も０から１までの所定の係数を乗算した値が前記面の面外方向における前記ブロックデータの最大の要素長以下である面に隣接するブロックを、前記検出に用いるブロックとして決定することを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
複数の物体の形状と位置関係とを示す形状データを入力する入力手段と、
所定のサイズの複数のブロックで構成された空間において、前記形状データが示す前記複数の物体の形状と位置関係とに基づいて、前記複数のブロックのそれぞれに対応する物
体又は空間の属性を割り当てたブロックデータを生成する生成手段と、
前記ブロックデータにおいて、物体の属性を有するブロックに隣接するブロックのうちの一部を、前記形状データにおける前記複数の物体同士の接触状態と前記ブロックデータ
における前記複数の物体同士の接触状態との違いを検出する処理に用いるブロックとして、前記複数の物体の物性を示す情報に基づいて決定する決定手段と、
前記物体の属性を有するブロックに隣接するブロックのうち、前記決定手段により前記検出処理に用いるとして決定されたブロックを用いて、前記接触状態の違いを検出する検出手段とを有することを特徴とする情報処理装置。
【請求項１１】
前記決定手段は、前記複数の物体の物性を示す情報を取得し、
前記決定手段は、前記複数の物体が有する複数の面のうちのある面において、前記ある
面を有する物体と前記ある面に最も近い物体との物性の関係が所定の条件を満たす場合に、前記ブロックデータが有するブロックのうち、前記ある面に隣接するブロックを、前記検出処理に用いるブロックとして決定することを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記決定手段は、前記複数の物体のそれぞれが導電性であるか非導電性であるかを示す
情報を取得し、
前記決定手段は、前記ある面を有する物体と前記ある面に最も近い物体との両方が導電性である場合に、前記ブロックデータが有するブロックのうち、前記ある面に隣接するブロックを、前記検出処理に用いるブロックとして決定することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記決定手段は、前記複数の物体の導電率を示す情報を取得し、
前記決定手段は、前記ある面を有する物体と前記ある面に最も近い物体とのうちの両方の導電率が所定の閾値よりも大きい場合、前記ブロックデータが有するブロックのうち、
前記ある面に隣接するブロックを、前記検出処理に用いるブロックとして決定することを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
前記決定手段は、前記複数の物体の熱伝導率を示す情報を取得し、
前記決定手段は、前記ある面を有する物体と前記ある面に最も近い物体とのうちの両方の熱伝導率が所定の閾値よりも大きい場合、前記ブロックデータが有する要素のうち、前記ある面に隣接するブロックを、前記検出処理に用いるブロックとして決定することを特徴とする請求項１１に記載の情報処理装置。
【請求項１５】
前記接触状態は、前記複数の物体が互いに接触しているかどうかを示す状態であることを特徴とする請求項１乃至１４のいずれか一項に記載の情報処理装置。
【請求項１６】
前記形状データはＣＡＤデータであることを特徴とする請求項１乃至１５のいずれか一項に記載の情報処理装置。
【請求項１７】
入力手段が、複数の物体の形状と位置関係とを示す形状データを入力する入力工程と、
生成手段が、所定のサイズの複数のブロックで構成された空間において、前記形状データが示す前記複数の物体の形状と位置関係とに基づいて、前記複数のブロックのそれぞれに対応する物体又は空間の属性を割り当てたブロックデータを生成する生成工程と、
決定手段が、前記ブロックデータにおいて、物体の属性を有するブロックに隣接するブロックのうちの一部を、前記形状データにおける前記複数の物体同士の接触状態と前記ブロックデータにおける前記複数の物体同士の接触状態との違いを検出する処理に用いるブロックとして、前記形状データが示す前記複数の物体の位置関係に基づいて決定する決定工程と、
検出手段が、前記物体の属性を有するブロックに隣接するブロックのうち、前記決定工程により前記検出処理に用いるとして決定されたブロックを用いて、前記接触状態の違いを検出する検出工程とを含むことを特徴とする情報処理方法。
【請求項１８】
入力手段が、複数の物体の形状と位置関係とを示す形状データを入力する入力工程と、
生成手段が、所定のサイズの複数のブロックで構成された空間において、前記形状データが示す前記複数の物体の形状と位置関係とに基づいて、前記複数のブロックのそれぞれに対応する物体又は空間の属性を割り当てたブロックデータを生成する生成工程と、
決定手段が、前記ブロックデータにおいて、物体の属性を有するブロックに隣接するブロックのうちの一部を、前記形状データにおける前記複数の物体同士の接触状態と前記ブロックデータにおける前記複数の物体同士の接触状態との違いを検出する処理に用いるブロックとして、前記複数の物体の物性を示す情報に基づいて決定する決定工程と、
検出手段が、前記物体の属性を有するブロックに隣接するブロックのうち、前記決定工程により前記検出処理に用いるとして決定されたブロックを用いて、前記接触状態の違いを検出する検出工程とを含むことを特徴とする情報処理方法。
【請求項１９】
コンピュータを請求項１乃至１６のいずれか一項に記載の情報処理装置として機能させ
るプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元ＣＡＤモデルから数値解析用のデータを作成する技術に関する。
【背景技術】
【０００２】
部品や製品の設計において、各部品の三次元的な形状と位置関係とを示す三次元データを作成可能なＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）システムが広く利用されている。そして、ＣＡＤシステムにより作成されたＣＡＤデータを利用して、部品や製品の形状の設計だけでなく、部品や製品の物理的特性を解析する技術も存在する。ＣＡＤデータを利用して部品や製品の物理的特性を解析するにあたって、ＣＡＤデータは、三次元空間を所定の大きさの複数のブロックに分割した要素分割データに変換される。この際に、特に部品の曲面や斜めの面において部品の形状が上手く再現されず、要素分割データにおいて、部品同士の接触関係が設計時に意図したものではなくなってしまう可能性がある。特に電磁界解析においては導電性材料の部品同士の接触関係が変化すると計算精度に大きな影響があるため、ＣＡＤデータにおける部品同士の接触関係が保たれた要素分割データを用いて解析が行われることが望まれる。
【０００３】
ＣＡＤデータにおける部品同士の接触関係が保たれた要素分割データを生成する方法として、特許文献１に記載の技術と特許文献２に記載の技術とがある。特許文献１には、設計者がＣＡＤデータの形状特徴ごとに設計指針を予め指定しておき、指定された設計指針が要素分割データにおいて守られているかどうかを判定し、守られていない場合には要素分割データを補正することが記載されている。また、特許文献２には、ＣＡＤデータで接触関係にあった部品同士が要素分割データにおいて非接触となっている場合に、非接触となった部分を穴埋めして接触状態に補正する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ１２／１１４４５７号公報
【特許文献２】特開２００６−１８５２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示される技術のように、設計指針を形状特徴ごとに指定しておくことは、数百部品あるような製品のＣＡＤデータの解析を行う場合には困難である。更に、特許文献１に開示される技術では、あらかじめ指定した特徴形状以外の部分に対する接触関係の変化は検出することができないという課題がある。また、特許文献２に開示される技術では、ＣＡＤデータ上で部品同士が接触していた面すべてに対して接触状態の変化の確認を行う必要があり、処理に時間がかかってしまうという課題がある。
そこで、本発明は、ＣＡＤデータにおける部品同士の接触状態を保った要素分割データを生成する際の処理量を低減することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る情報処理装置は、複数の物体の形状と位置関係とを示す形状データを入力する入力手段と、所定のサイズの複数のブロックで構成された空間において、前記形状データが示す前記複数の物体の形状と位置関係とに基づいて、前記複数のブロックのそれぞれに対応する物体又は空間の属性を割り当てたブロックデータを生成する生成手段と、前記ブロックデータにおいて、物体の属性を有するブロックに隣接するブロックのうちの一部を、前記形状データにおける前記複数の物体同士の接触状態と前記ブロックデータにおける前記複数の物体同士の接触状態との違いを検出する処理に用いるブロックとして、前記形状データが示す前記複数の物体の位置関係に基づいて決定する決定手段と、前記決定手段により、前記物体の属性を有するブロックに隣接するブロックのうち、前記決定手段により前記検出処理に用いるとして決定されたブロックを用いて、前記接触状態の違いを検出する検出手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ＣＡＤデータにおける部品同士の接触状態を保った要素分割データを生成する際の処理量が低減できる、
【図面の簡単な説明】
【０００８】
【図１】実施例１に係る情報処理装置の構成を示すブロック図。
【図２】実施例１に係る情報処理装置の機能的な構成を示すブロック図。
【図３】実施例１に係る情報処理装置で行われる処理の流れを示すフローチャート。
【図４】ＣＡＤデータの例を示す図。
【図５】ＣＡＤデータの要素分割方法を示す図。
【図６】実施例１における要素分割データの補正方法を示す図。
【図７】実施例１の第一判定部で行われる処理の流れを示すフローチャート。
【図８】実施例１におけるフェース分割処理を説明する図。
【図９】実施例１の第二判定部で行われる処理の流れを示すフローチャート。
【図１０】実施例１の第二判定部で行われる処理を説明する図。
【図１１】実施例１の比較部で行われる処理の流れを示すフローチャート。
【図１２】安全率の概念を説明する図。
【図１３】実施例２におけるフェース情報の例を示す図。
【図１４】実施例２の比較部で行われる処理の流れを示すフローチャート。
【図１５】実施例２における要素分割データの補正方法を示す図。
【図１６】実施例３に係る情報処理装置の機能的な構成を示すブロック図。
【図１７】実施例３に係る情報処理装置で行われる処理の流れを示すフローチャート。
【図１８】実施例３の関連付け部で行われる処理の流れを示すフローチャート。
【図１９】実施例３の補正部で行われる処理の流れを示すフローチャート。
【図２０】要素情報とフェース情報の例を示す表。
【発明を実施するための形態】
【０００９】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１０】
＜実施例１＞
実施例１では、ＣＡＤデータを要素分割データに変換した場合に、接触状態の変化の確認を行う面を限定することで、ＣＡＤデータにおける部品同士の接触状態を保った解析モデルを生成する際の処理量を低減する例について説明する。図１は、実施例１に係る情報処理装置の構成の一例を示す図である。実施例１の情報処理装置１００（以下、処理装置１００とする）は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、二次記憶装置１０４、入力インターフェース１０５、出力インターフェース１０６を含む。そして、処理装置１００の各構成部はシステムバス１０７によって相互に接続されている。また、処理装置１００は、入力インターフェース１０５を介して入力装置１０８に接続されており、出力インターフェース１０６を介して表示装置１０９に接続されている。
【００１１】
ＣＰＵ１０１は、ＲＡＭ１０２をワークメモリとして、ＲＯＭ１０３に格納されたプログラムを実行し、システムバス１０７を介して処理装置１００の各構成部を統括的に制御するプロセッサーである。これにより、後述する様々な処理が実行される。
【００１２】
二次記憶装置１０４は、処理装置１００で取り扱われる種々のデータを記憶する記憶装置であり、本実施例ではＨＤＤが用いられる。ＣＰＵ１０１は、システムバス１０７を介して二次記憶装置１０４へのデータの書き込みおよび二次記憶装置１０４に記憶されたデータの読出しを行うことができる。なお、二次記憶装置１０４にはＨＤＤの他に、光ディスクドライブやフラッシュメモリなど、様々な記憶デバイスを用いることが可能である。
【００１３】
入力インターフェース１０５は、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインターフェースであり、外部装置から処理装置１００へのデータや命令等の入力は、この入力インターフェース１０５を介して行われる。処理装置１００は、この入力インターフェース１０５を介して、マウスやキーボードなどの入力デバイスである入力装置１０８と接続されており、ユーザは入力装置１０８を用いて様々な処理命令を入力することができる。
【００１４】
出力インターフェース１０６は例えばＤＶＩやＨＤＭＩ（登録商標）等の映像出力端子であり、処理装置１００は、この出力インターフェース１０６を介して表示装置１０９（液晶ディスプレイなどの各種画像表示デバイス）に接続されている。処理装置１００は、この出力インターフェース１０６を介して表示装置１０９にユーザの命令を補助する画像を表示する。なお、出力インターフェース１０６は入力インターフェース１０５と同様にＵＳＢやＩＥＥＥ１３９４等のシリアルバスインターフェースを用いてもよい。なお、処理装置１００の構成要素は上記以外にも存在するが、本発明の主眼ではないため、説明を省略する。
【００１５】
以下、実施例１の処理装置１００で行われる処理について、図２および図３を参照して説明する。図２は、処理装置１００の機能構成を示すブロック図である。処理装置１００は、ＲＯＭ１０３に格納されたプログラムをＣＰＵ１０１がＲＡＭ１０２をワークメモリとして実行することで、図２に示す各構成部として機能し、図３のフローチャートに示す一連の処理を実行する。なお、以下に示す処理の全てがＣＰＵ１０１によって実行される必要はなく、処理の一部または全部が、ＣＰＵ１０１以外の一つ又は複数の処理回路によって行われるように処理装置１００が構成されてもよい。以下、各構成部により行われる処理の流れを説明する。
【００１６】
ステップＳ３０１では、取得部２０１が二次記憶装置１０４等に格納された処理対象のＣＡＤデータを取得する。本実施例で用いるＣＡＤデータの例を図４に示す。図４は、簡易的な形状をもつ複数部品の三次元形状および位置関係を含むＣＡＤデータを示す図である。本実施例で用いるＣＡＤデータは、部品４０１〜４０５の三次元形状と位置関係を示すデータであり、各部品に対応するデータ点はそれぞれ対応する部品を示すタグ情報と紐づいているものとする。これら複数部品は、便宜上二次元形状として表現されているが、Ｚ方向にも寸法をもつ三次元形状の部品である。なお、ここで入力されるＣＡＤデータは三次元ＣＡＤデータに限られず、二次元の設計データも用いることができる。取得部２０１は、取得したＣＡＤデータを決定部２０２と変換部２０３とに出力する。
【００１７】
ステップＳ３０２では、決定部２０２が、取得部２０１から入力されたＣＡＤデータにおける各部品の接触状態を判定し各部品の面を示すフェース情報を決定する。ここでの処理の詳細については後述する。決定部２０２は、ＣＡＤデータにおける各部品の接触状態を示す第一のフェース情報を関連付け部２０４と検出部２０５とに出力する。
【００１８】
ステップＳ３０３では、変換部２０３が、取得部２０１から入力されたＣＡＤデータを解析用の要素分割データに変換する。図５は、本実施例で用いる解析手法であるＦｉｎｉｔｅ  Ｄｉｆｆｅｒｅｎｃｅ  Ｔｉｍｅ−Ｄｍａｉｎ（ＦＤＴＤ）法における要素分割方法を示す図である。ＦＤＴＤ法では解析対象のＣＡＤデータを、ＸＹ、ＹＺ、ＺＸ平面と平行に、各辺が所定の要素長を有する複数の直方体の要素に分割する。なお、ＸＹＺの各座標軸は任意に設定してよい。ここで用いる要素長はユーザが任意に指定してもよいし、計算したい電磁界の周波数の波長などから自動的に指定されるようにしてもよい。また、要素長は各座標軸方向の間で等しい必要はなく、各座標軸で異なるように設定してもよい。本実施例では、各座標軸について一律に１５ｍｍの要素長を設定しているため、図５（ａ）のように１５ｍｍ間隔で区切られたブロック一つ一つが要素となる。そして、各ブロックにおいて占める体積の割合が最も大きい部品又は空間の属性が、そのブロックの属性として割り当てられる。すなわち、ここで行われる処理は、所定のサイズの複数のブロックで構成された空間において、ＣＡＤデータが示す複数の物体の形状と位置関係とに基づいて、複数のブロックのそれぞれに対応する物体又は空間の属性を割り当てる処理である。
【００１９】
図５（ｂ）は要素分割の結果、各ブロックに属性が割り当てられた要素分割データを示す図である。例えば、要素０３に対応するブロックには、図５（ａ）において解析空間（部品が存在しない、空気に対応する領域）と部品４０２とが含まれており、かつ部品４０２の体積の方が大きな割合を占めているため、部品４０２の属性が割り当てられる。なお、説明の便宜上、図５（ｂ）には部品４０１〜４０４に対応する要素と、部品４０１を取り囲む要素とのみが表記されているが、実際は空間全体の要素にそれぞれ属性が割り当てられている。変換部２０３は、生成した要素分割データを関連付け部２０４に出力する。
【００２０】
ステップＳ３０４では、関連付け部２０４が、接触状態の変化を調べる部品を選択する。ここではまずは部品４０１が選択されたものとして説明する。
【００２１】
ステップＳ３０５では、関連付け部２０４が、ステップＳ３０４で選択された部品について、決定部２０２から入力された第一のフェース情報が示す各面と、変換部２０３から入力された要素分割データが有する要素のうち、各面に接する要素とを関連付ける。ここで行われる関連付け処理の詳細については後述する。関連付け部２０４は、ここで得られた要素分割データにおける面と要素との対応を示す第二のフェース情報を検出部２０５に出力する。
【００２２】
ステップＳ３０６では、検出部２０５が、決定部２０２から入力された第一のフェース情報と、関連付け部２０４から入力された第二のフェース情報とを用いて、ＣＡＤデータから要素分割データに変換された際の部品の接触状態の変化を検出する。そして、要素分割データにおいて属性の補正を行う要素を決定し、補正を行う要素の番号と補正後の属性とを示す情報を補正部２０６に出力する。ここで行う処理の詳細については後述する。検出部２０５は、補正を行う要素を示す情報を補正部２０６に出力する。
【００２３】
ステップＳ３０７では、補正部２０６が、検出部２０５から入力された情報に基づいて、変換部２０３から入力された要素分割データに補正を行う。以下、本実施例における補正について説明する。図６は図５（ｂ）に示す要素分割データに補正を行った例を示す図である。図５（ｂ）に示す要素分割データでは、各部品の接触状態が図５（ａ）に示すＣＡＤデータから変化している。例えば、部品４０２と部品４０５はＣＡＤデータでは部品４０１と接触していないが、要素分割データにおいてはどちらも部品４０１と接触している。また、部品４０３はＣＡＤデータでは部品４０１と接触しているが、要素分割データでは部品４０１と接触していない。そこで、補正部２０６は各部品の接触状態がＣＡＤデータにおける接触状態と同じになるように、要素分割データを補正する。具体的には要素０３と要素０９の属性をそれぞれ部品４０２および部品４０４から解析空間へ、そして、要素０６と要素０７の属性を解析空間から部品４０３へと補正する。
【００２４】
ステップＳ３０８では、補正部２０６が、全ての部品についてステップＳ３０４〜ステップＳ３０７の処理が行われたかどうかを判定する。全ての部品についてステップＳ３０４〜ステップＳ３０７の処理が行われたと判定された場合、補正部２０６は、補正が完了した要素分割データを二次記憶装置１０４や表示装置１０９に出力して処理を終了する。全ての部品についてステップＳ３０４〜ステップＳ３０７の処理が行われていないと判定された場合、補正部２０６は補正済みの要素分割データを関連付け部２０４と検出部２０５とに出力し、ステップＳ３０４に戻って関連付け部２０４が新たな部品を選択する。
【００２５】
以上が本実施例における処理の流れである。以下、各ステップにおける詳細な処理について説明する。まずは、決定部２０２で行われる処理（ステップＳ３０２）の詳細について説明する。図７は、ステップＳ３０２の詳細を示すフローチャートである。
【００２６】
ステップＳ７０１では、決定部２０２が、取得部２０１から入力されたＣＡＤデータにおいて、接触状態を調べる部品を選択する。ここでは、まずは部品４０１が選択されたものとして説明する。ステップＳ７０２では、決定部２０２が、ステップＳ７０１で選択された部品に接触している他部品を検出する。接触している部品の検出には、公知の方法を用いることができる。例えば、本実施例では、決定部２０２が、部品の各面を構成するメッシュ点ごとに、面の法線方向に存在する別物体までの距離を導出する。そして、導出された距離が所定の閾値よりも小さいメッシュ点は、別部品に接触しているとして検出される。本実施例では、部品４０１と接触している部品として部品４０３が検出される。
【００２７】
ステップＳ７０３では、決定部２０２が、ステップＳ７０２で検出した他部品との接触領域を別フェースとして分割する。図８は、そのフェース分割方法を示す図である。図８において部品４０１は４つの面を有する平行四辺形として表現されているが、ＣＡＤデータにおいて部品４０１の底面の一部は部品４０３と接触している。そして、部品４０１の底面は部品４０３に接触している領域と接触していない領域とで別のフェースにとして分割される。すなわち、部品４０１の底面は面３２、面３３、面３４に分割される。
【００２８】
ステップＳ７０４では、決定部２０２が、ステップＳ７０３で分割された各フェースに関する情報を記録し、第一のフェース情報として関連付け部２０４と検出部２０５とに出力する。決定部２０２は、図８（ｂ）に示すリストのように、各面のＩＤと、各面に最も近い部品の番号と、最も近い部品までの距離と、各面の法線方向に含まれる成分のうち、最も大きな成分を有する座標軸方向とを示すデータを第一のフェース情報として生成する。また、第一のフェース情報には、各フェースを構成するメッシュ点の座標も、ＣＡＤデータよりは粗い間隔で抽出して格納しておくものとする。たとえば、要素分割に用いられる要素長に等しい間隔で抽出しておくものとする。そして、生成した第一のフェース情報を関連付け部２０４と検出部２０５とに出力する。なお、最も近い部品の番号とその部品までの距離と、各面の法線方向に含まれる最も大きな座標軸方向の成分とは、ステップＳ７０２において部品の接触状態を検出する際に取得しておくものとする。なお、例えば法線方向に含まれる＋ｘ成分と＋ｙ成分との大きさが等しい場合には、どちらか一方、例えば＋ｘ成分を優先するように予め設定しておき、その予め設定された関係に基づいて記録する方向を決定するようにする。また、説明の便宜上、部品４０１のフェースは面３６までしか表記していないが、実際には±Ｚ方向にあるフェースも処理の対象となる。
【００２９】
ステップＳ７０５では、決定部２０２が、入力されたＣＡＤデータ中の全ての部品についてＳ７０１〜Ｓ７０４の処理が行われたかどうかを判定する。全ての部品についてＳ７０１〜Ｓ７０４の処理が行われていないと判定された場合には、ステップＳ７０１に戻り、新たな部品を選択する。全ての部品についてステップＳ７０１〜Ｓ７０４の処理が行われたと判定された場合は処理を終了する。
【００３０】
以上が決定部２０２で行われる処理の流れである。次に、関連付け部２０４で行われる処理（ステップＳ３０５）の詳細について説明する。図９は、ステップＳ３０５の処理の詳細を示すフローチャートである。ステップＳ９０１では、関連付け部２０４が、変換部２０３から入力された要素分割データにおいて、分割された全要素の中から、ステップＳ３０４で選択された部品の面を構成する要素とその面に隣接する要素を抽出する。例えば、図１０（ａ）に示すように、部品４０１の面を構成する要素としては、部品４０１の属性を有する要素のうち、部品４０１の属性を有しない要素に隣接する要素２１〜３２が抽出される。そして、部品４０１の面に隣接する要素としては、図１０（ａ）に示すように、要素２１〜３２のいずれかと要素の面又は稜線を共有する要素１〜要素２０が抽出される。なお、抽出された要素群１００１としては、部品４０１の属性情報をもつ要素の±Ｘ方向、±Ｙ方向で面や稜線を共有している要素のみ表記しているが、実際は±Ｚ方向の要素も対象となる。
【００３１】
ステップＳ９０２では、関連付け部２０４が、ステップＳ９０１で抽出された要素の中から、決定部２０２から入力された第一のフェース情報が示す各フェースを構成する要素を決定し、関連付ける。各フェースを構成する要素としては、選択された部品４０１の属性を有する要素の中で、各フェースの存在する座標を含む要素に最も近い要素が決定される。例えば図８（ａ）に示す面３１の例では、図１０（ａ）において面３１の存在する座標を含む要素は要素０２と要素２２である。この中で、要素０２は部品４０１の属性を有する要素ではないので、部品４０１の属性を有する要素の中で要素０２に最も近い要素２１が面３１を構成する要素として要素０２の代わりに決定される。すなわち、面３１を構成する要素としては、図１０（ｂ）に示すように要素２１と要素２２が決定される。
【００３２】
ステップＳ９０３では、関連付け部２０４が、ステップＳ９０２で決定された各フェースの構成要素と、第一のフェース情報が示す各フェースの法線方向とに基づいて、選択された部品の各フェースに隣接する要素を決定する。決定部２０２各フェースに隣接する要素は、各フェースを構成する要素と面もしくは稜線を共有している要素が選択される。この際に、各フェースの法線方向を考慮する。各フェースに隣接する要素としては、フェースを構成する要素と面又は稜線を共有しており、かつ面又は稜線を共有する要素よりも各フェースの法線方向に含まれる各座標軸の成分のうち、最も成分が大きい座標軸方向に存在する要素が選択される。例えば、法線が＋ｘ方向である面３１においては、要素２１および要素２２と面又は稜線を共有しており、かつｘ座標が要素２１および要素２２よりも大きい要素０１〜０４が、面３１に隣接する要素として選択される。また、法線方向に−ｘ成分と＋ｙ成分とを含み、かつ−ｘ成分の方が大きい法線方向を有する面３５に隣接する要素としては、以下の要素が決定される。すなわち、要素２７と面又は稜線を共有し、かつ要素２７よりもｘ座標が小さい要素１１〜１３と、要素２８と面又は稜線を共有し、かつ要素２８よりもｘ座標が小さい要素１４〜１５が決定される。なお、法線方向としてはステップＳ７０１で導出されたＣＡＤデータにおける法線方向を用いる必要はなく、ステップＳ９０２で決定された各面を構成する要素の並び方から決定してもよい。
【００３３】
なお、関連付け部２０４は、まずＣＡＤデータにおいて別部品と接触しているフェースに対応する隣接要素を決定する。図１０（ｂ）の例では、部品４０３との距離が０ｍｍであった面３３を構成する要素２３および要素２４と面を共有する要素０６および要素０７が隣接要素として決定される。そして、ここで隣接要素として決定された要素を除いた要素、すなわち図１０（ｂ）の例では要素０１〜０５、０８〜２０の中から、残りのフェース（ＣＡＤデータにおいて部品と接触していなかったフェース）に隣接する要素が決定される。ＣＡＤデータにおいて別部品と接触していなかったフェースの隣接要素は、各フェースの間で重複していてもよく、例えば面３１と面３２にはどちらも要素０４が関連付けられている。
【００３４】
ステップＳ９０４では、関連付け部２０４が、ステップＳ９０３で関連付けされた要素に基づいて、各フェースの面外方向の最大要素長を取得する。面外方向とは、ステップＳ９０１で選択した部品の各面における法線方向を指す。例えば、面３６はＸ軸に平行なため＋Ｙ方向が、面３５は要素が階段状になっているため、−Ｘ，＋Ｙ方向が面外方向となる。最大要素長とは、各面の面外方向として決定された方向における要素長のうち、最も大きな要素長のことを指す。例えば、本実施例ではＸＹＺ全ての方向の要素長は全て１５ｍｍであるため、各面の面外方向の最大要素長は全て１５ｍｍとなる。しかし、Ｘ方向とＹ方向が面外方向として決定され、Ｘ方向とＹ方向の要素長が互いに異なる場合には、Ｘ方向とＹ方向の要素長のうち大きい方の要素長が面外方向の最大要素長として決定される。関連付け部２０４は、各面に隣接する要素の番号と面外方向の最大要素長とを第二のフェース情報とし、検出部２０５に出力する。なお、第一のフェース情報と第二のフェース情報は分けて出力する必要はなく、図１０（ｂ）に示すようなひとまとまりのデータとして検出部２０５に出力するようにしてもよい。
【００３５】
以上が関連付け部２０４で行われる処理（ステップＳ３０５）の流れである。次に、検出部２０５で行われる処理（ステップＳ３０６）の詳細について説明する。図１１は検出部２０５で行われる処理の詳細を示すフローチャートである。
【００３６】
ステップＳ１１０１では、検出部２０５が、ステップＳ１１０３の処理で用いる安全率を設定する。安全率の詳細についてはステップＳ１１０３の説明で述べる。安全率としては０〜１の範囲の係数が用いられる。安全率は、ユーザが任意に設定してもよいし、予めプログラム等に安全率を設定しておいてもよい。
【００３７】
ステップＳ１１０２では、検出部２０５が、決定部２０２と関連付け部２０４とから入力された第一および第二のフェース情報に基づいて、ステップＳ３０５で選択した部品に対応する複数のフェースの中から処理対象となるフェースを一つ選択する。ステップＳ１１０３では、検出部２０５が、ステップＳ１１０２で選択したフェースについて、接触関係の変化を調べる必要があるかどうかを判定する。以下、判定の具体的な処理について説明する。
【００３８】
接触関係の変化を調べる必要があるかどうかは、選択したフェースに最も近い位置にある相手部品との距離と、面外方向の最大要素長とを比較することで判定することができる。これは、ＣＡＤデータから要素分割データに変換した際に、部品同士の間で縮まる距離の最大値は、面外方向の最大要素長に等しいという考えに基づいている。ただし、この前提は選択したフェースが要素分割方向に対して傾いている場合には必ずしも適応することができず、単に部品同士の距離と最大要素長とを比較しただけでは接触関係が変化するフェースを見逃してしまう場合がある。そこで、本実施例の検出部２０５は、ステップＳ１１０１において安全率を設定する。そして、選択したフェースに最も近い位置にある部品との距離に安全率を乗算した値と、選択したフェースの面外方向の最大要素長とを比較することで、選択したフェースについて接触関係の変化を調べる必要があるかどうかを判定する。
【００３９】
この原理について図１２を参照して説明する。図１２（ａ）は、基本座標に対し傾いた対向するフェースをもち、かつ隙間が１６ｍｍある部品１２０１と部品１２０２を含むＣＡＤデータを示す図である。このＣＡＤデータに対して図１２（ｂ）に示すようにＸＹＺ各軸において部品間の距離よりも小さい要素長１５ｍｍで要素分割を行い、図１２（ｃ）に示す要素分割データを生成する場合を考える。図１２（ｃ）に示す通り、部品１２０１と部品１２０２の対抗するフェースは基本座標軸に対し傾いているため、各フェースは要素分割データにおいて階段状になり、部品１２０１と部品１２０２は２箇所で接触してしまう。安全率を用いないで部品間の距離と最大要素長に対して単純な比較を行うとこの接触箇所を見落としてしまうが、安全率を用いて比較を行うことで、このような場合であっても接触関係の変化を調べる必要があるフェースを検出することができる。安全率を例えば０．８として設定すると、部品間の距離と安全率を乗算した値は０．８×１６ｍｍ＝１２．８ｍｍとなり、面外方向の最大要素長１５ｍｍより小さくなるため、このフェースに対しても接触関係の変化が調べられる。そして、接触関係が変化した要素を抽出して補正することが可能となる。なお、安全率は一律の値を予め設定しておいてもよいし、各フェースの角度に応じて適応的に変化させるようにしてもよい。
【００４０】
このステップにおいて、検出部２０５は、相手部品との距離に安全率を乗算したものが面外最大要素長よりも大きいかどうかを判定する。相手部品との距離に安全率を乗算したものが面外最大要素長よりも大きいと判定された場合には、そのフェースでは接触関係の変化を確認する必要が無いので、ステップＳ１１０８に進む。相手部品との距離に安全率を乗算したものが面外方向の最大要素長以下であると判定された場合には、そのフェースでの接触関係の変化を確認する必要があるので、ステップＳ１１０４に進む。
【００４１】
ステップＳ１１０４では、検出部２０５が、選択されたフェースにおいて、ＣＡＤデータ上で接触している部品があるかどうかを判定する。この判定には、第一フェース情報に含まれる相手部品との距離の値が用いられる。相手部品との距離が０であるフェースは、部品が接触しているフェースであるとして判定される。ＣＡＤデータ上で接触している部品があると判定された場合にはステップＳ１１０５に進む。ＣＡＤデータ上で接触している部品がないと判定された場合はステップＳ１１０６に進む。
【００４２】
ステップＳ１１０５では、検出部２０５が、要素分割データにおいて、選択したフェースに隣接する要素の中に、ＣＡＤデータで接触している部品の属性を有する要素が含まれているかどうかを判定する。この判定は、検出部２０５が要素分割データの対応する要素の属性を調べることで行われる。なお、この判定は関連付け部２０４で先に行っておき第二のフェース情報に判定の結果を予め加えておいてもよい。ＣＡＤデータで接触している部品の属性を有する要素が含まれていると判定された場合には、ＣＡＤデータと要素分割データとで接触関係が変化していないので、ステップＳ１１０８に進む。ＣＡＤデータで接触している部品の属性を有する要素が含まれていないと判定された場合には、ＣＡＤデータと要素分割データとで接触関係が変化しているので、ステップＳ１１０７に進む。
【００４３】
ステップＳ１１０６では、検出部２０５が、要素分割データにおいて、選択したフェースに隣接する要素は全て解析空間に対応する要素であるかどうかを判定する。この判定は、ステップＳ１１０５と同様に検出部２０５が要素分割データの対応する要素の属性を調べることで行われる。選択したフェースに隣接する要素が全て解析空間に対応する要素であると判定された場合には、ＣＡＤデータと要素分割データとで接触関係が変化していないので、ステップＳ１１０８に進む。選択したフェースに隣接する要素の中に、解析空間に対応しない要素が含まれていると判定された場合には、ステップＳ１１０７に進む。
【００４４】
ステップＳ１１０７では、検出部２０５が、補正する要素の番号と補正内容とを決定し、補正部２０６に出力する。具体的には、ＣＡＤデータ上で部品と接触していないフェースの隣接要素に部品の属性を有する要素が含まれている場合には、その要素の属性を解析空間に変更する指示を補正部２０６に出力する。また、ＣＡＤデータ上で部品と接触しているフェースの関連要素に、接触している部品以外の属性を有する要素が含まれている場合にはそのようその属性をＣＡＤデータ上で接触している部品の属性に変更する指示を補正部２０６に出力する。すなわち、ステップＳ１１０５〜Ｓ１１０７の処理は、各面に隣接するブロックの属性が、接触状態を示す情報から予想される属性と異なる場合、ブロックの属性を予想される属性に補正する処理である。
【００４５】
ステップＳ１１０８では、検出部２０５が、全てのフェースが選択されたかどうかを判定する。全てのフェースが選択されていないと判定された場合は、ステップＳ１１０２に戻って新たなフェースを選択し、ステップＳ１１０３以降の処理を行う。全てのフェースが選択されたと判定された場合は、全てのフェースについての確認が終了したことを示す情報を補正部２０６に出力して処理を終了する。
【００４６】
以上が本実施例の検出部２０５で行われる処理の詳細である。以上の処理によれば、一部のフェースについて接触状態の確認を省略することができるので、ＣＡＤデータにおける部品の接触状態を保った要素分割データを生成する際の処理量を低減することができる。
【００４７】
なお、本実施例において、取得部２０１は複数の物体の形状と位置関係とを示す形状データを入力する入力手段として機能する。また、変換部２０３は、所定のサイズの複数のブロックで構成された空間において、前記複数のブロックのそれぞれに対応する物体又は空間の属性を割り当てたブロックデータを生成する生成手段として機能する。また、検出部２０５は、物体の属性を有するブロックに隣接するブロックのうちの一部を、前記形状データと前記ブロックデータとにおける前記複数の物体同士の接触状態との違いを検出する処理に用いるブロックとして決定する決定手段として機能する。また、検出部２０５は、前記物体の属性を有するブロックに隣接するブロックのうち、前記決定手段により前記検出処理に用いるとして決定されたブロックを用いて、前記接触状態の違いを検出する検出手段として機能する。また、決定部２０２は、前記複数の物体が有する各面について、前記形状データにおける前記各面での別物体との接触状態を示す情報を取得する取得手段として機能する。また、決定部２０２は、前記形状データにおける前記複数の物体が有する複数の面について、各面から別の物体までの距離を取得する距離取得手段としても機能する。また、関連付け部２０４は、前記ブロックデータにおいて、前記複数の物体が有する各面について、該面に隣接するブロックを抽出する抽出手段として機能する。また、補正部２０６は、前記形状データと前記ブロックデータとの間で前記複数の物体同士の接触状態の違いが検出された場合に、前記ブロックデータが有するブロックのうちの一部の属性を補正する補正手段として機能する。
【００４８】
＜実施例２＞
実施例１では、ＣＡＤデータにおける部品同士の距離と要素分割データにおける要素長とに基づいて、一部の面における接触関係の変化の確認を省略することで、ＣＡＤデータにおける接触関係を維持した解析モデルを効率的に作成する方法について説明した。本実施例においては、各部品の物性の関係が所定の条件を満たすかどうかに基づいて接触関係の変化の確認を更に省略し、より効率的に解析モデルを作成する例について説明する。
【００４９】
実施例１では、部品の物性の数値解析を行う際に計算精度への影響が少なくなるよう、接触関係の変化を検出する方法について説明した。しかし、部品の材料物性値によっては、接触関係が変化しても計算精度への影響が小さい。例えば、部品の電磁界解析を行う場合には、伝導率が低く電流が流れにくい絶縁体の部品の接触関係が変化しても計算精度への影響が小さい。そこで、本実施例では、ＣＡＤデータにおいて最も近くに存在する部品が非導電材料である場合には接触関係の変化の確認を省略することで、要素分割データの補正の為の処理量を更に低減する例について説明する。
【００５０】
以下、本実施例における具体的な処理について説明する。
【００５１】
本実施例の具体的な処理は基本的には実施例１と同様であるが、決定部２０２で生成される第一のフェース情報の内容と、ステップＳ３０５における判定の処理が実施例１とは異なる。まず、本実施例の決定部２０２で生成される第一のフェース情報の例を図１３に示す。本実施例における第一のフェース情報には、各フェースに対応する相手部品の番号と距離の他に、相手部品の材料を示す情報と自部品の材料を示す情報とが更に含まれている。例えば、面３１を有する部品４０１と面３１に最も近い部品４０２の材料はどちらも鉄であり、導電性を有する。一方、面３４に最も近い部品４０４の材料は樹脂であり、導電性を持たない。なお、第一のフェース情報に含まれる物性の情報は材料そのものを示す情報に限られず、各材料の導電率を示す情報などを代わりに含むようにしてもよい。
【００５２】
図１４は本実施例の検出部２０５で行われる処理の流れを示すフローチャートである。基本的な流れは実施例１における処理と同様であるが、ステップＳ１１０３の前に新たな判定処理であるステップＳ１４０１が追加されている。
【００５３】
ステップＳ１４０１では、検出部２０５は、選択されたフェースの自部品と相手部品の両方が導電性の材料であるかどうかを判定する。導電性の材料が含まれるかどうかの判定には、第一のフェース情報に含まれる材料を示す情報を用いる。予めＲＯＭ１０３や二次記憶装置１０４に導電性の材料と非導電性の材料とを示すデータベースを用意しておき、検出部２０５はそのデータベースとの比較により自部品および相手部品が導電性の材料であるかどうかを判定する。自部品と相手部品の材料がどちらも導電性である場合には、選択されたフェースは接触状態の変化を確認する必要がある可能性があるので、ステップＳ１１０３に進む。自部品又は相手部品の少なくとも一方が非導電性の材料である場合には、選択されたフェースについて接触状態の変化を確認する必要が無いので、ステップＳ１１０８に進む。
【００５４】
なお、ここでの非導電材料の判定は必ずしも上記の方法で行われる必要はなく、例えば第一の接触情報に各部品の導電率が含まれている場合は、その導電率が閾値よりも大きいか否かで非導電材料の判定を行うようにしてもよい。また、決定部２０２と関連付け部２０４で選択される部品の対象から非導電性の部品を除外しておき、非導電性の部品のフェースは処理の対象にしないようにしてもよい。この場合には、第一のフェース情報に自部品の物性を示す情報を保持する必要はない。また、要素分割データを用いた数値解析が電磁界解析ではなく熱力学解析である場合には、各部品の熱伝導率に基づいて接触状態の確認の可否を判定するようにしてもよい。すなわち、自部品と相手部品の熱伝導率がどちらも所定の閾値以上である場合には、選択されたフェースは接触状態の変化を確認する必要があるためステップＳ１１０３に進むようにする。
【００５５】
図１５は本実施例における要素分割データの補正の例を示す図である。要素０９は、ＣＡＤデータにおいて部品同士が接触していないフェースに隣接する要素であるが、要素０９に対応する部品４０４が非導電性の物質であるため、補正の対象からは除外されている。以上が実施例２で行われる処理の概要である。以上の処理によれば、物性の数値解析に用いる要素分割データを生成する際の処理量を更に低減することができる。
【００５６】
＜実施例３＞
上記の実施例では部品ごとにフェースを読み込んで、各フェースに対応する要素を読み込むことで要素分割データの補正を行う例について説明した。本実施例では、要素分割データにおいて各要素を順番に参照し、各要素とフェースの関係を示す情報を読み出して要素分割データの補正を行う例について説明する。
【００５７】
以下、実施例３の処理装置１００で行われる処理について、図１６および図１７を参照して説明する。図１６は、実施例３における処理装置１００の機能構成を示すブロック図である。処理装置１００は、ＲＯＭ１０３に格納されたプログラムをＣＰＵ１０１がＲＡＭ１０２をワークメモリとして実行することで、図１６に示す各構成部として機能し、図１７のフローチャートに示す一連の処理を実行する。なお、以下に示す処理の全てがＣＰＵ１０１によって実行される必要はなく、処理の一部または全部が、ＣＰＵ１０１以外の一つ又は複数の処理回路によって行われるように処理装置１００が構成されてもよい。以下、各構成部により行われる処理の流れを説明する。
【００５８】
ステップＳ１７０１では、取得部２０１が二次記憶装置１０４等に格納された処理対象のＣＡＤデータを取得し、決定部２０２と変換部２０３とに出力する。ステップＳ１７０２では、決定部２０２が、取得部２０１から入力されたＣＡＤデータにおける各部品の接触状態を判定する。ここでの処理はステップＳ３０２と同様であるので説明を省略する。決定部２０２は、ＣＡＤデータにおける各部品の接触状態を示す第一のフェース情報を面選択部１６０１と関連付け部１６０２とに出力する。ステップＳ１７０３では、変換部２０３が取得部２０１から入力されたＣＡＤデータを解析用の要素分割データに変換し、関連付け部１６０２と補正部１６０３に出力する。ここで行われる要素分割データへの変換は、ステップＳ３０３と同様の処理であるので、説明を省略する。
【００５９】
ステップＳ１７０４では、面選択部１６０１が、安全率を決定する。ここで決定する安全率はステップＳ１１０１で決定するものと同様であるので、説明を省略する。ステップＳ１７０５では、面選択部１６０１が、決定部２０２から入力された第一のフェース情報が示すフェースの中から、１つのフェースを選択する。ステップＳ１７０６では、面選択部１６０１が、ステップＳ１７０５で選択したフェースの面外方向の最大要素長を取得する。この処理はステップＳ９０４で行われる処理と同様であるので、説明を省略する。
【００６０】
ステップＳ１７０７では、面選択部１６０１が、ステップＳ１７０５で選択したフェースについて、接触関係の変化を調べる必要があるかどうかを判定する。ここで行われる判定処理の詳細はステップＳ１１０２と同様であるので説明を省略する。選択したフェースの接触関係の変化を調べる必要があるとして判定された場合は、ステップＳ１７０８に進む。選択したフェースの接触関係の変化を調べる必要がないとして判定された場合は、ステップＳ１７１０に進む。
【００６１】
ステップＳ１７０８では、面選択部１６０１が、選択されたフェースのＩＤを示す情報を関連付け部１６０２に出力する。ステップＳ１７０９では、関連付け部１６０２が、面選択部１６０１から入力されたフェースのＩＤに基づいて、決定部２０２から入力された第一のフェース情報を参照する。そして、ステップＳ１７０５で選択されたフェースに隣接する要素を、変換部２０３から入力された要素分割データについて決定する。ここでの処理の詳細については後述する。関連付け部１６０２は、選択されたフェースに隣接する要素を示す情報を補正部１６０３に出力する。
【００６２】
ステップＳ１７１０では、面選択部１６０１が、第一のフェース情報が示す全てのフェースがステップＳ１７０５において選択されたかどうかを判定する。全てのフェースが選択済みであると判定された場合は、ステップＳ１７１１に進む。全てのフェースが選択されていないと判定された場合は、ステップＳ１７０５に戻って新たなフェースの選択を行う。
【００６３】
ステップＳ１７１１では、補正部１６０３が、関連付け部１６０２から入力された、各フェースの隣接要素を示す情報に基づいて、変換部２０３から入力された要素分割データに対して補正を行う。この処理の詳細については後述する。
【００６４】
以上が本実施例の処理装置１００で行われる処理の流れである。次に、各構成部で行われる処理の詳細について説明する。まずは、関連付け部１６０２で行われる隣接要素の決定処理（ステップＳ１７０９）の詳細について、図１８に示すフローチャートを参照して説明する。
【００６５】
ステップ１８０１では、関連付け部１６０２が、変換部２０３から入力された要素分割データにおいて、面選択部１６０１から入力されたフェースの座標に対応する要素を抽出する。すなわち、関連付け部１６０２は、ＣＡＤデータにおいて選択されたフェースが存在する座標が含まれる要素を、要素分割データにおいて決定し、抽出する。
【００６６】
ステップＳ１８０２では、関連付け部１６０２が、ステップＳ１８０１で抽出された要素の中から一つを選択する。ステップＳ１８０３では、関連付け部１６０２が、ステップＳ１８０２で選択された要素の属性が選択したフェースを構成する部品の属性であるかどうかを判定する。選択された要素の属性が、選択したフェースを構成する部品の属性ではないと判定された場合は、ステップＳ１８０４に進む。選択された要素の属性が、選択したフェースを構成する部品の属性であると判定された場合はステップＳ１８０５に進む。
【００６７】
ステップＳ１８０４では、関連付け部１６０２が、ステップＳ１８０２で選択された要素は選択したフェースに隣接する要素であるとして決定する。本実施例において、処理装置１００は、各要素が隣接するフェースと構成するフェースとを示す図２０（ａ）に示すようなテーブルをＲＡＭ１０２に格納しているものとする。なお、初期状態では各要素について隣接するフェースと構成するフェースの情報は格納されていない。関連付け部１６０２は、選択したフェースに隣接する要素であるとしてここで決定された要素の、隣接するフェース情報に、ステップＳ１７０５で選択したフェースのＩＤを記入する。なお、１つの要素について隣接するフェースが複数検出された場合には、検出された全てのフェースＩＤを記入しておく。
【００６８】
ステップＳ１８０５では、関連付け部１６０２が、ステップＳ１８０２で選択された要素は選択したフェースを構成する要素であるとして決定する。そして、図２０に示すテーブルにおいて、選択した要素の構成するフェース情報に、ステップＳ１７０５で選択したフェースのＩＤを記入する。
【００６９】
ステップＳ１８０６では、関連付け部１６０２が、第一のフェース情報が示す、選択したフェースの主要な法線方向を取得する。ステップＳ１８０７では、関連付け部１６０２が、選択した要素に隣接する要素のうち、ステップＳ１８０６で取得された主要な法線方向に存在する要素を、選択したフェースに隣接する要素として決定する。そして、図２０に示すテーブルにおいて、隣接する要素として決定された要素の隣接するフェース情報に、選択したフェースのＩＤを記入する。
【００７０】
上記の処理の概要について図１０（ａ）を参照して説明する。図１０（ａ）において、面３５が選択された場合、面３５の座標を含む要素としては要素１４、２７、２８が抽出される。この場合、要素１４は自部品の属性を有しない要素であるため、選択したフェースの隣接要素として決定される。また、要素２７および要素２８はどちらも自部品の属性を有する要素であるため、フェースを構成する要素として決定される。そして、要素２７又は要素２８に隣接し、面３５の主要な法線方向である−ｘ方向に存在する要素１１〜１５が選択した要素の隣接要素として決定される。このように処理することによって、各要素と選択したフェースとの関係を効率よく決定することができる。
【００７１】
ステップＳ１８０８では、関連付け部１６０２が、ステップＳ１８０１で抽出された全ての要素について隣接／構成の判定が行われたかどうかを判定する。ステップＳ１８０１で抽出された全ての要素について隣接／構成の判定が行われていないと判定された場合には、ステップＳ１８０２に戻って新たな要素を選択する。ステップＳ１８０１で抽出された全ての要素について隣接／構成の判定が行われたと判定された場合には、処理を終了する。
【００７２】
以上が本実施例の関連付け部１６０２で行われる処理の流れである。次に補正部１６０３で行われる処理（ステップＳ１７１１）の詳細について図１９に示すフローチャートを参照して説明する。
【００７３】
ステップＳ１９０１では、補正部１６０３が、変換部２０３から入力された要素分割データに含まれる要素の一つを選択する。ここで行われる要素の補正処理はラスタ処理であるので、例えば要素分割データが示す空間の左上から右下に向かって順次全ての要素を選択するようにする。
【００７４】
ステップＳ１９０２では、補正部１６０３が、ステップＳ１９０１で選択した要素の要素情報を取得する。具体的には、図２０に示す隣接／構成フェースを示すテーブルを参照する。
【００７５】
ステップＳ１９０３では、補正部１６０３が、ステップＳ１９０２で取得した要素情報に基づいて、ステップＳ１９０１で選択した要素がフェースに隣接するかどうかを判定する。選択した要素がフェースに隣接するとして判定された場合はステップＳ１９０４に進む。選択した要素がフェースに隣接しないとして判定された場合は、ステップＳ１９１３に進む。
【００７６】
ステップＳ１９０４では、補正部１６０３が、選択した要素が隣接するフェースの情報を取得する。本実施例の処理装置１００は、図２０（ｂ）に示すようなテーブルをＲＡＭ１０２に格納しているものとする。このテーブルでは各フェースについて、そのフェースに接触している部品のＩＤと、そのフェースに隣接する要素の属性の補正が不要かどうかを示すフラグ情報とが格納されている。補正部１６０３は、この図２０（ｂ）に示すテーブルの、選択した要素が隣接するフェースに対応する部分の情報を参照する。なお、このテーブルはステップＳ１７０８において面選択部１６０１により随時記入されているものとする。
【００７７】
ステップＳ１９０５では、補正部１６０３が、選択した要素が隣接するフェースの補正不要フラグがオンになっているかどうかを判定する。なお、図２０（ｂ）の例では１がフラグＯＮ、０がフラグＯＦＦを示すものとする。選択した要素が隣接するフェースの補正不要フラグがオンになっていないと判定された場合は、ステップＳ１９０６に進む。選択した要素が隣接するフェースの補正不要フラグがＯＮになっていると判定された場合は、ステップＳ１９１３に進む。なお、選択した要素に隣接するフェースが複数存在する場合には、全ての隣接フェースについて補正不要フラグがＯＮになっている場合はステップＳ１９１３に進み、補正不要フラグがＯＮになっていないフェースが含まれる場合にはステップＳ１９０６に進む。
【００７８】
ステップＳ１９０６では、補正部１６０３が、選択した要素に隣接するフェースがＣＡＤデータにおいて他の部品と接触しているかどうかを判定する。選択した要素に隣接するフェースがＣＡＤデータにおいて他の部品と接触していると判定された場合はステップＳ１９０７に進む。選択した要素に隣接するフェースがＣＡＤデータにおいて他の部品と接触していないと判定された場合はステップＳ１９０９に進む。なお、選択した要素に隣接しており、かつ補正不要フラグがＯＮになっていないフェースが複数存在する場合には、その中でフェース番号が最も若いフェースのフェース情報に従ってこのステップでの判定を行うようにする。
【００７９】
ステップＳ１９０７では、補正部１６０３が、選択した要素の属性を参照し、選択した要素の属性が、隣接するフェースが接触している相手部品の属性であるかどうかを判定する。選択した要素の属性が相手部品ではないと判定された場合は、ステップＳ１９０８に進む。選択した要素の属性が相手部品であると判定された場合はステップＳ１９１３に進む。
【００８０】
ステップＳ１９０８では、補正部１６０３が、選択した要素の属性を、隣接するフェースの相手部品の属性に補正してステップＳ１９１３に進む。
【００８１】
ステップＳ１９０９では、補正部１６０３が、選択した要素の属性を参照し、選択した要素の属性が解析空間であるかどうかを判定する。選択した要素の属性が解析空間ではないと判定された場合はステップＳ１９０１に進む。選択した要素の属性が解析空間であると判定された場合はステップＳ１９１３に進む。
【００８２】
ステップＳ１９１０では、補正部１６０３が、選択した要素の属性を解析空間に補正する。ステップＳ１９１１では、補正部１６０３が、ステップＳ１９１０で属性を解析空間に補正した要素がフェースを構成する要素であるかを判定する。ステップＳ１９１０で属性を解析空間に補正した要素がフェースを構成する要素であると判定された場合はステップＳ１９１２に進む。ステップＳ１９１０で属性を解析空間に補正した要素がフェースを構成する要素ではないと判定された場合はステップＳ１９１３に進む。
【００８３】
ステップＳ１９１２では、補正部１６０３が、ステップＳ１９１０で属性を解析空間に補正した要素が構成するフェースの補正不要フラグをＯＮにしてステップＳ１９１３に進む。この処理により、互いに隣接する複数のフェースで重複して属性変更の処理が行われる心配が無くなる。
【００８４】
ステップＳ１９１３では、補正部１６０３が、変換部２０３から入力された要素分割データの全ての要素を選択したかどうかを判定する。全ての要素を選択していないと判定された場合には、ステップＳ１９０１に戻って補正部１６０３は新たな要素の選択を行う。全ての要素を選択したと判定された場合は補正部１６０３は補正が終了した要素分割データを出力して処理を終了する。
【００８５】
以上が本実施例における処理である。以上の処理によれば、実施例１とは別の方法を用いて、ＣＡＤデータにおける部品の接触状態を保った要素分割データを生成する際の処理量を低減することができる。
【００８６】
なお、本実施例において、各構成部は以下に示す手段としての機能を有する。面選択部１６０１は、物体の属性を有するブロックに隣接するブロックのうちの一部を、前記形状データと前記ブロックデータとにおける前記複数の物体同士の接触状態との違いを検出する処理に用いるブロックとして決定する決定手段として機能する。また、関連付け部１６０２は、前記ブロックデータにおいて、前記複数の物体が有する各面について、該面に隣接するブロックを抽出する抽出手段として機能する。また、補正部１６０３は、前記物体の属性を有するブロックに隣接するブロックのうち、前記決定手段により前記検出処理に用いるとして決定されたブロックを用いて、前記接触状態の違いを検出する検出手段として機能する。また、補正部１６０３は、前記形状データと前記ブロックデータとの間で前記複数の物体同士の接触状態の違いが検出された場合に、前記ブロックデータが有するブロックのうちの一部の属性を補正する補正手段として機能する。
【００８７】
＜その他の実施例＞
本発明の実施の形態は上記の３つの実施例に限られるものではない。例えば、実施例２からステップＳ１１０３の処理を省いて物性に基づく判定のみ行うようにしても、効果は小さくなるものの、処理量の低減の効果を得ることはできる。また、上記の３つの実施例の一部の処理を別の実施例の処理で置き換えてもよい。例えば、実施例１で行われる隣接要素の決定を実施例３の隣接要素の決定法に置き換えてもよいし、実施例１において、隣接要素の決定を行うかどうかを面外方向の最大要素長と最近接部品との距離とに基づいて決定するようにしてもよい。
【００８８】
また、上記の実施例では、検出部２０５が検出した補正が必要な要素を補正部２０６が自動的に補正したが、別の形式をとってもよい。例えば、検出部２０５が検出した補正が必要な要素を表示装置１０９での表示を介してユーザに通知し、ユーザが手動で要素の補正を行うように促してもよい。また、上記の実施例では全ての部品に対して接触状態の変化の確認が必要かどうかを判定する例を示したが、ユーザが指定した一部の部品に対してのみ上記の処理を行うようにしてもよい。
【００８９】
また、上記の実施例では安全率を０〜１の係数として、安全率と相手部品との距離とを乗算した値と面外の最大要素長とを比較することでステップＳ１１０３の判定処理を行ったが、別の方法で判定を行ってもよい。例えば、相手部品との距離と面外の最大要素長との差が所定の閾値よりも大きい場合は、選択したフェースでの接触状態の変化を確認する必要がないと判定してもよい。また、面外の最大要素長に１よりも大きい係数を掛けた値と相手部品との距離とを比較することでステップＳ１１０３の判定を行うようにしてもよい。  本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９０】
２０１  取得部
２０３  変換部
２０５  検出部
【図１】
0006544965.tif 000002
【図２】
0006544965.tif 000003
【図３】
0006544965.tif 000004
【図４】
0006544965.tif 000005
【図５】
0006544965.tif 000006
【図６】
0006544965.tif 000007
【図７】
0006544965.tif 000008
【図８】
0006544965.tif 000009
【図９】
0006544965.tif 000010
【図１０】
0006544965.tif 000011
【図１１】
0006544965.tif 000012
【図１２】
0006544965.tif 000013
【図１３】
0006544965.tif 000014
【図１４】
0006544965.tif 000015
【図１５】
0006544965.tif 000016
【図１６】
0006544965.tif 000017
【図１７】
0006544965.tif 000018
【図１８】
0006544965.tif 000019
【図１９】
0006544965.tif 000020
【図２０】
0006544965.tif 000021