(57)【特許請求の範囲】
【請求項１】
３Ｄ−ＣＡＤモデル化された締結部品のモデルと被締結部品のモデルとの締結不具合を、情報処理を行う制御部を備えたコンピュータにより検出する設計検証方法であって、
上記制御部が、上記締結不具合の種類に応じた所定形状の円柱モデルを生成するモデル生成ステップと、
上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結不具合の種類に応じて、上記締結部品モデルに対し所定の位置関係で配置するとともに、該配置した円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出する不具合検出ステップと、を備えていることを特徴とする設計検証方法。
【請求項２】
請求項１記載の設計検証方法において、
上記締結部品モデルは、軸部を有するものであり、
上記モデル生成ステップは、上記制御部が、上記締結部品モデルの軸部よりも小径の円柱モデルを生成するものであり、
上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの先端位置に配置し、該配置した円柱モデルと、該円柱モデルの周辺に存在する部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであることを特徴とする設計検証方法。
【請求項３】
請求項１記載の設計検証方法において、
上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、
上記モデル生成ステップは、上記制御部が、上記締結部品モデルの軸部よりも小径の円柱モデルを生成するステップであり、
上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸部に対して略同軸に且つ重畳して配置するとともに、該配置した円柱モデルと上記被締結部品モデルとの干渉を検出するための干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであることを特徴とする設計検証方法。
【請求項４】
請求項１記載の設計検証方法において、
上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、
上記モデル生成ステップは、上記制御部が、上記締結部品モデルの軸部よりも小径の円柱モデルを生成するステップであり、
上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸中心側からその径方向外側に向かって順次配置するとともに、該各円柱モデルを配置する度に、該各円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックにより上記被締結部品モデルと干渉する円柱モデルが検出された場合には、当該円柱モデルを上記締結部品モデルの軸中心回りに１８０°反転させた位置に配置し、該反転させた位置に配置した円柱モデルと該被締結部品モデルとの干渉チェックを実行して、該干渉チェックにより、該反転させた位置に配置した円柱モデルと該被締結部品モデルとの干渉が検出されない場合、又は、該反転させた位置に配置した円柱モデルを当該円柱モデル１個分だけ上記締結部品モデルの軸中心側にオフセットした円柱モデルと該被締結部品モデルとの干渉チェックの実行により、該オフセットした円柱モデルと該被締結部品モデルとの干渉が検出された場合には、上記締結不具合を検出したものとする不具合検出処理を実行するステップであることを特徴とする設計検証方法。
【請求項５】
請求項４記載の設計検証方法において、
上記不具合検出ステップは、上記制御部が、上記締結部品モデルの軸中心側からその径方向外側に向かう所定方向において上記不具合検出処理を実行するとともに、該実行後に、該所定方向に直交する方向において上記不具合検出処理を実行するステップであることを特徴とする設計検証方法。
【請求項６】
請求項４又は５記載の設計検証方法において、
上記モデル生成ステップは、上記不具合検出ステップにて上記円柱モデルの１８０°反転前の上記干渉チェックが実行されることにより上記被締結部品モデルと干渉する円柱モデルが検出された場合には、上記制御部が、当該円柱モデルよりも小径の円柱モデルを生成するステップをさらに含み、
上記不具合検出ステップは、上記モデル生成ステップにて上記小径の円柱モデルが生成された場合には、上記制御部が、上記小径の円柱モデルを、上記１８０°反転前の干渉チェックにより干渉が検出された円柱モデルよりも１つ前に生成された円柱モデルに接する位置から上記締結部品モデルの径方向外側に向かって順次配置し、上記小径の円柱モデル生成前の上記円柱モデルに代えて、該小径の円柱モデルによって上記不具合検出処理を実行するステップであることを特徴とする設計検証方法。
【請求項７】
請求項１記載の設計検証方法において、
上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、
上記締結部品モデルには、上記軸部に対し略同軸に接続され且つ上記被締結部品モデルに当接する座面を形成するフランジ部が設けられ、
上記モデル生成ステップは、上記制御部が、上記締結部品モデルのフランジ部の直径から上記軸部の直径を差し引いた距離を直径値とする複数個の円柱モデルを生成するステップであり、
上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された複数個の円柱モデルを、上記締結部品モデルの軸部の周囲に周方向に並べた状態で、該軸部の軸心方向の異なる位置に順次配置し、該配置の度に上記各円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであることを特徴とする設計検証方法。
【請求項８】
請求項１記載の設計検証方法において、
上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、
上記締結部品モデルには、上記軸部に対し略同軸に接続され且つ上記被締結部品モデルに当接する座面を形成するフランジ部が設けられ、
上記モデル生成ステップは、上記制御部が、上記フランジ部と略同径の円柱モデルを生成するステップであり、
上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸部における軸心方向の異なる位置に配置し、該各位置において、該円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであることを特徴とする設計検証方法。
【請求項９】
請求項１記載の設計検証方法において、
上記締結部品モデルは、軸部を有していて、
上記締結部品モデルの軸部には、ナットのモデルが孔嵌合により締結されるものであり、
上記モデル生成ステップは、上記制御部が、上記締結部品モデルの軸部よりも大径の円柱モデルを生成するステップであり、
上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸部の先端位置に該軸部と同軸に配置するとともに、該配置した円柱モデルと上記ナットモデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであることを特徴とする設計検証方法。
【請求項１０】
請求項１記載の設計検証方法において、
上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、
上記締結部品モデルには、上記軸部に対し略同軸に接続され且つ上記被締結部品モデルに当接する座面を形成するフランジ部が設けられ、
上記モデル生成ステップは、上記制御部が、上記締結部品モデルのフランジ部の外径と略同径の円柱モデルを生成するステップであり、
上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸部と同軸に且つ該締結部品モデルのフランジ部の座面側に配置して、該配置した円柱モデルとその周辺に存在する部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであることを特徴とする設計検証方法。
【請求項１１】
３Ｄ−ＣＡＤモデル化された締結部品のモデルと被締結部品のモデルとの締結不具合を検出する設計検証装置であって、
上記締結不具合の種類に応じた所定形状の円柱モデルを生成するモデル生成部と、
上記モデル生成部にて生成された円柱モデルを、上記締結不具合の種類に応じて、上記締結部品モデルに対し所定の位置関係で配置するとともに、該配置した円柱モデルと上記被締結部品モデルとの干渉チェックを実行する干渉チェック部と、
上記干渉チェック部における干渉チェックの結果を基に、上記締結不具合を検出する不具合検出部と、を備えていることを特徴とする設計検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３Ｄ−ＣＡＤモデル化された締結部品のモデルと被締結部品のモデルとの締結不具合をコンピュータにより検出する設計検証方法及び設計検証装置に関する技術分野に属する。
【背景技術】
【０００２】
従来より、コンピュータにより３次元のＣＡＤデータを使用して部品の干渉チェックを行う方法は知られている。
【０００３】
この種の方法では、部品と部品とが当接している箇所を干渉部位として検出するようにしているため、例えばネジとネジ孔との係合部（当接部）など、本来、干渉してもよい部位まで干渉部位として検出してしまうという問題があり、この問題を解決するべく、これまでにも様々な方法が提案されている。
【０００４】
例えば、特許文献１に示すものでは、ネジ部以外の箇所や、歯車の噛合い部以外の箇所を、部品同士が干渉してはいけない領域として予め設定し、この干渉をしてはいけない領域のみに対して干渉チェックを実施するようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−４８２２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来の方法では、締結部品モデルと被締結部品モデルとの干渉を検出することはできても、例えば、部品同士が当接せずに浮いた状態で配置されている場合等の不具合を検出することができないという問題がある。このため、設計者は、これらの不具合を一つずつ目で見て探す他なく、この種の不具合を見つけるための設計者の負担が大きくなり、延いては、不具合の見逃しや作業工数の増加を招くという問題がある。
【０００７】
本発明は、斯かる点に鑑みてなされたものであり、その目的とするところは、締結部品モデルと被締結部品モデルとの干渉のみならず両部品モデル間の浮き上がり等の不具合を締結不具合として、人間による最終的な判断によらずコンピュータによって迅速に且つ確実に検出する方法及び装置を提供しようとすることにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、この発明では、検出しようとする締結不具合の種類に応じて、所定形状の円柱モデルを所定の位置に生成するとともに、該生成した円柱モデルと被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するようにした。
【０００９】
具体的には、請求項１の発明では、３Ｄ−ＣＡＤモデル化された締結部品のモデルと被締結部品のモデルとの締結不具合を、情報処理を行う制御部を備えたコンピュータにより検出する設計検証方法を対象とする。
【００１０】
そして、上記制御部が、上記締結不具合の種類に応じた所定形状の円柱モデルを生成するモデル生成ステップと、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結不具合の種類に応じて、上記締結部品モデルに対し所定の位置関係で配置するとともに、該配置した円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出する不具合検出ステップと、を備えているものとする。
【００１１】
これによれば、締結部品モデルと被締結部品モデルとの干渉のみならず両部品モデル間の浮き上がり等の不具合を締結不具合として、人間による最終的な判断によらずコンピュータによって迅速に且つ確実に検出することができる。
【００１２】
請求項２の発明では、請求項１の発明において、上記締結部品モデルは、軸部を有するものであり、上記モデル生成ステップは、上記制御部が、上記締結部品モデルの軸部よりも小径の円柱モデルを生成するものであり、上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの先端位置に配置し、該配置した円柱モデルと、該円柱モデルの周辺に存在する部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであるものとする。
【００１３】
これによれば、締結部品モデルの軸部が、他の部品モデルと干渉する状態を、締結不具合（底付き）として容易に検出することができる。
【００１４】
請求項３の発明では、請求項１の発明において、上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、上記モデル生成ステップは、上記制御部が、上記締結部品モデルの軸部よりも小径の円柱モデルを生成するステップであり、上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸部に対して略同軸に且つ重畳して配置するとともに、該配置した円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであるものとする。
【００１５】
これによれば、例えば、締結部品モデルの軸部の軸心位置と、被締結部品モデルの挿通孔の軸心位置とがずれているために両モデルが干渉する状態を、締結不具合（軸心ずれ）として容易に検出することができる。
【００１６】
請求項４の発明では、請求項１の発明において、上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、上記モデル生成ステップは、上記制御部が、上記締結部品モデルの軸部よりも小径の円柱モデルを生成するステップであり、上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸中心側からその径方向外側に向かって順次配置するとともに、該各円柱モデルを配置する度に、該各円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックにより上記被締結部品モデルと干渉する円柱モデルが検出された場合には、当該円柱モデルを上記締結部品モデルの軸中心回りに１８０°反転させた位置に配置し、該配置した円柱モデルと該被締結部品モデルとの干渉チェックを実行して、該干渉チェックにより、該反転させた位置に配置した円柱モデルと該被締結部品モデルとの干渉が検出されない場合、又は、該反転させた位置に配置した円柱モデルを当該円柱モデル１個分だけ上記締結部品モデルの軸中心側にオフセットした円柱モデルと該被締結部品モデルとの干渉チェックの実行により、該オフセットした円柱モデルと該被締結部品モデルとの干渉が検出された場合には、上記締結不具合を検出したものとする不具合検出処理を実行するステップであるものとする。
【００１７】
これによれば、締結部品モデルと被締結部品モデルとが互いに干渉していないものの、締結部品モデルの軸部と、被締結部品モデルの挿通孔とがずれている状態を、締結不具合（軸心ずれ）として容易に検出することができる。
【００１８】
請求項５の発明では、請求項４の発明において、上記不具合検出ステップは、上記制御部が、上記締結部品モデルの軸中心側からその径方向外側に向かう所定方向において上記不具合検出処理を実行するとともに、該実行後に、該所定方向に直交する方向において上記不具合検出処理を実行するステップであるものとする。
【００１９】
これによれば、例えば、挿通孔が楕円形である場合でも、上記軸心ずれを締結不具合として容易に検出することができる。
【００２０】
請求項６の発明では、請求項４又は５の発明において、上記モデル生成ステップは、上記不具合検出ステップにて上記円柱モデルの１８０°反転前の上記干渉チェックが実行されることにより上記被締結部品モデルと干渉する円柱モデルが検出された場合には、上記制御部が、当該円柱モデルよりも小径の円柱モデルを生成するステップをさらに含み、上記不具合検出ステップは、上記モデル生成ステップにて上記小径の円柱モデルが生成された場合には、上記制御部が、上記小径の円柱モデルを、上記１８０°反転前の干渉チェックにより干渉が検出された円柱モデルよりも１つ前に生成された円柱モデルに接する位置から上記締結部品モデルの径方向外側に向かって順次配置し、上記小径の円柱モデル生成前の上記円柱モデルに代えて、該小径の円柱モデルによって上記不具合検出処理を実行するステップであるものとする。
【００２１】
これによれば、上記不具合検出処理で用いる円柱モデルの径を徐々に小さくして行くことで、上記軸心ずれをより一層精度良く検出することができる。
【００２２】
請求項７の発明では、請求項１の発明において、上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、上記締結部品モデルには、上記軸部に対し略同軸に接続され且つ上記被締結部品モデルに当接する座面を形成するフランジ部が設けられ、上記モデル生成ステップは、上記制御部が、上記締結部品モデルのフランジ部の直径から上記軸部の直径を差し引いた距離を直径値とする複数個の円柱モデルを生成するステップであり、上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された複数個の円柱モデルを、上記締結部品モデルの軸部の周囲に周方向に並べた状態で、該軸部の軸心方向の異なる位置に順次配置し、該配置の度に上記各円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであるものとする。
【００２３】
これによれば、締結部品モデルの座面（フランジ部）が被締結部品モデルに沈み込んでいる状態や、締結部品モデルの座面（フランジ部）が被締結部品モデルに対して浮き上がっている状態、及び、締結部品モデルの座面が当接する被締結部品モデルの締結座面が傾いている状態をそれぞれ、締結不具合（沈み込み、浮き、傾き）として容易に検出することができる。
【００２４】
請求項８の発明では、請求項１の発明において、上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、上記締結部品モデルには、上記軸部に対し略同軸に接続され且つ上記被締結部品モデルに当接する座面を形成するフランジ部が設けられ、上記モデル生成ステップは、上記制御部が、上記フランジ部と略同径の円柱モデルを生成するステップであり、上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸部における軸心方向の異なる位置に配置し、該各位置において、該円柱モデルと上記被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであるものとする。
【００２５】
これによれば、例えば、締結部品モデルによって締結される一対の被締結部品モデルのうちの一方が、他方の被締結部品モデルに対して浮いている状態や、逆に沈み込んでいる状態を、締結不具合（浮き、重なり）として容易に検出することができる。
【００２６】
請求項９の発明では、請求項１の発明において、上記締結部品モデルは、軸部を有していて、上記締結部品モデルの軸部には、ナットのモデルが孔嵌合により締結されるものであり、上記モデル生成ステップは、上記制御部が、上記締結部品モデルの軸部よりも大径の円柱モデルを生成するステップであり、上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸部の先端位置に該軸部と同軸に配置するとともに、該配置した円柱モデルと上記ナットモデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであるものとする。
【００２７】
これによれば、締結部品モデルの選定ミス等によって生じる締結部品モデルの軸部の長さ不足を、締結不具合として容易に検出することができる。
【００２８】
請求項１０の発明では、請求項１の発明において、上記締結部品モデルは、軸部を有していて、該軸部を上記被締結部品モデルに形成された挿通孔に挿通して配置されるものであり、上記締結部品モデルには、上記軸部に対し略同軸に接続され且つ上記被締結部品モデルに当接する座面を形成するフランジ部が設けられ、上記モデル生成ステップは、上記制御部が、上記締結部品モデルのフランジ部の外径と略同径の円柱モデルを生成するステップであり、上記不具合検出ステップは、上記制御部が、上記モデル生成ステップにて生成された円柱モデルを、上記締結部品モデルの軸部と同軸に且つ該締結部品モデルのフランジ部の座面側に配置して、該配置した円柱モデルとその周辺に存在する部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するステップであるものとする。
【００２９】
これによれば、例えば、上記円柱モデルと干渉する部品の中に、ラバー等の締結力を減少させるＮＧ部品が含まれているか否かをチェックすることで、このようなＮＧ部品に起因して生じる締結不具合を容易に検出することができる。
【００３０】
請求項１１の発明では、３Ｄ−ＣＡＤモデル化された締結部品のモデルと被締結部品のモデルとの締結不具合を検出する設計検証装置を対象とする。
【００３１】
そして、上記締結不具合の種類に応じた所定形状の円柱モデルを生成するモデル生成部と、上記締結不具合の種類に応じて、上記締結部品モデルに対し所定の位置関係で配置するとともに、該配置した円柱モデルと上記被締結部品モデルとの干渉チェックを実行する
干渉チェック部と、上記干渉チェック部における干渉チェックの結果を基に、上記締結不具合を検出する不具合検出部と、を備えているものとする。
【００３２】
これによれば、請求項１の発明と同様の作用効果を得ることができる。
【発明の効果】
【００３３】
以上説明したように、本発明では、検出しようとする締結不具合の種類に応じて、所定形状の円柱モデルを所定の位置に生成するとともに、該生成した円柱モデルと被締結部品モデルとの干渉チェックを実行して、該干渉チェックの結果を基に上記締結不具合を検出するようにしたことで、締結部品モデルと被締結部品モデルとの干渉のみならず両部品モデル間の浮き上がり等の不具合を締結不具合として、人間による最終的な判断によらず迅速に且つ確実に検出することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施形態に係る設計検証装置の概略構成を示すブロック図である。
【図２】締結部品モデルと被締結部品モデルとが正常に配置された状態と、締結不具合Ｉの例とを示す概略図である。
【図３】締結不具合II〜IVの例を示す概略図である。
【図４】締結不具合V及びVIの例を示す概略図である。
【図５】締結不具合VII〜IXの例を示す概略図である。
【図６】制御部における締結不具合Ｉの検出処理を示すフローチャートである。
【図７】制御部における締結不具合IIの検出処理を示すフローチャートのである。
【図８】制御部における締結不具合IIの検出処理を示すフローチャートである。
【図９】制御部における締結不具合IIIの検出処理を示すフローチャートである。
【図１０】制御部における締結不具合IIIの検出処理を示すフローチャートである。
【図１１】制御部における締結不具合IVの検出処理を示すフローチャートである。
【図１２】制御部における締結不具合IVの検出処理を示すフローチャートである。
【図１３】制御部における締結不具合Vの検出処理を示すフローチャートである。
【図１４】制御部における締結不具合Vの検出処理を示すフローチャートである。
【図１５】制御部における締結不具合VIの検出処理を示すフローチャートである。
【図１６】制御部における締結不具合VIの検出処理を示すフローチャートである。
【図１７】制御部における締結不具合VIIの検出処理を示すフローチャートである。
【図１８】制御部における締結不具合VIIIの検出処理を示すフローチャートである。
【図１９】制御部における締結不具合VIIIの検出処理を示すフローチャートである。
【図２０】制御部における締結不具合IX-iの検出処理を示すフローチャートである。
【図２１】制御部における締結不具合IX-iiの検出処理を示すフローチャートである。
【図２２】制御部における締結不具合IX-iiiの検出処理を示すフローチャートである。
【図２３】締結不具合Ｉの検出処理を説明するための説明図である。
【図２４】締結不具合IIの検出処理を説明するための説明図である。
【図２５】締結不具合IIIの検出処理を説明するための説明図である。
【図２６】締結不具合VIの検出処理を説明するための説明図である。
【図２７】締結不具合VIIの検出処理を説明するための説明図である。
【図２８】締結不具合VIIIの検出処理を説明するための説明図である。
【図２９】締結不具合IX-i〜IX-iiiの検出処理を説明するための説明図である。
【図３０】本発明の実施形態の変形例を示す図２５相当図である。
【図３１】他の実施形態を示す図２３相当図である。
【図３２】他の実施形態を示す図２４相当図である。
【発明を実施するための形態】
【００３５】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００３６】
図１は、本発明の実施形態に係る設計検証装置Ａの概略構成を示す。この設計検証装置Ａはコンピュータからなっていて、３Ｄ−ＣＡＤソフトにより作成された対象アセンブリモデルの中に存在する締結部品モデル１と被締結部品モデル２との締結不具合を検出するものである。
【００３７】
ここで、本実施形態では、対象アセンブリモデルは、設計対象とする車両の車体及び該車体に組み付けられる部品のモデルであり、被締結部品モデル２は車体を構成する各車体パネルのモデルである。締結部品モデル１は、ボルト、ナット、ファスナ、又はタッピングスクリュー等のモデルである。
【００３８】
上記設計検証装置Ａは、種々の情報処理を行う制御部１０と、該設計検証装置Ａを操作するオペレータ（車体の設計者等）が該制御部１０に対し情報を入力するためのキーボードやマウス等からなる入力部１１と、制御部１０から出力された情報を表示するディスプレイ等からなる表示部１２と、各種データや、制御部１０が後述の不具合検出処理を実行するためのプログラムを記憶する記憶部１３とを備えている。
【００３９】
制御部１０には、不具合検出処理中にデータ等を一時的に記憶するメインメモリ１０ａが設けられている。上記記憶部１３には、上記車体のアセンブリモデルに関する３Ｄ−ＣＡＤデータ１３ａや、締結部品データベース１３ｂ、干渉チェックプログラム１３ｃ、ボディパーツリストデータ１３ｄ、及びＮＧリストファイル１３ｅが記憶されている。
【００４０】
３Ｄ−ＣＡＤデータには、車体を構成する被締結部品モデル２（各車体パネル等）や締結部品モデル１（ボルトモデル等）のＣＡＤデータも含まれている。ここで、ＣＡＤデータとは、各モデルの幾何学的な位置情報や形状情報をコンピュータによって読み込み可能にデータ化したものである。
【００４１】
締結部品データベース１３ｂは、締結部品モデル１の属性値（ボルト軸長、ボルトフランジ径、ネジピッチ等）に関する情報をデータベース化したものである。
【００４２】
干渉チェックプログラム１３ｃは、各モデル同士の当接箇所や各モデル同士の重複（重畳）箇所を検出する干渉チェック用のプログラムである。
【００４３】
ボディパーツリストデータ１３ｄは、ボディ部品（車体部品）として使用される部品名をリスト化したものである。
【００４４】
ＮＧリストファイル１３ｅは、例えばラバー５２等、締結部品の締結力を低減させる恐れのある部品等をＮＧ部品として予めリスト化したものである。
【００４５】
上記オペレータは、設計検証を行う際には、上記入力部１１を介して、設計検証を行おうとする車両の車体モデルを選択する。制御部１０は、オペレータが選択した車体モデルの３Ｄ−ＣＡＤデータを、上記記憶部１３から読み込んで表示部１２に３次元形式で表示する。オペレータは、表示された車体モデルが上記選択したモデルであることを確認した上で、入力部１１を介して、該車体モデル中に存在する締結不具合を検出するための所定操作を実行する。制御部１０では、この所定操作を受けて上記車体モデルに対して不具合検出処理を実行する。
【００４６】
ここで、締結不具合とは、締結部品モデル１と被締結部品モデル２とが干渉している場合のみならず、未干渉ではあるが互いの相対位置が本来あるべき設計位置からずれている場合等も含んでいる。
【００４７】
具体的には、上記制御部１０が検出することができる締結不具合は、不具合I〜IXに大別することができる。以下、締結部品モデル１として、フランジ付きボルトのモデル５０（以下、ボルトモデル５０という）と、フランジ付きナットのモデル６０（以下、ナットモデル６０という）とを想定して、これらの不具合I〜IXについて説明する。尚、以下の説明において、ナットモデル５１は、フランジ部を有さない通常のボルトのモデルであり、ボルトモデル６１はフランジ部を有さない通常のナットのモデルである。
【００４８】
不具合Ｉとしては、締結部品モデル１と被締結部品モデル２との相対的な位置関係が、すれているために、両者が干渉しているケース（図２（ｃ）〜（ｆ）参照）や、締結部品モデル１の径寸法又は被締結部品モデル２の締結孔２ｋの径寸法が設計値からずれているために、両者が干渉しているケース（図２（ｇ）及び（ｈ）参照）等が相当する。
【００４９】
不具合IIとしては、締結部品モデル１によって互いに締結される２つの被締結部品モデル２ａ，２ｂの締結面２ｇ、２ｈが互いに当接せずに、両者の間に隙間（浮き）が生じているケース（図３（ａ）及び（ｂ）参照）や、一方の被締結部品モデル２ａの締結面２ｇが他方の被締結部品モデル２ｂ内に沈み込んでしまっているケース（図３（ｃ）及び（ｄ）参照）が相当する。
【００５０】
不具合IIIとしては、締結部品モデル１と被締結部品モデル２とで干渉する部位は生じていないものの、締結部品モデル１の軸心と、被締結部品モデル２の締結孔２ｋの軸心とがずれてしまっているケース（図３（ｅ）及び（ｆ）参照）が相当する。
【００５１】
具体的には、図３（ｅ）に示す例では、ボルトモデル５０の軸心位置が、被締結部品モデル２の締結孔２ｋの軸心位置に対してずれている様子を示し、図３（ｆ）に示す例では、ナットモデル６０の軸心位置が、被締結部品モデル２の締結孔２ｋの軸心位置に対してずれている様子を示している。尚、各図の左側の図は、締結孔２ｋが真円形である場合を示し、右側の図は、締結孔２ｋが楕円径である場合を示している。
【００５２】
不具合IVとしては、図３（ｇ）に示すように、ボルトモデル５０に係合するナットモデル５１の孔径寸法が設計値よりも大きいために、ボルトモデル５０とナットモデル５１との係合部に隙間が生じているケースや、図３（ｈ）に示すように、ナットモデル６０の孔径寸法が設計値よりも大きいために、該ナットモデル６０と、該ナットモデル６０に係合するボルトモデル６１との係合部に隙間が生じているケースが相当する。
【００５３】
不具合Ｖとしては、ボルトモデル５０やナットモデル６０の座面のかかり代が不足しているケース（図４（ａ）〜（ｄ）参照）が相当する。
【００５４】
不具合VIとしては、ボルトモデル５０の座面やナットモデル６０の座面が、被締結部品モデル２ａ内に沈み込んでしまっているケース（図４（ｅ）及び（ｆ）参照）や、ボルトモデル５０やナットモデル６０の座面が、被締結部品モデル２ａの締結座面２ｆに対して浮き上がっているケース（図４（ｇ）及び（ｈ）参照）、さらには、被締結部品モデル２ａの締結座面２ｆが、ボルトモデル５０の座面やナットモデル６０の座面に対して平行でなく傾斜してしまっているケース（図４（ｉ）及び（ｊ））が相当する。
【００５５】
不具合VIIとしては、ボルトモデル５０の先端部がその他の部品モデル７０と干渉しているケース（図５（ａ）参照）が相当する。
【００５６】
不具合VIIIとしては、ボルトモデル５０のネジ部又はナットモデル６０のネジ部のネジ山のかかり代が不足するケース（図５（ｂ）〜（ｄ）参照）が相当する。
【００５７】
不具合IXは、不具合IX-i〜IX-iii（図５では不具合IX-iのみを示す）の３つのパターンを含んでおり、不具合IX-iとしては、被締結部品モデル２（ボルトモデル５０、ナットモデル６０等）と被締結部品モデル２との間や、締結部品モデル１の座面と被締結部品モデル２との間にラバー５２等の介在物が存在するケース（図５（ｅ）及び（ｆ）参照）が相当する。
【００５８】
不具合IX-iiとしては、ボルトモデル５０のネジ山のピッチがその相手側のナットモデル５１のネジ山のピッチと異なっているケースが相当する。
【００５９】
不具合IX-iiiとしては、締結部品モデル１により締結される被締結部品モデル２がボディ部品（車体部品）であるにも拘わらず、締結部品モデル１の属性が焼き付き防止用モデルになっていないケースが相当する。
【００６０】
そして、本実施形態では、制御部１０は、円柱モデル生成処理を実行するに際して、締結不具合の種類（不具合I〜IX）に応じて、円柱モデル２０の生成形態を異ならせることで不具合I〜IXを検出する。具体的には、制御部１０における不具合検出処理は、締結不具合I〜IVの種類に応じて、所定形状の円柱モデル２０を生成する円柱モデル生成処理と、この円柱モデル２０を、締結不具合合I〜IVの種類に応じて所定位置に配置して、該配置した円柱モデル２０と被締結部品モデル２との干渉チェックを実行するとともに、該干渉チェックの結果を基に、締結部品モデル１と被締結部品モデル２との締結不具合を検出する検出処理からなる。
【００６１】
上記制御部１０が実行する不具合検出処理の詳細を、図６〜図２２のフローチャートに基づいて説明する。尚、本実施形態では、主にボルトモデル５０に関連する不具合の検出処理（図２〜５の左側の列に示す不具合）について説明する。
【００６２】
図６は不具合Ｉを検出するための処理を示している。
【００６３】
先ず、ステップＳＡ１では、オペレータが入力部１１を介して選択した車体モデルを識別して、当該車体モデルの３Ｄ−ＣＡＤデータを記憶部１３からメインメモリ１０ａ上にロードする。
【００６４】
ステップＳＡ２では、ステップＳＡ１でロードした３Ｄ−ＣＡＤデータを基に、車体モデルに含まれる締結部品モデル１を検索する。
【００６５】
ステップＳＡ３では、ステップＳＡ２で検索した締結部品モデル１の中からボルトモデル５０を抽出するとともに、その属性値を締結部品データベース１３ｂから検索する。
【００６６】
ステップＳＡ４では、ステップＳＡ３で検索した属性値（材質や形状）の中から、ボルト軸部５０ａの長さ（以下、ボルト軸長という）及びボルト軸部５０ａの外径（以下、ボルト軸径という）を読み込む。
【００６７】
ステップＳＡ５では、ステップＳＡ４で読み込んだボルト軸径よりも小さい所定径（本実施形態では、ボルト軸部５０ａのネジ部の谷径）を有し且つ読み込んだボルト軸長と同高さの円柱モデル２０を生成する。そして、生成した円柱モデル２０を、ボルトモデル５０のボルト軸部５０ａに重複して配設する。換言すると、円柱モデル２０を、ボルト軸部５０ａと同軸にその基端面から先端面に至る全範囲に形成する。尚、所定径は、許容される軸心ずれ量等に応じて設定される。
【００６８】
ステップＳＡ６では、ステップＳＡ５で生成した円柱モデル２０と、ボルトモデル５０を除く全ての部品との間で干渉チェックを実行する。干渉チェックを実行するには、記憶部１３内に記憶された干渉チェックプログラムをロードして実行すればよい。
【００６９】
ステップＳＡ７では、ステップＳＡ６で実行した干渉チェックの結果、干渉が検出されたか否かを判定し、この判定がＹＥＳであるときにはステップＳＡ８に進み、ＮＯであるときにはステップＳＡ９に進む。
【００７０】
ステップＳＡ８では、不具合Ｉが発生しているものとして、結果ファイルに”ＮＧ”を出力する。
【００７１】
ステップＳＡ９では、不具合Ｉが発生していないものとして、結果ファイルに”ＯＫ”を出力し、しかる後に、不具合Ｉの検出処理を終了する。
【００７２】
図７及び図８は不具合IIを検出するための処理を示している。
【００７３】
ステップＳＢ１〜ステップＳＢ４では、それぞれ、ステップＳＡ１〜ステップＳＡ４と同様の処理を実行する。
【００７４】
ステップＳＢ５では、ステップＳＢ４で読み込んだボルト径よりも大きい所定径（本実施形態では読み込んだボルトフランジ径）を有し且つ所定高さ（本実施形態では、ネジピッチの３〜５倍）の円柱モデル２０を生成する。そして、生成した円柱モデル２０を、ボルト軸部５０ａと同軸に且つボルト軸部５０ａの基端位置に配置する（図２４参照）。
【００７５】
ステップＳＢ６では、ステップＳＢ５で生成した円柱モデル２０と、ボルトモデル５０を除く全ての部品との間で干渉チェックを実行する。
【００７６】
ステップＳＢ７では、ステップＳＢ６で実行した干渉チェックの結果を基に、「円柱モデル２０と干渉する部品モデルがない」か否か判定し、この判定がＹＥＳであるときにはステップＳＢ１２に進む一方、ＮＯであるときにはステップＳＢ８（図８参照）に進む。
【００７７】
ステップＳＢ８では、ステップＳＢ６の干渉チェックの結果を基に、円柱モデル２０と干渉する部品モデルの数が１つであるか否かを判定し、この判定がＹＥＳであるときにはステップＳＢ２１に進む一方、ＮＯであるときにはステップＳＢ９に進む。
【００７８】
ステップＳＢ９では、”２つ以上干渉あり”カウンタを１つだけ増加させ、その他のカウンタ（”干渉なし”カウンタ、”１つ干渉あり”カウンタ）を０にする。
【００７９】
ステップＳＢ１０では、”２つ以上干渉あり”カウンタが２であるか否かを判定し、この判定がＹＥＳであるときには、結果ファイルに「沈み込みＮＧ」を出力する一方、ＮＯであるときにはステップＳＢ１１（図８参照）に進む。
【００８０】
ステップＳＢ１１では、円柱モデル２０をボルト軸部５０ａの基端側から先端側に向かって該円柱モデル２０の高さ分だけオフセットさせる。
【００８１】
ステップＳＢ７の判定がＹＥＳであるときに進むステップＳＢ１２では、円柱モデル２０をボルト軸部５０ａの基端部から先端部まで（ボルト軸部５０ａの全長に亘って）シフトさせたか否か判定し、この判定がＮＯであるときにはステップＳＢ１７に進む一方、ＹＥＳであるときにはステップＳＢ１３に進む。
【００８２】
ステップＳＢ１３では、”干渉なし”カウンタが０であるか否かを判定し、この判定がＮＯであるときにはステップＳＢ１８に進む一方、ＹＥＳであるときにはステップＳＢ１４に進む。
【００８３】
ステップＳＢ１４では、”１つ干渉あり”カウンタが０であるか否かを判定し、この判定がＮＯであるときにはステップＳＢ１９に進む一方、ＹＥＳであるときにはステップＳＢ１５に進む。
【００８４】
ステップＳＢ１５では、”２つ以上干渉あり”カウンタが０であるか否かを判定し、この判定がＮＯであるときにはステップＳＢ２０に進む一方、ＹＥＳであるときにはステップＳＢ１６に進む。
【００８５】
ステップＳＢ１６では、結果ファイルに”ＮＧ（浮き上がり）”を出力する。
【００８６】
ステップＳＢ１２の判定がＮＯであるときに進むステップＳＢ１７では、”干渉なし”カウンタを１つ増加させ、その他のカウンタを０に設定し、しかる後にステップＳＢ１１に戻る。
【００８７】
ステップＳＢ１３〜ステップＳＢ１５の判定がそれぞれＮＯであるときに進むステップＳＢ１８〜ステップＳＢ２０では、結果ファイルに”ＯＫ”を出力する。
【００８８】
ステップＳＢ８の判定がＹＥＳであるときに進むステップＳＢ２１では、ステップＳＢ１２と同様に、円柱モデル２０をボルト軸部５０ａの全長に亘ってシフト（オフセット）させたか否かを判定し、この判定がＮＯであるときにはステップＳＢ２６に進む一方、ＹＥＳであるときにはステップＳＢ２２に進む。
【００８９】
ステップＳＢ２２では、”干渉なし”カウンタが０であるか否かを判定し、この判定がＮＯであるときにはステップＳＢ２７に進む一方、ＹＥＳであるときにはステップＳＢ２３に進む。
【００９０】
ステップＳＢ２３では、”１つ干渉あり”カウンタが０であるか否かを判定し、この判定がＮＯであるときにはステップＳＢ２８に進む一方、ＹＥＳであるときにはステップＳＢ２４に進む。
【００９１】
ステップＳＢ２４では、”２つ以上干渉あり”カウンタが０であるか否かを判定し、この判定がＮＯであるときにはステップＳＢ２９に進む一方、ＹＥＳであるときにはステップＳＢ２５に進む。
【００９２】
ステップＳＢ２５では、結果ファイルに”ＯＫ”を出力する。
【００９３】
ステップＳＢ２１の判定がＮＯであるときに進むステップＳＢ２６では、”１つ干渉あり”カウンタを１つ増加させ、その他のカウンタを０に設定し、しかる後にステップＳＢ１１に進む。
【００９４】
ステップＳＢ２２がＮＯであるときに進むステップＳＢ２７では、結果ファイルに”浮き上がりＮＧ”と出力する。
【００９５】
ステップＳＢ２３及びステップＳＢ２４の判定がそれぞれＮＯであるときに進むステップＳＢ２８及びステップＳＢ２９では、結果ファイルに”ＯＫ”を出力する。
【００９６】
図９及び図１０は不具合IIIを検出するための処理を示している。
【００９７】
ステップＳＣ１〜ステップＳＣ４では、それぞれ、ステップＳＡ１〜ステップＳＡ４と同様の処理を実行する。
【００９８】
ステップＳＣ５では、所定径Ｄ１（例えばボルト軸径の１／２）の円柱モデルを生成して、ボルト軸部５０ａの軸中心（軸方向から見た中心）から径方向外側に延びるＸ軸上に、該生成した円柱モデル２０を、その軸心位置がボルト軸部５０ａの軸中心（原点）からＤ１／２（Ｄ１÷２）の位置になるように配置する（図２５参照）。円柱モデル２０の高さは所定高さ（例えばボルト軸長と同高さ）に設定すればよい。
【００９９】
ステップＳＣ６では、ステップＳＣ５で生成した円柱モデル２０と、ボルトモデル５０を除く全ての部品との間で干渉チェックを実行する。
【０１００】
ステップＳＣ７では、ステップＳＣ６の干渉チェックの結果を基に、「円柱モデル２０と干渉する部品モデルがない」か否かを判定し、この判定がＹＥＳであるときにはステップＳＣ１６に進む一方、ＮＯであるときにはステップＳＣ８（図１０参照）に進む。
【０１０１】
ステップＳＣ８では、円柱モデル２０の直径を変化させた回数が所定回数に達したか否かを判定し、この判定がＹＥＳであるときにはステップＳＣ１９に進む一方、ＮＯであるときにはステップＳＣ９に進む。
【０１０２】
ステップＳＣ９では、最後に干渉を検知した円柱モデル２０を、原点（ボルト軸部５０ａの軸心）を中心として１８０°回転した位置に配置する（つまり円柱モデル２０の配置位置を原点回りに反転させる）。尚、これに伴って、計算軸として設定したＸ軸も原点を中心として１８０°回転させる。
【０１０３】
ステップＳＣ１０は、１８０°回転させた円柱モデル２０と、上記ボルトモデル５０を除く全ての部品との間で干渉チェックを実行する。
【０１０４】
ステップＳＣ１１では、ステップＳＣ１０の干渉チェックの結果を基に、「円柱モデル２０と干渉する部品モデルがない」か否かを判定し、この判定がＹＥＳであるときにはステップＳＣ２０に進む一方、ＮＯであるときにはステップＳＣ１２に進む。
【０１０５】
ステップＳＣ１２では、１８０°回転させた円柱モデル２０をＸ軸方向の原点側（ボルト軸部５０ａ側）にモデル１個分だけシフトさせてなる円柱モデル２０を生成する。
【０１０６】
ステップＳＣ１３では、ステップＳＣ１２で生成した円柱モデル２０と、上記ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックを実行する。
【０１０７】
ステップＳＣ１４では、「円柱モデル２０と干渉する部品モデルがない」か否かを判定し、この判定がＹＥＳであるときにはステップＳＣ２１に進む一方、ＮＯであるときにはステップＳＣ１５に進む。
【０１０８】
ステップＳＣ７の判定がＮＯであるときに進むステップＳＣ１６では、生成した円柱モデル２０の直径値の総和が所定値以上であるか否かを判定し、この判定がＹＥＳであるときにはステップＳＣ１８に進む一方、ＮＯであるときにはステップＳＣ１７に進む。
【０１０９】
ステップＳＣ１７では、前回生成した円柱モデル２０をＸ軸方向の＋側（つまりボルト軸部５０ａの径方向外側）に向かってモデル一個分だけシフトさせてなる円柱モデル２０を生成し、しかる後にステップＳＣ６に進む。
【０１１０】
ステップＳＣ１８では、結果ファイルに”ＮＧ（軸心ずれ）”と出力する。
【０１１１】
ステップＳＣ８の判定がＹＥＳであるときに進むステップＳＣ１９では、最後に干渉した円柱モデル２０を消去してそれよりも小径の円柱モデル２０を生成し、生成した円柱モデル２０を前回生成した円柱モデル２０に周接するようにＸ軸上に配置する。
【０１１２】
図１１及び図１２は、不具合IVを検出するための処理を示している。
【０１１３】
ステップＳＤ１〜ステップＳＤ３ではそれぞれ、ステップＳＡ１〜ステップＳＡ３と同様の処理を実行する。
【０１１４】
ステップＳＤ４では、ステップＳＤ３で検索した属性値（材質や形状データ）の中から、ボルト軸長、ボルト軸径、及びボルトフランジ径を読み込む。
【０１１５】
ステップＳＤ５では、ステップＳＤ４で読み込んだボルトフランジ径と同径で且つ読み込んだボルト軸長と同高さの円柱モデル２０を、ボルト軸部５０ａの基端部から先端部に至る全範囲に亘って該ボルト軸部５０ａと同軸に生成する。
【０１１６】
ステップＳＤ６では、ステップＳＤ５で生成した円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックを実行する。
【０１１７】
ステップＳＤ７では、ステップＳＤ６で実行した干渉チェックの結果を基に、「円柱モデル２０と干渉する”ＷＥＬＤ．ＮＵＴ”という名称の部品モデルがない」か否かを判定する。そして、この判定がＹＥＳであるときにはステップＳＤ１９に進む一方、ＮＯであるときにはステップＳＤ８に進む
ステップＳＤ８では、所定径Ｄ１（例えばボルト軸径の１／２）の円柱モデルを生成して、ボルト軸部５０ａの軸中心（軸方向から見た中心）から径方向外側に延びるＸ軸上に、該生成した円柱モデル２０を、その軸心位置がボルト軸部５０ａの軸中心（原点）からＤ１／２（Ｄ１÷２）の位置になるように配置する（図２５参照）。円柱モデル２０の高さは所定高さ（例えばボルト軸長と同高さ）に設定すればよい。
【０１１８】
ステップＳＤ９では、生成した円柱モデル２０と、ボルトモデルを除く全ての部品モデルとの間で干渉チェックを実行する。
【０１１９】
ステップＳＤ１０では、「円柱モデル２０と干渉する”ＷＥＬＤ．ＮＵＴ”という名称の部品モデルがない」か否かを判定し、この判定がＹＥＳであるときにはステップＳＤ２０に進む一方、ＮＯであるときにはステップＳＤ１１に進む。
【０１２０】
ステップＳＤ１１からステップＳＤ１８では、ステップＳＣ８〜ステップＳＣ１５と同様の処理を実行する。
【０１２１】
ステップＳＤ７の判定がＹＥＳであるときに進むステップＳＤ１９では、本不具合IIIの検出処理の対象外となるケースであると判断して、結果ファイルに”対象外”と出力する。
【０１２２】
ステップＳＤ２０〜ステップＳＤ２２では、ステップＳＣ１６〜１９と同様の処理を実行する。
【０１２３】
ステップＳＤ１７の判定がＹＥＳであるときに進むステップＳＤ２４では、軸心ずれが無いものと判断して、ステップＳＤ１２で円柱モデル２０の反転処理を実行するまでに生成した円柱モデル２０の直径値の総和を２倍した値を締結孔２ｋの孔径として算出する。
【０１２４】
ステップＳＤ２５では、ステップＳＤ２４で算出した値（締結孔２ｋの孔径）が、ボルト軸径に等しいか否かを判定し、この判定がＮＯであるときにはステップＳＤ２６に進む一方、ＹＥＳであるときにはステップＳＤ２７に進む。
【０１２５】
ステップＳＤ２６では、結果ファイルに”ＮＧ（穴径アンマッチ）”と出力する。
【０１２６】
ステップＳＤ２７では、結果ファイルに”ＯＫ”と出力する。
【０１２７】
図１３及ぶ図１４は、不具合Ｖを検出するための処理を示している。
【０１２８】
ステップＳＥ１〜ステップＳＥ２１ではそれぞれ、上記ステップＳＣ１〜ステップＳＣ２１と同様の処理を行う。
【０１２９】
ステップＳＥ２２では、ステップＳＥ３で読み込んだ属性値の中からボルトフランジ径を読み取り、読み取ったボルトフランジ径と、ステップＳＥ２１で算出した値（円柱モデル２０の直径値の総和を２倍した値）とを基に、ボルトフランジ径−（円柱モデル２０の直径値の総和）×２≦基準値なる関係が成立するか否かを判定し、この判定がＮＯであるときにはステップＳＥ２３に進む一方、ＹＥＳであるときにはステップＳＥ２４に進む。
【０１３０】
ステップＳＥ２３では、結果ファイルに”ＯＫ”と出力する。
【０１３１】
ステップＳＥ２４では、フランジ部のかかり代が不足しているものと判断して、結果ファイルに”かかり代不足”を出力する。
【０１３２】
図１５及び図１６は、不具合VIを検出するための処理を示している。
【０１３３】
ステップＳＦ１〜ステップＳＦ３ではそれぞれ、ステップＳＡ１〜ステップＳＡ３と同様の処理を実行する。
【０１３４】
ステップＳＦ４では、ステップＳＦ３で検索した属性値（材質や形状データ）の中から、ボルト軸長とボルトフランジ径とを読み込む。
【０１３５】
ステップＳＦ５では、ボルトフランジ部５０ｂの突出量（＝ボルトフランジ径−ボルト軸径）に等しい直径値を有する複数個（本実施形態では７個）の円柱モデル２０を、ボルト軸部５０ａの周方向に並ぶように生成する（図２６参照）。またこの処理では、各円柱モデル２０を、ボルトフランジ部５０ｂの座面よりも所定距離Ｗ１だけボルト先端側にオフセットした位置に生成する。各円柱モデル２０の中心位置は、例えば、ボルト軸部５０ａの半径＋（ボルトフランジ径−ボルト軸部径）／２の位置に設定すればよい。また、各円柱モデル２０の高さは所定高さ（例えばボルト軸部５０ａのネジピッチの３〜５倍）に設定すればよい。各円柱モデル２０同士は、互いに周接するように配置してもよいし、互いに所定間隔を隔てて配置するようにしてもよい。尚、生成する円柱モデル２０の個数は少なくとも３個以上であることが好ましい。
【０１３６】
ステップＳＦ６では、ステップＳＦ５で生成した円柱モデル２０と、上記ボルトモデルを除く全て部品モデルとの間で干渉チェックを実行する。
【０１３７】
ステップＳＦ７では、「円柱モデル２０と干渉する部品モデルがない（未干渉）」か否かを判定し、この判定がＹＥＳであるときにはステップＳＦ１４に進む一方、ＮＯであるときにはステップＳＦ８に進む。
【０１３８】
ステップＳＦ８では、ステップＳＦ７の干渉チェックの結果を基に、円柱モデル２０のうちの一部のみが部品モデルと干渉しているか否かを判定し、この判定がＹＥＳであるときにはステップＳＦ１５に進む一方、ＮＯであるときにはステップＳＦ９に進む。
【０１３９】
ステップＳＦ９では、ステップＳＦ５で生成した複数の円柱モデル２０を、ボルトフランジ部５０ｂの上面側（ボルト基端側）に所定距離Ｗ１だけシフトさせてなる複数の円柱モデル２０を生成する。
【０１４０】
ステップＳＦ１０では、ステップＳＦ９で生成した円柱モデル２０と、上記ボルトモデルを除く全ての部品モデルとの間で干渉チェックを実行する。
【０１４１】
ステップＳＦ１１では、ステップＳＦ１０の干渉チェックの結果を基に、「円柱モデル２０と干渉する部品モデルがない（未干渉）」か否かを判定し、この判定がＹＥＳであるときにはステップＳＦ１６に進む一方、ＮＯであるときにはステップＳＦ１２に進む。
【０１４２】
ステップＳＦ１２では、円柱モデル２０のうちの一部のみが部品モデルと干渉しているか否かを判定し、この判定がＹＥＳであるときにはステップＳＦ１７に進む一方、ＮＯであるときにはステップＳＦ１３に進む。
【０１４３】
ステップＳＦ１３では、結果ファイルに”ＮＧ（沈み込み）”と出力する。
【０１４４】
ステップＳＦ７の判定がＹＥＳであるときに進むステップＳＦ１４では、結果ファイルに”ＮＧ（浮き上がり）”と出力する。
【０１４５】
ステップＳＦ７の判定がＹＥＳであるときに進むステップＳＦ１５では、結果ファイルに”ＮＧ（傾き）”と出力する。
【０１４６】
ステップＳＦ１１の判定がＹＥＳであるときに進むステップＳＦ１６では、結果ファイルに”ＯＫ”と出力する。
【０１４７】
ステップＳＦ１２の判定がＹＥＳであるときに進むステップＳＦ１７では、結果ファイルに”ＮＧ（傾き）”と出力する。
【０１４８】
図１７は、不具合VIIを検出するため処理を示している。
【０１４９】
ステップＳＧ１〜ステップＳＧ４ではそれぞれ、ステップＳＡ１〜ステップＳＡ４と同様の処理を実行する。
【０１５０】
ステップＳＧ５では、ボルト軸部５０ａの先端位置に、ステップＳＧ４で読み取った軸径よりも小径（本実施形態ではボルト軸部５０ａのネジ部の谷径）の円柱モデル２０を、ボルト軸部５０ａと同軸に生成する（図２７参照）。すなわち、この処理では、円柱モデル２０を、ボルト軸部５０ａの先端面から、その軸方向においてボルト外方側に突出するように生成する。円柱モデル２０の高さは所定高さ（例えばボルト軸部５０ａのネジピッチの３〜５倍）に設定すればよい。  
【０１５１】
ステップＳＧ６では、ステップＳＧ５で生成した円柱モデル２０と、上記ボルトモデルを除いた全ての部品モデルとの間で干渉チェックを実行する。
【０１５２】
ステップＳＧ７では、ステップＳＧ６の干渉チェックの結果を基に、円柱モデル２０と干渉する部品モデルが検出されたか否を判定し、この判定がＮＯであるときにはステップＳＧ９に進む一方、ＹＥＳであるときにはステップＳＧ８に進む。
【０１５３】
ステップＳＧ８では、結果ファイルに”ＮＧ（底付き）”と出力する。
【０１５４】
ステップＳＧ９では、結果ファイルに”ＯＫ”と出力する。
【０１５５】
図１８は、不具合VIIIを検出するための処理の前半部を示している。
【０１５６】
ステップＳＨ１〜ステップＳＨ３ではそれぞれ、ステップＳＡ１〜３と同様の処理を実行する。
【０１５７】
ステップＳＨ４では、ステップＳＨ３で検索した属性値（材質や形状データ）の中から、ボルト軸長とボルトフランジ径とを読み込む。
【０１５８】
ステップＳＨ５では、ステップＳＨ４で読み込んだボルトフランジ径と同径で且つ読み込んだボルト軸長と同高さの円柱モデル２０を、ボルト軸部５０ａと同軸に且つ該ボルト軸部５０ａに重複するように生成する。換言すると、ボルトフランジ径と同径の円柱モデル２０を、ボルト軸部５０ａと同軸に、該ボルト軸部５０ａの基端部から先端部に至る全範囲に亘って生成する。
【０１５９】
ステップＳＨ６では、ステップＳＨ５で生成した円柱モデル２０と、ボルトモデルを除いた全ての部品モデルとの間で干渉チェックを実行する。
【０１６０】
ステップＳＨ７では、ステップＳＨ６の干渉チェックの結果を基に、円柱モデル２０と干渉する部品モデルの中に”ＷＥＬＤ．ＮＵＴ”と記述された名前を持つ部品モデルが存在するか否かを判定し、この判定がＮＯであるときにはステップＳＨ１１に進む一方、ＹＥＳであるときにはステップＳＨ８に進む。
【０１６１】
ステップＳＨ８では、ボルト軸径よりも大きい所定径の円柱モデル２０をボルト軸部５０ａの先端位置に同軸に生成する。すなわち、この処理では、円柱モデル２０を、ボルト軸部５０ａの先端面から、その軸心方向においてボルト外方側に突出するように生成する。円柱モデル２０の高さは所定高さ（例えばボルト軸部５０ａのネジピッチの３〜５倍）に設定すればよい。
【０１６２】
ステップＳＨ９では、ステップＳＨ８で生成した円柱モデル２０と、ボルトモデル５０を除く部品モデルとの間で干渉チェックを実行する。そして、この干渉チェックの結果を基に、円柱モデル２０と干渉する部品モデルの中に”ＷＥＬＤ．ＮＵＴ”と記述された名前を持つ部品が存在するか否かを判定し、この判定がＮＯであるときにはステップＳＨ１５に進む一方、ＹＥＳであるときにはステップＳＨ１０に進む。
【０１６３】
ステップＳＨ１０では、結果ファイルに”ＮＧ（長さ不足）”と出力する。
【０１６４】
ステップＳＨ７の判定がＮＯであるときに進むステップＳＨ１１では、ボルト軸部５０ａの先端位置（先端面）を基準として、かかり代として必要な長さ分だけボルト軸心方向の基端部側にオフセットした位置に、ボルト軸径よりも大径の円柱モデル２０を生成する。
【０１６５】
ステップＳＨ１２では、ステップＳＨ１１で生成した円柱モデル２０と、ボルトモデルを除く全ての部品モデルとの間で干渉チェックを実行して、当該円柱モデル２０と干渉する部品モデルが存在するか否かを判定する。そして、この判定がＮＯであるときにはステップＳＨ１３に進む一方、ＹＥＳであるときにはステップＳＨ１４に進む。
【０１６６】
ステップＳＨ１３では、結果ファイルに”ＮＧ（長さ不足）”と出力する。
【０１６７】
ステップＳＨ１４では、結果ファイルに”ＯＫ”と出力する。
【０１６８】
ステップＳＨ９の判定がＮＯであるときに進むステップＳＨ１５では、結果ファイルに”ＯＫ”と出力する。
【０１６９】
図１９は、不具合VIIIを検出するための処理の後半部を示している。
【０１７０】
ステップＳＩ１では、ステップＳＡ１と同様の処理を実行する。
【０１７１】
ステップＳＩ２では、ステップＳＩ１でロードした３Ｄ−ＣＡＤデータを基に、車体モデルに含まれるナットモデル６０を検索する。
【０１７２】
ステップＳＩ３では、ステップＳＩ２で検索したナットモデル６０の型番情報を読み込む。そして、締結部品データベース１３ｂの中から、該読み込んだ型番情報に対応するナットの属性値を検索する。
【０１７３】
ステップＳＩ４では、ステップＳＡ３で検索した属性値（材質や形状データ）の中から、ナット径とナット高さとを読み込む。
【０１７４】
ステップＳＩ５では、ナット径と同径の円柱モデル２０を生成して、ナットモデル６０の座面側とは反対側の面に該ナットモデル６０と同軸に配置する。円柱モデル２０の高さは所定高さ（例えばボルト軸部５０ａのネジピッチの３〜５倍）に設定すればよい。
【０１７５】
ステップＳＩ６では、ステップＳＩ５で生成した円柱モデル２０と、ナットモデル６０を除いた全ての部品モデルとの間で干渉チェックを実行する。
【０１７６】
ステップＳＩ７では、ステップＳＩ６で実行した干渉チェックの結果を基に、円柱モデル２０と干渉する部品モデルが存在するか否かを判定し、ＮＯであるときにはステップＳＩ９に進む一方、ＹＥＳであるときにはステップＳＩ８に進む。
【０１７７】
ステップＳＩ８では、結果ファイルに”ＯＫ”と出力する。
【０１７８】
ステップＳＩ９では、結果ファイルに”ＮＧ（長さ不足）”と出力する。
【０１７９】
図２０は、不具合IX-iを検出するための処理を示している。
【０１８０】
ステップＳＪ１〜ステップＳＪ３ではそれぞれ、ステップＳＡ１〜ステップＳＡ３と同様の処理を実行する。
【０１８１】
ステップＳＪ４では、ステップＳＪ３で検索した属性値（材質や形状データ）の中から、ボルト軸長とボルトフランジ径とを読み込む。
【０１８２】
ステップＳＪ５では、ステップＳＪ４で読み込んだボルトフランジ径と同径で且つ読み込んだボルト軸長と同高さの円柱モデル２０を、ボルト軸部５０ａと同軸に且つ該ボルト軸部５０ａに重複するように生成する。換言すると、ボルトフランジ径と同径の円柱モデル２０を、ボルト軸部５０ａと同軸に、該ボルト軸部５０ａの基端部から先端部に至る全範囲に亘って生成する。
【０１８３】
ステップＳＪ６では、生成した円柱モデル２０と、ボルトモデル５０を除いた全ての部品モデルとの間で干渉チェックを実行する。
【０１８４】
ステップＳＪ７では、ステップＳＪ６の干渉チェックの結果を基に、円柱モデル２０と干渉する部品モデルの中に、ＮＧリストファイル１３ｅ内に記述された名前を持つ部品モデルが存在するか否かを判定する。そして、この判定がＮＯであるときにはステップＳＪ９に進む一方、ＹＥＳであるときにはステップＳＪ８に進む。
【０１８５】
ステップＳＪ８では、結果ファイルに”ＮＧ（ＮＧ干渉物有り）”と出力する。
【０１８６】
ステップＳＪ９では、結果ファイルに”ＯＫ”と出力する。
【０１８７】
図２１は、不具合IX-iiを検出するための処理を示している。
【０１８８】
ステップＳＫ１〜ＳＫ６ではそれぞれ、ステップＳＪ１〜ステップＳＪ６と同様の処理を実行する。
【０１８９】
ステップＳＫ７では、ステップＳＪ６の干渉チェックの結果を基に、円柱モデル２０と干渉する部品モデルの中に、”ＷＥＬＤ  ＮＵＴ”と記述された名前を持つ部品モデルが存在するか否かを判定する。そして、この判定がＮＯであるときにはステップＳＫ１１に進む一方、ＹＥＳであるときにはステップＳＫ８に進む。
【０１９０】
ステップＳＫ８では、ステップＳＫ７で、”ＷＥＬＤ  ＮＵＴ”なる名前を持つ部品モデルのネジピッチの値を、締結部品データベース１３ｂを参照して取得する。また、ボルト軸部５０ａのネジピッチについても、同様に締結部品データベース１３ｂを参照して取得する。
【０１９１】
ステップＳＫ９では、ステップＳＫ８で取得した”ＷＥＬＤ  ＮＵＴ”なる部品モデルのネジピッチと、ボルト軸部５０ａのネジピッチとを比較して、両者が等しいか否かを判定する。そして、この判定がＮＯであるときにはステップＳＫ１２に進む一方、ＹＥＳであるときにはステップＳＫ１０に進む。
【０１９２】
ステップＳＫ１０では、結果ファイルに”ＯＫ”と出力する。
【０１９３】
ステップＳＫ７の判定がＮＯであるときに進むステップＳＫ１１では、本不具合IX-iの検出処理の対象外となるケースであると判断して、結果ファイルに”ＯＫ（対象外）”と出力する。
【０１９４】
ステップＳＫ９がＮＯであるときに進むステップＳＫ１２では、結果ファイルに”ピッチアンマッチ”と出力する。
【０１９５】
図２２は、不具合IX-iiiを検出するための処理を示している。
【０１９６】
ステップＳＬ１〜ステップＳＬ６ではそれぞれ、ステップＳＪ１〜ステップＳＪ６と同様の処理を実行する。
【０１９７】
ステップＳＬ７では、ステップＳＬ６の干渉チェックの結果を基に、円柱モデル２０と干渉する部品モデルの中に、ボディパーツリストファイル内に記述された名前を持つ部品モデルが存在するか否かを判定し、この判定がＮＯであるときにはステップＳＬ１０に進む一方、ＹＥＳであるときにはステップＳＬ８に進む。
【０１９８】
ステップＳＬ８では、ボルトモデルが焼き付き防止用のボルトであるか否かを判定し（ボルトモデルの情報に焼き付き防止フラグが含まれているか否かを判定し）この判定がＮＯであるときにはステップＳＬ１１に進む一方、ＹＥＳであるときにはステップＳＬ９に進む。
【０１９９】
ステップＳＬ９では、結果ファイルに”ＯＫ”と出力する。
【０２００】
ステップＳＬ７の判定がＮＯであるときに進むステップＳＬ１０では、結果ファイルに”ＯＫ（検証対象外）”と出力する。
【０２０１】
ステップＳＬ８の判定がＮＯであるときに進むステップＳＬ１１では、結果ファイルに”ＮＧ（焼き付き防止でない）”と出力する。
【０２０２】
上記制御部１０は、上記結果ファイルに出力された情報を基に締結不具合I〜IXの少なくとも一つの不具合が生じている箇所のボルトモデル５０を赤色で表示する。
【０２０３】
以上のように構成された設計検証装置Ａにおいて、制御部１０により不具合Ｉを検出するための処理が実行されると、図２３に示すように、該ボルト軸部５０ａよりも小径で且つボルト軸部５０ａと同高さの円柱モデル２０がボルト軸部５０ａに重複して生成される。そして、制御部１０によって、この円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックが実行される。
【０２０４】
ここで、不具合Ｉ（例えば図４（ｃ）、（ｅ）及び（ｇ）に示す不具合）が発生している場合には、制御部１０によって円柱モデル２０と干渉する部品モデルが検出されるので、この場合は、ステップＳＡ７の処理でＹＥＳと判定されて結果ファイルに”ＮＧ”が出力される。一方、不具合Ｉが発生していない場合には、制御部１０によって円柱モデル２０と干渉する部品モデルが検出されることもないので、この場合は、ステップＳＡ７の処理でＮＯと判定されて結果ファイルに”ＯＫ”が出力される。
【０２０５】
上記制御部１０により、不具合IIを検出するための検出処理が実行されると、図２４に示すように、ボルトフランジ部５０ｂと同径で且つ所定高さＨ２の薄肉円柱モデル２０が生成され、当該円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックが実行される。制御部１０では、生成した円柱モデル２０をボルト軸部５０ａの基端部から先端部に向かって、該円柱モデル２０の高さ分ずつシフトさせ、該シフトの度に干渉チェックを実行する。ここで、不具合IIとして締結部品同士の浮きが発生している場合には、制御部１０において該円柱モデル２０と部品モデルとの干渉が全く検出されない場合が生じるため、この場合（干渉が検出されない場合）は、ステップＳＢ２２の処理でＮＯと判定されて結果ファイルに”ＮＧ（浮き上がり）”が出力される。一方、不具合IIとして締結部品の沈み込みが発生している場合には、円柱モデル２０が２つ以上の部品モデルと干渉する状態が２回連続して検出される場合が生じるので、この場合は、ステップＳＢ１０の処理でＹＥＳと判定されて結果ファイルに”沈み込みＮＧ”が出力される。
【０２０６】
上記制御部１０により不具合IIIを検出するための検出処理が実行されると、図２５に示すように、Ｘ軸（ボルトモデル５０を軸心方向から見てその中心から径方向外側に向かう軸）方向の＋側に向かって所定径Ｄ１の円柱モデル２０が順次生成され、該円柱モデル２０が生成される度に、該円柱モデル２０とその他の部品モデルとの干渉チェックが実行される。この干渉チェックの結果、他の部品モデル（被締結部品モデル２）との干渉が検出されると、当該円柱モデル２０よりも小径（所定径Ｄ２）の円柱モデル２０が、干渉が検出された円柱モデル２０よりも１つ前に生成された円柱モデル２０に接する位置からＸ軸方向の＋側に向かって順次生成されて、該円柱モデル２０が生成される度に、円柱モデル２０とその他の部品モデルとの干渉チェックが実行される。そして、制御部１０による円柱モデル２０の直径寸法の変更回数が所定回数（図２５では所定回数＝２の場合を示している）に達した場合には、円柱モデル２０（図２５では所定径Ｄ３（＜Ｄ２）の円柱モデル２０）が被締結部品モデル２と干渉した時点で、当該円柱モデル２０がボルトモデル５０の軸心回りに１８０°回転移動され、該１８０°回転後の円柱モデル２０とその他の部品モデルとの間で干渉チェックが実行される。
【０２０７】
ここで、ボルト軸部５０ａの軸心と、締結孔２ｋの軸心とがずれている場合には、上記１８０°回転後の円柱モデル２０と被締結部品モデル２とが干渉しないか、又は、当該円柱モデル２０と該円柱モデル２０よりもモデル１個分だけボルト軸中心側にオフセットした円柱モデル２０とが共に干渉することとなる。したがって、前者の場合は、ステップＳＣ１１の処理でＹＥＳと判定され、後者の場合には、ステップＳＣ１４の処理でＮＯと判定されて結果ファイルに”ＮＧ（軸心ずれ）”が出力される。一方、ボルト軸部５０ａの軸心と締結孔２ｋの軸心とが一致している場合（図２５に示す場合）には、上記の２つの場合に該当しないので、ステップＳＣ１４の処理でＹＥＳと判定されて結果ファイルに”ＯＫが出力される。
【０２０８】
上記制御部１０により不具合IVを検出するための処理が実行されると、制御部１０によって、ボルトモデル５０が検索させるとともに、該ボルトモデル５０に係合するナットモデル５１を特定するべく、ボルトフランジ部５０ｂと同径の円柱モデル２０が生成されて、この円柱モデル２０と干渉する”ＷＥＬＤ．ＮＵＴ"という名称の部品モデルが探索される。そして、制御部１０によって、この探索した部品モデル（ナットモデル５１の孔）とボルト軸部５０ａとを対象に、上述した不具合IIIを検出するためのロジックを適用して、ボルト軸部５０ａの径方向外側に円柱モデル２０を順次生成して、ボルト軸部５０ａの軸心ずれが生じているか否かを検出する。制御部１０では、この軸心ずれが検出されたときには、生成した円柱モデル２０の直径値の総和を２倍した値をナットモデル５１の孔径として算出し、この算出した孔径とボルト軸径とが一致していない場合には、結果ファイルに”ＮＧ孔径アンマッチ”を出力する一方、一致している場合には、結果ファイルに”ＯＫ”を出力する。
【０２０９】
上記制御部１０により不具合Vを検出するための処理が実行されると、上述したボルト軸部５０ａの軸心ずれを検出したのと同様に、ボルト軸部５０ａの径方向外側（Ｘ軸方向の＋側）に向かって円柱モデル２０が順次生成されて、ボルト軸部５０ａの軸心ずれが生じているか否かが検出される。そして、制御部１０によって、軸心ずれが生じていないと判断された場合には、生成した円柱モデル２０の直径値の総和を２倍した値が締結孔２ｋの直径値として算出される。ここで、ボルトフランジ部５０ｂのかかり代が不足している場合には、ボルトフランジ径から締結孔２ｋの直径値を引いた値が基準値以下となるので、この場合は、制御部１０におけるステップＳＥ２２の処理でＹＥＳと判定されて結果ファイルに”ＮＧ（かかり代不足）”が出力される。一方、ボルトフランジ部５０ｂのかかり代が十分に確保されている場合には、この直径値の差分値が基準値を上回ることとなるので、この場合は、ステップＳＥ２２の処理でＮＯと判定されて結果ファイルに”ＯＫ”が出力される。
【０２１０】
上記制御部１０により不具合VIを検出するための処理が実行されると、ボルトフランジ部５０ｂの座面からボルト先端側に向かって所定距離Ｗ１だけオフセットした位置に、ボルト軸部５０ａの周囲を囲むようにその周方向に並ぶ複数（本実施形態では７個）の円柱モデル２０が生成され（図２６参照）、該生成した各円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックが実行される。この干渉チェックが終了すると、制御部１０によって、上記生成した円柱モデル２０を、ボルト基端部側に所定距離Ｗ１だけオフセットしてボルトフランジ部５０ｂの上面側に配置し、この新たに配置した円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で再度干渉チェックが実行される。
【０２１１】
ここで、被締結部品モデル２の座面２ｆが傾いている場合（例えば図４（ｉ）の場合）には、制御部１０により各干渉チェックを実行したときに、複数の円柱モデル２０の一部しか干渉しないこととなるので、この場合は、ステップＳＦ８又はステップＳＦ１２の処理でＹＥＳと判定されて結果ファイルに”ＮＧ（傾き）”が出力される。また、ボルトモデル５０が被締結部品モデル２に対して浮き上がっている場合（例えば図４（ｇ）の場合）には、制御部１０により最初の干渉チェックを実行したときに円柱モデル２０と干渉する部品モデルが検出されないので、この場合には、ステップＳＦ７の処理でＹＥＳと判定されて結果ファイルに”ＮＧ（浮き上がり）”が出力される。また、ボルトモデル５０が被締結部品モデル２内に沈み込んでいる場合には、制御部１０における各干渉チェックの双方において、各円柱モデル２０の全てが他の部品モデルと干渉することとなるので、この場合には、ステップＳＦ１２の処理でＮＯと判定されて結果ファイルに”沈み込みＮＧ”が出力される。
【０２１２】
上記制御部１０により不具合VIIを検出するための処理が実行されると、図２７に示すように、ボルト軸部５０ａの先端部に円柱モデル２０が生成され、当該円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックが実行される。ここで、ボルト軸部５０ａの先端部が被締結部品モデル２に干渉する底付きが発生している場合（図５（ａ）の場合）には、当該円柱モデル２０の先端部と被締結部品モデル２とが干渉することとなるので、この場合には、ステップＳＧ７の処理でＹＥＳと判定されて結果ファイルに”ＮＧ（底付き）”が出力される。一方、底付きが発生していない場合には、円柱モデル２０の先端部と被締結部品モデル２とが干渉することもないので、ステップＳＧ７の処理でＮＯと判定されて結果ファイルに”ＯＫ”が出力される。
【０２１３】
上記制御部１０により不具合VIIIを検出する処理の前半部が実行されると、ボルトモデル５０の相手部品がナットモデル５１である場合には、図２８（ａ）に示すように、ボルト軸部５０ａの先端位置に、該ボルト軸部５０ａよりも大径の円柱モデル２０が同軸に配置される。そして、制御部１０によって、この円柱モデル２０と、ボルトモデルを除く全ての部品モデルとの間で干渉チェックが実行される。
【０２１４】
ここで、ボルトモデル５０のナットモデル５１に対するかかり代が不足（ボルト軸長が不足）している場合には、図２８（ａ）に示す如く、円柱モデル２０とナットモデル５１と干渉することとなるので、この場合は、ステップＳＨ９の処理でＹＥＳと判定されて結果ファイルに”ＮＧ（長さ不足）”が出力される。
【０２１５】
図２８（ｂ）に示すように、ボルトモデル５０の相手部品が被締結部品モデル２である場合には、ボルト軸部５０ａの先端位置から必要なかかり代分だけボルト軸心方向のボルト基端側にオフセットした位置に、ボルト軸部５０ａよりも大径の円柱モデル２０が生成され、この円柱モデル２０と、ボルトモデルを除く全ての部品モデルとの間で干渉チェックが実行される。
【０２１６】
ここで、ボルト軸部５０ａのかかり代が必要なかかり代よりも小さい場合には、円柱モデル２０と干渉する部品モデルは検出されないので、この場合には、ステップＳＨ１２の処理でＮＯと判定されて結果ファイルに”ＮＧ（長さ不足）”が出力される。一方、かかり代が必要なかかり代以上である場合には、ステップＳＨ１２の処理でＹＥＳと判定されて結果ファイルに”ＯＫ”が出力される。
【０２１７】
上記制御部１０により不具合VIIIを検出する処理の後半部が実行されると、図２８（ｃ）に示すように、ナットモデル６０の上面（座面とは反対側の面）に円柱モデル２０が生成されて、当該円柱モデル２０と、ナットモデル６０を除く全ての部品モデルとの間で干渉チェックが実行される。
【０２１８】
ここで、ボルトモデル６１の軸長が不足している場合には、図２８（ｃ）に示すように、円柱モデル２０とボルトモデル５０とが干渉することもないので、この場合は、ステップＳＩ７の処理でＮＯと判定されて結果ファイルに”ＮＧ（長さ不足）”が出力される。一方、ボルトモデル６１の軸長が十分に確保されている場合には、ボルトモデル６１の先端部がナットモデル６０の上面よりも上側に突出して円柱モデル２０と干渉することとなるので、この場合は、ステップＳＩの処理でＹＥＳと判定されて結果ファイルに”ＯＫ”が出力される。
【０２１９】
上記制御部１０により不具合IX-iを検出するための処理が実行されると、図２９に示すように、ボルトフランジ径と同径で且つボルト軸長と同高さの円柱モデル２０が、ボルト軸部５０ａと同軸にその基端部から先端部に至る範囲に形成される。そして、制御部１０により、この円柱モデル２０と干渉する部品モデルが検出される。ここで、この干渉した部品モデルの中に、例えばラバー５２等のＮＧリストファイル１３ｅに記載された名前を持つ部品モデルが含まれている場合には、必要な締結力を得ることができないので、この場合は、ステップＳＪ７の処理でＹＥＳと判定されて”ＮＧ（ＮＧ部品有り）”が出力される。
【０２２０】
上記制御部１０により不具合IX-iiを検出するための処理が実行されると、不具合IX-iを検出したのと同様に、図２９に示す円柱モデル２０が形成されて、当該円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックを実行することにより、該円柱モデル２０に干渉する部品モデルの中から”ＷＥＬＤ．ＮＵＴ”という名称を持つ部品モデルを探索する。制御部１０では、探索した部品モデル（ナットモデル５１）のピッチ情報を締結部品データベース１３ｂの中から取得し、この取得したナットモデル５１のピッチと、ボルトモデル５０のピッチとを比較して、両者が一致しない場合には結果ファイルに”ＮＧ（ネジピッチアンマッチ）”を出力する一方、一致する場合には結果ファイルに”ＮＧ”を出力する。
【０２２１】
上記制御部１０により不具合IX-iiiを検出するための処理が実行されると、上記不具合IX-iを検出したのと同様に、図２９に示す円柱モデル２０が形成され、当該円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックが実行される。ここで、干渉した部品モデルがボディ部材である場合には、設計上の観点からボルトには焼き付き防止用ボルトを使用する必要があるが、上記ボルトモデルが焼き付き防止用でない場合には、ステップＳＬ８の処理でＮＯと判定されて、結果ファイルに”ＮＧ（焼き付き防止でない）”が出力される。一方、ボルトモデル５０が焼き付き防止用である場合には、ステップＳＬ８の処理でＹＥＳと判定されて結果ファイルに”ＯＫ”が出力される。
【０２２２】
そして、制御部１０は、上述の如く、結果ファイルに出力された情報を基に締結不具合I〜IXが生じている箇所のボルトモデル５０を赤色で表示する。これにより、オペレータは、不具合発生箇所を視覚を通じて認識することができる。
【０２２３】
ここで、上記実施形態では、制御部１０による干渉チェックの対象部品としてボルトモデル５０を除く代わりに、フランジ部等を有さない円柱モデル２０を生成して、当該円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとに対して干渉チェックを行うようにしているので、干渉しても良い箇所までもが不具合箇所として赤色で表示されるのを防止することができる。
【０２２４】
以上の如く、上記実施形態では、不具合I〜IXに応じて、形状、個数、大きさ、及び配置位置等が異なる円柱モデル２０を生成して、この円柱モデル２０と、ボルトモデルを除く全ての部品モデルとの干渉チェックを実行することで、各不具合I〜IXを効率良く検出することができる。
【０２２５】
（変形例）
図３０は、本発明の変形例２を示し、不具合IIIの検出処理を上記実施形態とは異ならせたものである。すなわち、この変形例では、上記実施形態における図１３及び図１４に示す処理を、Ｘ軸方向のみならずＸ軸方向に直交するＹ軸方向においても実行するようにしている。
【０２２６】
これによれば、締結孔２ｋが楕円形である場合でも、締結孔２ｋに対するボルトモデル５０の軸心ずれを精度良く検出することができる。
【０２２７】
（他の実施形態）
本発明の構成は、上記実施形態に限定されるものではなく、それ以外の種々の構成を包含するものである。すなわち、上記実施形態では、主にボルトモデル５０に関連する締結不具合の検出処理について説明したが、同じ原理でナットモデル６０に関連する締結不具合も検出することができる。
【０２２８】
具体的には、例えば不具合Ｉを検出する場合には、制御部１０によって、ナットモデル６０の孔径を読み込んだ上で、読み込んだ孔径と同径の円柱モデル２０をナットモデル６０の軸中心に生成して（図３１参照）、生成した円柱モデル２０と、ボルトモデル５０を除く全ての部品モデルとの間で干渉チェックを実行するようにすればよい。また、不具合IIを検出する場合には、ナットモデル６０の軸中心に円柱モデル２０を生成してその高さ分ずつオフセットさせるようにすればよい（図３２参照）。その他、不具合IV〜IXを検出するにあたっては、図６〜図２２のフローチャートにおいてそれぞれ、ボルトモデル５０をナットモデル６０に適宜置き換えるようにすればよい。
【０２２９】
上記実施形態では、制御部１０における不具合IIIの処理を実行する際に、複数の円柱モデル２０をボルト軸中心側から径方向外側に向かって順次配置するようにしているが、これら複数の円柱モデル２０を同時に配置するようにしてもよい。これにより、制御部１０における演算処理時間を短縮することができる。
【０２３０】
上記実施形態では、車両の車体のアセンブリモデル中に含まれる締結部品モデル１と被締結部品モデル２との締結不具合を検出するようにしているが、これに限ったものではなく、例えば、航空機、船舶、電化製品等のアセンブリモデルを対象アセンブリとして採用するようにしてもよい。
【０２３１】
また、上記実施形態では、締結部品モデル１としてボルトモデル５０やナットモデル６０を用いた例を示したが、これに限ったものではなく、例えば、ボルトモデル５０とナットモデル５１との組合せを、スクリューのモデルとグロメットのモデルとの組合せとしてもよいし、ボルトモデル５０をファスナのモデルとしてもよい。
【０２３２】
また、上記実施形態では、制御部１０において不具合I〜IXを検出するための処理を全て実行するようにしているが、これに限ったものではなく、例えば、不具合I〜IXのうちの一部を実行するようにしてもよい。
【産業上の利用可能性】
【０２３３】
本発明は、３Ｄ−ＣＡＤモデル化された締結部品モデルと被締結部品モデルとの締結不具合をコンピュータにより検出する設計検証方法及び設計検証装置に有用であり、特に、車両の車体モデル中に含まれる締結部品モデルと被締結部品モデルとの締結不具合を検出する場合に有用である。
【符号の説明】
【０２３４】
１     締結部品モデル
２     被締結部品モデル
２ｋ   挿通孔（締結孔）
１０   制御部（モデル生成部、検証チェック部、不具合検出部）
２０   円柱モデル
５０   ボルトモデル（被締結部品モデル）
５０ａ 軸部
５０ｂ フランジ部
６０   ナットモデル（締結部品モデル）
【図１】
0005471321.tif 000002
【図２】
0005471321.tif 000003
【図３】
0005471321.tif 000004
【図４】
0005471321.tif 000005
【図５】
0005471321.tif 000006
【図６】
0005471321.tif 000007
【図７】
0005471321.tif 000008
【図８】
0005471321.tif 000009
【図９】
0005471321.tif 000010
【図１０】
0005471321.tif 000011
【図１１】
0005471321.tif 000012
【図１２】
0005471321.tif 000013
【図１３】
0005471321.tif 000014
【図１４】
0005471321.tif 000015
【図１５】
0005471321.tif 000016
【図１６】
0005471321.tif 000017
【図１７】
0005471321.tif 000018
【図１８】
0005471321.tif 000019
【図１９】
0005471321.tif 000020
【図２０】
0005471321.tif 000021
【図２１】
0005471321.tif 000022
【図２２】
0005471321.tif 000023
【図２３】
0005471321.tif 000024
【図２４】
0005471321.tif 000025
【図２５】
0005471321.tif 000026
【図２６】
0005471321.tif 000027
【図２７】
0005471321.tif 000028
【図２８】
0005471321.tif 000029
【図２９】
0005471321.tif 000030
【図３０】
0005471321.tif 000031
【図３１】
0005471321.tif 000032
【図３２】
0005471321.tif 000033