(57)【特許請求の範囲】
【請求項１】
第一のモデルの変形面を含むバウンディングボックスである第二のモデルと、前記第一のモデルとが干渉する干渉領域を特定する第一の特定部と、
前記第一の特定部により特定された干渉領域の前記第二のモデル上の位置に基づいて、前記第二のモデルが変形する際の変位点を特定する第二の特定部と、
前記変形面に対応する前記第二のモデルの面上に投影された前記干渉領域の所定の位置から前記変位点までの第一の距離と、前記変形面から該変形面に対向する前記第一のモデルの面までの第二の距離とに基づいて、前記第一のモデルの変形に関する物性値を算出する第一の算出部と、
前記第一の算出部により算出された物性値、および、ユーザが指定した、前記第一のモデルを変形させる場合の前記第一のモデルの前記変位点に対応する点の変形後の位置に基づいて、前記変位点の位置が前記第一のモデルの前記変位点に対応する点の変形後の位置となるように前記第二のモデルを変形させた場合の前記第二のモデルの姿勢を算出する第二の算出部と、
を有することを特徴とする算出装置。
【請求項２】
前記第二の算出部は、前記投影された干渉領域を前記第二のモデルが変形する際の固定面として、前記変位点の位置が前記第一のモデルの前記変位点に対応する点の変形後の位置となるように前記第二のモデルを変形させた場合の前記第二のモデルの姿勢を算出する
ことを特徴とする請求項１に記載の算出装置。
【請求項３】
前記第一の特定部は、前記変形面と対向する前記第一のモデルの面を抽出し、前記変形面に接続された前記第一のモデルの複数の面を抽出し、前記変形面、および、抽出された面を含む第二のモデルを生成し、生成した第二のモデルと、前記第一のモデルとが干渉する干渉領域を特定する
ことを特徴とする請求項１または２に記載の算出装置。
【請求項４】
前記第一の算出部は、前記第二の距離を前記第一の距離で除した値に、所定の係数を乗じた値を前記物性値として算出する
ことを特徴とする請求項１〜３のいずれか１つに記載の算出装置。
【請求項５】
前記第二の算出部により算出された姿勢となるように前記第二のモデルを変形させた場合の前記第二のモデルを表すデータを生成する生成部
をさらに有することを特徴とする請求項１〜４のいずれか１つに記載の算出装置。
【請求項６】
コンピュータに、
第一のモデルの変形面を含むバウンディングボックスである第二のモデルと、前記第一のモデルとが干渉する干渉領域を特定し、
前記特定された干渉領域の前記第二のモデル上の位置に基づいて、前記第二のモデルが変形する際の変位点を特定し、
前記変形面に対応する前記第二のモデルの面上に投影された前記干渉領域の所定の位置から前記変位点までの第一の距離と、前記変形面から該変形面に対向する前記第一のモデルの面までの第二の距離とに基づいて、前記第一のモデルの変形に関する物性値を算出し、
算出された物性値、および、ユーザが指定した、前記第一のモデルを変形させる場合の前記第一のモデルの前記変位点に対応する点の変形後の位置に基づいて、前記投影された干渉領域を前記第二のモデルが変形する際の固定面として、前記変位点の位置が前記第一のモデルの前記変位点に対応する点の変形後の位置となるように前記第二のモデルを変形させた場合の前記第二のモデルの姿勢を算出する
各処理を実行させるための算出プログラム。
【請求項７】
コンピュータが、
第一のモデルの変形面を含むバウンディングボックスである第二のモデルと、前記第一のモデルとが干渉する干渉領域を特定し、
前記特定された干渉領域の前記第二のモデル上の位置に基づいて、前記第二のモデルが変形する際の変位点を特定し、
前記変形面に対応する前記第二のモデルの面上に投影された前記干渉領域の所定の位置から前記変位点までの第一の距離と、前記変形面から該変形面に対向する前記第一のモデルの面までの第二の距離とに基づいて、前記第一のモデルの変形に関する物性値を算出し、
算出された物性値、および、ユーザが指定した、前記第一のモデルを変形させる場合の前記第一のモデルの前記変位点に対応する点の変形後の位置に基づいて、前記投影された干渉領域を前記第二のモデルが変形する際の固定面として、前記変位点の位置が前記第一のモデルの前記変位点に対応する点の変形後の位置となるように前記第二のモデルを変形させた場合の前記第二のモデルの姿勢を算出する
各処理を実行することを特徴とする算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算出装置、算出プログラムおよび算出方法に関する。
【背景技術】
【０００２】
三次元ＣＡＤ（Computer  Aided  Design）を用いて、機械製品などの製品の開発を行う技術がある。三次元ＣＡＤでは、製品の形状が定義されることで製品がモデル化される。製品の形状が定義されるため、三次元ＣＡＤは、製品モデルを構成する部品モデルが静止する静的な製品モデルの組立状態を表現することには適している。しかしながら、三次元ＣＡＤは、製品モデルを構成する部品モデルを動かして、製品モデルを組み立てるような動的な製品モデルの組立状態を表現することには、適しているとはいえない場合がある。これは、三次元ＣＡＤでは、部品の形状が定義されるがゆえ、動的な製品モデルの組立状態の際に発生する部品モデルの変形に対応することが困難となるからである。
【０００３】
そのため、三次元ＣＡＤで、樹脂部品やラベルなどの部品モデルを変形させて、動的な製品モデルの組立状態を表現する場合には、部品を変形させて組み立てる旨のメッセージが所定の言語で記述された注記やアイコンなどを表示させる。これにより、ユーザに部品を変形させて組み立てることを把握させることができる。しかしながら、ユーザが必ずしも注記やアイコンに記載された言語を理解できるとは限らない。例えば、日本語が理解することができないユーザは、日本語で記載された注記やアイコンが示す内容を理解することができない。このように、ユーザごとに、理解できる言語は異なる。そのため、注記やアイコンなどの表示によって、注記やアイコンが示す内容を全てのユーザに理解させることは困難である。
【０００４】
そこで、部品モデルの物性値、部品モデルを変形させる際に部品モデルのどの部分を固定するかなどの情報である境界条件をユーザが設定し、物性値および境界条件を用いて解析を行って、部品モデルの変形をシミュレーションする技術がある。かかるシミュレーションにより、変形後の部品モデルに関する情報、例えば、変形後の部品モデルの各面の位置および姿勢が得られる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８０３１４号公報
【特許文献２】特開２００８−２８７３００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の部品モデルの変形をシミュレーションする技術では、簡易に変形後のモデルに関する情報を得ることができないという問題がある。
【０００７】
例えば、上記の部品モデルの変形をシミュレーションする技術では、シミュレーションを行う際に、部品モデルの物性値および境界条件をユーザが設定する。そのため、ユーザにとって、煩雑である。したがって、上記の部品モデルの変形をシミュレーションする技術では、簡易に変形後のモデルに関する情報を得ることができないという問題がある。なお、かかる問題は、３次元ＣＡＤだけではなく、例えば、ＤＭＵ（Digital  Mock  Up）などにおいても同様に発生する。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、簡易に変形後のモデルに関する情報を得ることができる算出装置、算出プログラムおよび算出方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する算出装置は、第一の特定部と、第二の特定部と、第一の算出部と、第二の算出部とを有する。第一の特定部は、第一のモデルの変形面を含むバウンディングボックスである第二のモデルと、第一のモデルとが干渉する干渉領域を特定する。第二の特定部は、第一の特定部により特定された干渉領域の第二のモデル上の位置に基づいて、第二のモデルが変形する際の変位点を特定する。第一の算出部は、変形面に対応する第二のモデルの面上に投影された干渉領域の所定の位置から変位点までの第一の距離と、変形面から該変形面に対向する第一のモデルの面までの第二の距離とに基づいて、第一のモデルの変形に関する物性値を算出する。第二の算出部は、第一の算出部により算出された物性値、および、ユーザが指定した、第一のモデルを変形させる場合の第一のモデルの変位点に対応する点の変形後の位置に基づいて、変位点の位置が第一のモデルの変位点に対応する点の変形後の位置となるように第二のモデルを変形させた場合の第二のモデルの姿勢を算出する。
【発明の効果】
【００１０】
本願の開示する算出装置、算出プログラムおよび算出方法の一つの態様によれば、簡易に変形後のモデルに関する情報を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係る算出装置の機能構成の一例を示す図である。
【図２】図２は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図３】図３は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図４】図４は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図５】図５は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図６】図６は、アニメーション情報のデータ構造の一例を示す図である。
【図７】図７は、変形情報のデータ構造の一例を示す図である。
【図８】図８は、移動情報のデータ構造の一例を示す図である。
【図９】図９は、指示受付画面の一例を示す図である。
【図１０】図１０は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図１１】図１１は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図１２】図１２は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図１３】図１３は、第一の特定部が生成するバウンディングボックスの一例を示す図である。
【図１４】図１４は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図１５】図１５は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図１６】図１６は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図１７】図１７は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図１８】図１８は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図１９】図１９は、物性値Ｋの値の大きさによって、変形させた際の変形基準モデルの形状が異なることを説明するための図である。
【図２０】図２０は、物性値Ｋの値の大きさによって、変形させた際の変形基準モデルの形状が異なることを説明するための図である。
【図２１】図２１は、変形後の変形基準モデルの形状の一例を示す図である。
【図２２】図２２は、バウンディングボックスのモデルを変形させた場合の一例を示す図である。
【図２３】図２３は、ＦＦＤを説明するための図である。
【図２４】図２４は、実施例に係る算出処理の手順を示すフローチャートである。
【図２５】図２５は、実施例に係る変形処理の手順を示すフローチャートである。
【図２６】図２６は、実施例に係る変形処理の手順を示すフローチャートである。
【図２７】図２７は、算出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する算出装置、算出プログラムおよび算出方法の各実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
【実施例】
【００１３】
実施例に係る算出装置について説明する。図１は、実施例に係る算出装置の機能構成の一例を示す図である。
【００１４】
［算出装置の機能構成］
図１に示すように、算出装置１０は、入力部１１と、表示部１２と、通信部１３と、記憶部１４と、制御部１５とを有する。
【００１５】
入力部１１は、各種情報を入力する。また、入力部１１は、各種情報を指定したり、選択したりするために用いられる。例えば、入力部１１は、ユーザから、後述の算出処理を実行するための指示を受け付けて、受け付けた指示を制御部１５に入力する。
【００１６】
また、入力部１１は、ユーザによる操作によって、表示部１２に表示された部品モデルの中から、変形させる部品モデル（変形対象の部品モデル）または移動させる部品モデル（移動対象の部品モデル）を指定する。例えば、入力部１１に、ポインティングデバイスであるマウスが含まれている場合について説明する。図２および図３は、実施例に係る算出装置が実行する処理の一例を説明するための図である。図２の例は、表示部１２に表示された三次元のＣＡＤデータが表す携帯電話の筐体の部品モデルの断面図の一例を示す。なお、図２の例では、部品モデルの断面図の一部が示されている。図２の例は、表示部１２に、携帯電話の筐体の部品モデル２０のツメ２０ａと部品モデル２１のツメ２１ａとが嵌合された場合を示す。図２の例に示すように、表示部１２に部品モデル２０と部品モデル２１とが表示されている場合について説明する。この場合に、ユーザがマウスを操作して表示部１２に表示されるカーソル（図示せず）を部品モデル２０に合わせ、ユーザがマウスをクリックすると、図３に示すように、部品モデル２０が選択されて表示部１２に表示される。このようにして、変形対象または移動対象のモデルが選択される。
【００１７】
また、入力部１１は、ユーザによる操作によって、表示部１２に表示された変形対象または移動対象の部品モデルの面の中から、変形させる面（変形面）を指定する。図４および図５は、実施例に係る算出装置が実行する処理の一例を説明するための図である。図４の例は、先の図３の例における部品モデル２０のツメ２０ａが表示部１２に表示されている場合を示す。なお、図４の例が示すツメ２０ａは、図３の例の場合のツメ２０と比較して、上下方向の向きが逆である。図４の例において、ユーザがマウスを操作して表示部１２に表示されるカーソルを、ツメ２０ａの複数の面のうち面２２に合わせ、ユーザがマウスをクリックすると、図５の例に示すように、面２２が指定され、面２２が選択される。
【００１８】
また、入力部１１は、ユーザによる操作によって、表示部１２に表示された部品モデルの変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）を受け付ける。ここでいう「変形後の位置」とは、変形対象の部品モデルをユーザが変形させようとする目標位置を指す。例えば、ユーザがマウスを操作して表示部１２に表示されるカーソルを部品モデルの変形後の位置に合わせ、ユーザがマウスをクリックすると、部品モデルの変形後の位置を示す三次元座標が指定される。
【００１９】
入力部１１のデバイスの一例としては、マウスやキーボードなどのユーザの操作を受け付けるデバイスなどが挙げられる。
【００２０】
表示部１２は、各種の画像を表示する。例えば、表示部１２は、後述のＣＡＤデータ１４ａが表す部品モデルをユーザにより選択可能なように表示する。また、表示部１２は、ユーザにより選択された変形対象の部品モデルの変形面を指定可能なように表示する。表示部１２のデバイスの一例としては、液晶ディスプレイなどが挙げられる。
【００２１】
通信部１３は、各装置間の通信を行うためのインターフェースである。例えば、通信部１３は、図示しないサーバに接続される。かかるサーバの一例としては、アニメーションデータを再生するサーバが挙げられる。通信部１３は、後述の再生部１５ｇから送信されたアニメーション情報１４ｂ、変形情報１４ｃ、移動情報１４ｄを受信すると、受信したアニメーション情報１４ｂ、変形情報１４ｃ、移動情報１４ｄをサーバに送信する。これにより、サーバは、アニメーション情報１４ｂ、変形情報１４ｃ、移動情報１４ｄを用いて、部品モデルのアニメーションを再生する。
【００２２】
記憶部１４は、各種情報を記憶する。例えば、記憶部１４は、ＣＡＤデータ１４ａ、アニメーション情報１４ｂ、変形情報１４ｂ、移動情報１４ｃを記憶する。
【００２３】
ＣＡＤデータ１４ａは、三次元の部品モデルを表すデータである。例えば、ＣＡＤデータ１４ａには、複数の部品モデルのそれぞれを識別するためのＩＤ（Identification）、複数の部品モデルの各面を識別するためのＩＤ、各面の領域を特定するための各面の頂点の三次元座標が含まれる。
【００２４】
アニメーション情報１４ｂは、アニメーションを表す情報である。アニメーション情報１４ｂは、後述の生成部１５ｆにより生成されて記憶部１３に記憶される。図６は、アニメーション情報のデータ構造の一例を示す図である。図６の例では、アニメーション情報１４ｂのレコードは、「タイムライン」、「対象モデル」、「移動／変形」、「変位データ」の各項目を有する。「タイムライン」の項目には、アニメーションを再生する順番が登録される。「対象モデル」の項目には、再生される部品モデルのＩＤが登録される。「移動／変形」の項目には、部品モデルが移動するアニメーションを再生することを示す値、または、部品モデルが変形するアニメーションを再生することを示す値が設定される。図６の例は、部品モデルが移動するアニメーションを再生することを示す値として、「０」が設定される場合を示す。また、図６の例は、部品モデルが変形するアニメーションを再生することを示す値として、「１」が設定される場合を示す。「変位データ」の項目には、「タイムライン」の項目に登録された順番で表示されるアニメーションにおける部品モデルの移動または変形に関するデータを識別するためのＩＤが登録される。かかるＩＤは、後述の変形情報１４ｃおよび移動情報１４ｄから、部品モデルが移動する場合の移動量、部品モデルが変形する場合の変形後の位置などの情報を検索するためのキーとなる情報である。
【００２５】
変形情報１４ｃは、部品モデルの変形後の位置や姿勢を示す情報である。変形情報１４ｃは、生成部１５ｆにより生成され、記憶部１３に記憶される。図７は、変形情報のデータ構造の一例を示す図である。図７の例では、変形情報１４ｃのレコードは、「変形変位データ」、「面ＩＤ」、「変形／解除」、「目標位置」、「相対姿勢（Ｒｘ，Ｒｙ，Ｒｚ）」の各項目を有する。「変形変位データ」の項目には、アニメーションにおける部品モデルの変形に関するデータを識別するためのＩＤが登録される。「面ＩＤ」の項目には、ユーザが入力部１１を操作することによって指定された変形させる面または変形を解除する面のＩＤが登録される。「変形／解除」の項目には、部品モデルを変形させることを示す値、または、部品モデルの変形を解除すること、すなわち、部品モデルを変形前の形状に戻ることを示す値が設定される。図７の例は、部品モデルを変形させることを示す値として、「１」が設定される場合を示す。また、図７の例は、部品モデルの変形を解除することを示す値として、「０」が設定される場合を示す。「目標位置」の項目には、ユーザが入力部１１を操作することによって指定された、部品モデルの変形後の位置を示す三次元座標が登録される。「相対姿勢（Ｒｘ，Ｒｙ，Ｒｚ）」の項目には、部品モデルが変形する場合に、「面ＩＤ」に登録されたＩＤが示す面の変形後の姿勢が変形前の姿勢からどれだけ変化するかを示す量が登録される。かかる量としては、各軸の回転量（Ｘ軸周りの回転量Ｒｘ、Ｙ軸周りの回転量Ｒｙ、Ｚ軸周りの回転量Ｒｚ）が挙げられる。
【００２６】
移動情報１４ｄは、部品モデルの移動後の位置や姿勢を示す情報である。移動情報１４ｄは、生成部１５ｆにより生成され、記憶部１３に記憶される。図８は、移動情報のデータ構造の一例を示す図である。図８の例では、移動情報１４ｄのレコードは、「移動変位データ」、「相対位置（ｘ，ｙ，ｚ）」、「相対姿勢（Ｒｘ，Ｒｙ，Ｒｚ）」の各項目を有する。「移動変位データ」の項目には、アニメーションにおける部品モデルの移動に関するデータを識別するためのＩＤが登録される。「相対位置（ｘ，ｙ，ｚ）」の項目には、部品モデルが移動する場合に、移動後の部品モデルの位置が移動前の部品モデルの位置からどれだけ移動するかを示す情報が登録される。かかる情報としては、３次元のベクトル（ｘ，ｙ，ｚ）が挙げられる。「相対姿勢（Ｒｘ，Ｒｙ，Ｒｚ）」の項目には、部品モデルが変形する場合に、移動後の部品モデルの姿勢が移動前の部品モデルの姿勢からどれだけ変化するかを示す量が登録される。かかる量としては、各軸の回転量（変形前のＸ軸周りの回転量Ｒｘ、Ｙ軸周りの回転量Ｒｙ、Ｚ軸周りの回転量Ｒｚ）が挙げられる。
【００２７】
記憶部１４は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク（ＨＤＤ）、光ディスクなどの記憶装置である。なお、記憶部１４は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。
【００２８】
制御部１５は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図１に示すように、制御部１５は、取得部１５ａと、第一の特定部１５ｂと、第二の特定部１５ｃと、第一の算出部１５ｄと、第二の算出部１５ｅと、生成部１５ｆと、再生部１５ｇとを有する。
【００２９】
取得部１５ａは、各種情報を取得する。具体例を挙げて説明すると、取得部１５ａは、まず、記憶部１４からＣＡＤデータ１４ａを取得し、取得したＣＡＤデータ１４ａが表す製品の複数の部品モデルを表示するように、表示部１２の表示を制御する。これにより、表示部１２は、変形対象の部品モデルがユーザによる指定が可能なように複数の部品モデルを表示する。例えば、先の図２の例に示すように、取得部１５ａは、部品モデル２０および部品モデル２１を表示するように表示部１２の表示を制御する。続いて、取得部１５ａは、ユーザが入力部１１を操作して変形対象または移動対象の部品モデルを指定したか否かを判定する。
【００３０】
変形対象または移動対象の部品モデルを指定した場合には、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、移動対象の部品モデルを移動させるための指示である移動指示、および、変形対象の部品モデルを変形させるための指示である変形指示を受け付ける画面を表示するように、表示部１２の表示を制御する。以下の説明では、かかる画面を「指示受付画面」と表記する。
【００３１】
図９は、指示受付画面の一例を示す図である。図９の例が示す指示受付画面には、変形指示を受け付けるためのチェックボックス４０、移動指示を受け付けるためのチェックボックス４１が含まれる。また、図９の例が示す指示受付画面には、チェックボックス４１がチェックされた場合、すなわち、移動指示が指定された場合にチェック可能となる、回転指示を受け付けるためのチェックボックス４２が含まれる。また、図９の例が示す指示受付画面には、移動指示が指定された場合にチェック可能となる、並進指示を受け付けるためのチェックボックス４３が含まれる。また、図９の例が示す指示受付画面には、チェックボックス４２がチェックされた場合、すなわち、回転指示が指定された場合にチェック可能となる、部品モデルを回転させる軸を指定するためのチェックボックス４４ａ〜４４ｃが含まれる。図９の例では、チェックボックス４４ａは、部品モデルを回転させる軸としてＸ軸を指定するためのものである。また、図９の例では、チェックボックス４４ｂは、部品モデルを回転させる軸としてＹ軸を指定するためのものである。さらに、図９の例では、チェックボックス４４ｃは、部品モデルを回転させる軸としてＺ軸を指定するためのものである。
【００３２】
また、図９の例が示す指示受付画面には、チェックボックス４４ａがチェックされた場合、すなわち、部品モデルを回転させる軸としてＸ軸が指定された場合に、書き込み可能となるテキストボックス４５ａが含まれている。また、図９の例が示す指示受付画面には、チェックボックス４４ｂがチェックされた場合、すなわち、部品モデルを回転させる軸としてＹ軸が指定された場合に、書き込み可能となるテキストボックス４５ｂが含まれている。また、図９の例が示す指示受付画面には、チェックボックス４４ｃがチェックされた場合、すなわち、部品モデルを回転させる軸としてＺ軸が指定された場合に、書き込み可能となるテキストボックス４５ｃが含まれている。図９の例では、テキストボックス４５ａには、部品モデルをＸ軸周りに回転移動させる場合の移動量が度数でユーザにより設定される。また、図９の例では、テキストボックス４５ｂには、部品モデルをＹ軸周りに回転移動させる場合の移動量が度数でユーザにより設定される。さらに、図９の例では、テキストボックス４５ｃには、部品モデルをＺ軸周りに回転移動させる場合の移動量が度数でユーザにより設定される。
【００３３】
また、図９の例が示す指示受付画面には、チェックボックス４３がチェックされた場合、すなわち、並進指示が指定された場合に書き込み可能となるテキストボックス４６ａ〜４６ｃが含まれる。図９の例では、テキストボックス４６ａには、部品モデルを並進移動させる場合のＸ軸方向の移動量がユーザにより設定される。また、図９の例では、テキストボックス４６ｂには、部品モデルを並進移動させる場合のＹ軸方向の移動量がユーザにより設定される。さらに、図９の例では、テキストボックス４６ｃには、部品モデルを並進移動させる場合のＺ軸方向の移動量がユーザにより設定される。
【００３４】
図９の例では、ユーザによって、変形指示の指定、もしくは、移動指示の指定、および、回転指示の指定、並進指示の指定、回転軸の指定、回転度数の設定、移動量の設定などが行われると、ユーザは、マウスを操作して指示完了ボタン４７をクリックする。これにより、指示受付画面が閉じて、各種の情報の指定および設定が完了する。
【００３５】
また、取得部１５ａは、生成部１５ｆにより、後述の変形に係る情報の記録、または、後述の移動に係る情報の記録が行われた場合に、アニメーションの生成を終了するかまたは継続するかの指示を受け付ける画面を表示するように、表示部１２の表示を制御する。アニメーションの生成を継続する指示を受け付けた場合には、取得部１５ａは、再び、記憶部１４からＣＡＤデータ１４ａを取得し、ユーザによる指定が可能な変形対象または移動対象の複数の部品モデルを表示するように表示部１２の表示を制御する。
【００３６】
第一の特定部１５ｂは、ユーザによって変形指示が指定された部品モデルについて、部品モデルの後述する変形面に外側面が接するバウンディングボックスのモデルと、部品モデルとが干渉する領域である干渉領域を特定する。具体例を挙げて説明する。なお、以下の説明では、ユーザによって、先の部品モデル２０について変形指示が指定された場合を例に挙げて説明する。例えば、第一の特定部１５ｂは、まず、変形指示が指定された部品モデル２０を表示するように、表示部１２の表示を制御する。例えば、第一の特定部１５ｂは、先の図３の例に示すように、部品モデル２０を表示するように表示部１２の表示を制御する。
【００３７】
そして、第一の特定部１５ｂは、変形指示が指定された部品モデル２０の各面のうち、変形させる面（変形面）を指定する旨のメッセージ、例えば、「変形面を指定して下さい」を表示するように、表示部１２の表示を制御する。これにより、部品モデル２０の各面の中から、ユーザによる変形面の指定が促される。なお、以下の説明では、ユーザによって、先の変形面２２が指定された場合を例に挙げて説明する。
【００３８】
ユーザにより変形面２２が指定された場合には、第一の特定部１５ｂは、次のような処理を行う。すなわち、第一の特定部１５ｂは、部品モデル２０の変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）を指定する旨のメッセージ、例えば、「部品モデルの変形後の位置にカーソルを合わせてクリックして下さい」を表示するように、表示部１２の表示を制御する。これにより、ユーザの操作によって、表示部１２に表示された部品モデル２０の変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）が指定される。
【００３９】
ユーザにより部品モデル２０の変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）が指定された場合には、第一の特定部１５ｂは、変形面２２をＹ−Ｚ平面、Ｘ−Ｚ平面、Ｘ−Ｙ平面のそれぞれに投影する。以下の説明では、Ｙ−Ｚ平面をＸ平面、Ｘ−Ｚ平面をＹ平面、Ｘ−Ｙ平面をＺ平面と表記する。
【００４０】
次に、第一の特定部１５ｂは、Ｘ平面、Ｙ平面、Ｚ平面のそれぞれに投影した変形面２２の領域のうち、面積が最大となる領域を１つ特定し、特定した領域が投影された平面の法線ベクトルの方向を変形面２２が変形する方向として特定する。図１０は、実施例に係る算出装置が実行する処理の一例を説明するための図である。例えば、先の変形面２２をＸ平面、Ｙ平面、Ｚ平面のそれぞれに投影させた場合、投影した領域の面積が最大となる場合の平面は、Ｚ平面である。したがって、第一の特定部１５ｂは、図１０の例に示すように、Ｚ平面の法線ベクトル２２ａの方向を変形面２２が変形する方向として特定する。ここで、一般的に、法線ベクトルの方向は、１つの面に対して２つの方向があるが、本実施例に係る第一の特定部１５ｂは、部品モデルの内部の方向ではなく、部品モデルの外部の方向を法線ベクトルの方向として特定する。
【００４１】
続いて、第一の特定部１５ｂは、特定した法線ベクトルの方向とは逆方向に存在する部品モデル２０の面を探索し、変形面２２から最も距離が離れている面を、変形面２２の裏側の面（裏面）として特定する。図１１は、実施例に係る算出装置が実行する処理の一例を説明するための図である。図１１の例では、部品モデル２０は、変形面２２の裏側の面に、裏面２３を有する。図１１の例では、第一の特定部１５ｂは、変形面２２の裏側の面として、裏面２３を特定する。
【００４２】
そして、第一の特定部１５ｂは、変形面２２に接続された面のうち、未選択の面があるか否かを判定する。未選択の面がある場合には、第一の特定部１５ｂは、変形面２２に接続された面のうち、未選択の面を１つ選択する。また、未選択の面がない場合には、第一の特定部１５ｂは、選択済みの面に接続された未選択の面を１つ選択する。続いて、第一の特定部１５ｂは、選択した面をＸ平面、Ｙ平面、Ｚ平面のそれぞれに投影する。そして、第一の特定部１５ｂは、Ｘ平面、Ｙ平面、Ｚ平面のそれぞれに投影された面の領域のうち、面積が最大となる領域が投影された平面の法線ベクトルの方向が、次のような方向であるか否かを判定する。すなわち、第一の特定部１５ｂは、かかる法線ベクトルの方向が、変形面２２が変形する方向、裏面２３の法線ベクトルの方向、後述の「抽出された面」がある場合における「抽出された面」の法線ベクトルの方向のいずれの方向とも異なるか否かを判定する。
【００４３】
いずれの方向とも異なる場合には、第一の特定部１５ｂは、選択した面を抽出する。なお、かかる面が上記の「抽出された面」である。第一の特定部１５ｂは、Ｘ、Ｙ、Ｚ軸の各軸の正の方向および負の方向の６方向のうち、変形面２２が変形する方向、裏面２３の法線ベクトルの方向以外の４方向を法線ベクトルとする４つの面が抽出されるまで、次のような処理を繰り返し行う。すなわち、第一の特定部１５ｂは、未選択の面を１つ選択し、選択した面に対して上記で説明した処理を繰り返し行う。図１２は、実施例に係る算出装置が実行する処理の一例を説明するための図である。図１２の例は、変形面２２が変形する方向、裏面２３の法線ベクトルの方向以外の４方向を法線ベクトルとする４つの面のうち、３つの面２４、２５、２６が示されている。図１２の例が示す部品モデル２０に対して、第一の特定部１５ｂは、面２４、２５、２６および面２４に対向する面（図示せず）の４つの面を抽出する。以下の説明では、第一の特定部１５ｂにより、面２４、２５、２６および面２４に対向する面の４つの面が抽出された場合を例に挙げて説明する。
【００４４】
このようにして、面２４、２５、２６および面２４に対向する面の４つの面が抽出されたら、第一の特定部１５ｂは、抽出した４つの面、変形面２２、裏面２３を含有するバウンディングボックスのモデルを生成する。例えば、バウンディングボックスのモデルは、抽出した４つの面、変形面２２、裏面２３を外側面に接するモデルである。バウンディングボックスのモデルは、変形対象のモデルとして用いられる。図１３は、第一の特定部が生成するバウンディングボックスの一例を示す図である。図１３の例に示すように、第一の特定部１５ｂは、変形面２２、裏面２３、面２４、２５、２６および面２４に対向する面の６つの面を含有するバウンディングボックスのモデル２７を生成する。以下の説明では、第一の特定部１５ｂがバウンディングボックスのモデル２７を生成した場合を例に挙げて説明する。
【００４５】
次に、第一の特定部１５ｂは、バウンディングボックスのモデル２７の面と、部品モデル２０とが干渉する領域である干渉領域を特定する。図１４は、実施例に係る算出装置が実行する処理の一例を説明するための図である。図１４の例では、バウンディングボックスのモデル２７の面と、部品モデル２０とが領域２８において干渉する。図１４の例において、第一の特定部１５ｂは、バウンディングボックスのモデル２７の面と、部品モデル２０とが干渉する領域として、干渉領域２８を特定する。
【００４６】
ここで、干渉領域は、変形対象のモデルであるバウンディングボックスのモデル２７が変形する場合の固定面である。そのため、干渉領域が複数特定された場合には、固定面が複数存在することになり、バウンディングボックスのモデル２７が固定されてしまい変形しないことになることが考えられる。そこで、第一の特定部１５ｂは、特定した干渉領域の数が複数である場合には、干渉領域のエッジを有する部品モデルの面に接続された面を含むように、バウンディングボックスのモデルを拡大する。そして、第一の特定部１５ｂは、再び、拡大後のバウンディングボックスのモデルの面と、部品モデルとが干渉する領域である干渉領域を特定する。このような処理を第一の特定部１５ｂは、特定した干渉領域の数が１つとなるまで繰り返し行う。以下の説明では、第一の特定部１５ｂにより、干渉領域２８が特定された場合について説明する。
【００４７】
その後、第一の特定部１５ｂは、バウンディングボックスのモデル２７の面のうち、変形面２２に接する面２９に、特定した干渉領域２８を投影し、面２９に投影された領域を固定面の領域として特定する。図１４の例に示すように、第一の特定部１５ｂは、干渉領域２８を面２９に投影した領域３０を固定面の領域として特定する。
【００４８】
第二の特定部１５ｃは、第一の特定部１５ｂにより特定された干渉領域２８を面２９に投影した固定面の領域のバウンディングボックスのモデル２７上の位置に基づいて、バウンディングボックスのモデル２７が変形する際の変位点を特定する。図１５は、実施例に係る算出装置が実行する処理の一例を説明するための図である。例えば、第二の特定部１５ｃは、図１５の例に示すように、特定された固定面の領域３０の所定の点、例えば、固定面の領域３０の中心の点３０ａに対して、面２９の辺の中で、最も距離が遠い辺３１の中心の点３１ａを変位点として特定する。
【００４９】
第一の算出部１５ｄは、変形面２２に接するバウンディングボックスのモデル２７の面２９上の固定面の領域３０の所定の位置から、変位点３１ａまでの距離と、変形面２２から変形面２２に対向する裏面２３までの距離とに基づいて、次のような処理を行う。すなわち、第一の算出部１５ｄは、部品モデル２０の変形に関する物性値を算出する。図１６は、実施例に係る算出装置が実行する処理の一例を説明するための図である。図１６の例では、固定面の領域３０のＹ座標の最大値の点から、変位点３１ａまでのＹ軸上の距離が「ｄ」である場合が示されている。また、図１６の例では、変形面２２から裏面２３までの距離が「ｈ」である場合が示されている。図１６の例の場合において、第一の算出部１５ｄは、部品モデル２０の変形のしにくさを示す物性値Ｋ（（ｈ／ｄ）×α）を算出する。ここで、αは、所定の係数である。
【００５０】
第二の算出部１５ｅは、物性値Ｋ、および、ユーザにより指定された部品モデル２０の変形後の位置に基づいて、次のような処理を行う。すなわち、第二の算出部１５ｅは、変位点３１ａの位置が、指定された部品モデル２０の変形後の位置となるようにバウンディングボックスのモデル２７を変形させた場合のバウンディングボックスのモデル２７の姿勢を算出する。
【００５１】
具体例を挙げて説明する。図１７は、実施例に係る算出装置が実行する処理の一例を説明するための図である。図１７の例に示すように、第二の算出部１５ｅは、変形面２２に接するバウンディングボックスのモデル２７の面２９の二次元バネ・質点系モデル（平面モデル）３２を生成する。以下の説明では、この平面モデル３２を「変形基準モデル」と表記する。図１７の例に示すように、変形基準モデル３２は、格子状に配置された複数の質点３２ａと、質点３２ａを接続するバネ３２ｂとを有するモデルである。例えば、変形基準モデル３２は、いわゆるバネマスモデルである。質点３２ａのピッチ間隔は、物性値Ｋに基づいて定まる値である。
【００５２】
そして、第二の算出部１５ｅは、変形基準モデル３２を変形させる。図１８は、実施例に係る算出装置が実行する処理の一例を説明するための図である。例えば、図１８の例に示すように、第二の算出部１５ｅは、まず、変位点３１ａを通るＸ平面（Ｙ−Ｚ平面）３３上に、ユーザにより指定された部品モデル２０の変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）の点を投影する。なお、図１８の例では、かかる点がＸ平面３３上に投影された点が、点３４である。また、第二の算出部１５ｅは、Ｘ平面３３上において、変位点３１ａを通るような、物性値Ｋを半径とする円３５を生成する。そして、第二の算出部１５ｅは、Ｘ平面３３上において、円３５の中心３５ａと、点３４とを結ぶ線分３５を生成する。
【００５３】
その後、第二の算出部１５ｅは、変形基準モデル３２の変位点３１ａの位置が、点３４の位置となるように変形させる。このとき、第二の算出部１５ｅは、変形させた変形基準モデル３２の形状が、線分３６と接するように、変形基準モデル３２を変形させる。
【００５４】
図１９および図２０は、物性値Ｋの値の大きさによって、変形させた際の変形基準モデルの形状が異なることを説明するための図である。図１９の例における物性値Ｋの大きさは、図２０の例における物性値Ｋの大きさよりも小さい。すなわち、図１９の例における変形基準モデル３２は、図２０の例における変形基準モデル３２より変形しやすい。ここで、図１９の例における円３５の半径は、図２０の例における円３５の半径よりも小さいため、図１９の例に示す変形基準モデル３２のほうが、図２０の例に示す変形基準モデル３２よりも変形の度合いが大きい。
【００５５】
そして、第二の算出部１５ｅは、変形後の変形基準モデル３２の各面の姿勢を算出する。ここで、姿勢は、Ｘ軸、Ｙ軸、Ｚ軸の各軸周りに基準面からどれだけ回転したかを回転度数で表したものである。
【００５６】
上述してきたように、第一の特定部１５ｂは、部品モデル２０の変形面２２に外側面が接するバウンディングボックスのモデル２７と、部品モデル２０とが干渉する領域である干渉領域２８を特定する。そして、第二の特定部１５ｃは、第一の特定部１５ｂにより特定された干渉領域２８を面２９に投影した固定面の領域３０のバウンディングボックスのモデル２７上の位置に基づいて、バウンディングボックスのモデル２７が変形する際の変位点３１ａを特定する。続いて、第一の算出部１５ｄは、変形面２２に接するバウンディングボックスのモデル２７の面２９上の固定面の領域３０の所定の位置から、変位点３１ａまでの距離ｄと、変形面２２から変形面２２に対向する裏面２３までの距離ｈとに基づいて、次の処理を行う。すなわち、第一の算出部１５ｄは、部品モデル２０の変形に関する物性値Ｋ（（ｈ／ｄ）×α）を算出する。その後、第二の算出部１５ｅは、物性値Ｋ、および、ユーザにより指定された部品モデル２０の変形後の位置に基づいて、次のような処理を行う。すなわち、第二の算出部１５ｅは、変位点３１ａの位置が、指定された部品モデル２０の変形後の位置となるようにバウンディングボックスのモデル２７を変形させた場合のバウンディングボックスのモデル２７の姿勢を算出する。このように、本実施例に係る算出装置１０は、部品モデル２０の物性値を算出し、算出した物性値を用いて、バウンディングボックスのモデル２７の姿勢を算出する。したがって、本実施例に係る算出装置１０によれば、簡易に変形後の部品モデル２０に関する情報を得ることができる。
【００５７】
また、第二の算出部１５ｅは、干渉領域２８を面２９に投影した領域をバウンディングボックスのモデル２７が変形する際の固定面の領域３０として、次のような処理を行う。すなわち、第二の算出部１５ｅは、変位点３１の位置が部品モデル２０の変形後の位置となるようにバウンディングボックスのモデル２７を変形させた場合の姿勢を算出する。このように、本実施例に係る算出装置１０は、ユーザによる固定面などの境界条件の設定を行わずに、バウンディングボックスのモデル２７の姿勢を算出する。したがって、本実施例に係る算出装置１０によれば、簡易に変形後の部品モデル２０に関する情報を得ることができる。
【００５８】
生成部１５ｆは、第二の算出部１５ｅにより算出された姿勢となるようにバウンディングボックスのモデル２７を変形させた場合のバウンディングボックスのモデル２７を表すＣＡＤデータを生成する。具体例を挙げて説明する。図２１は、変形後の変形基準モデルの形状の一例を示す図である。また、図２２は、バウンディングボックスのモデルを変形させた場合の一例を示す図である。第二の算出部１５ｅは、図２１の例に示すような変形後の変形基準モデル３２の形状に沿って、ＦＦＤ（Free-Form  Deformation）により、次のような処理を行う。すなわち、第二の算出部１５ｅは、図２２の例に示すように、バウンディングボックスのモデル２７を変形させ、変形後のバウンディングボックスのモデル２７のＣＡＤデータを生成し、記憶部１４に格納する。ＦＦＤについて説明する。図２３は、ＦＦＤを説明するための図である。図２３の例に示すように、ＦＦＤでは、物体を中に含むような直方体を均等に分割して得られる制御格子点群を作成し、制御格子点群に囲まれる空間を設定する。ＦＦＤでは、制御格子点群を動かすことで中の空間を歪め、それに伴って物体も一緒に変形させる。
【００５９】
そして、生成部１５ｆは、指定された指示が変形指示である場合には、変形に係る情報を記録する。具体例を挙げて説明すると、生成部１５ｆは、上述したアニメーション情報１４ｂに新たなレコードを１つ追加する。そして、生成部１５ｆは、新たなレコードの「タイムライン」の項目に、アニメーションを再生する順番を登録する。また、生成部１５ｆは、「対象モデル」の項目に、部品モデル２０のＩＤを登録する。また、生成部１５ｆは、「移動／変形」の項目に、部品モデル２０が変形するアニメーションを再生することを示す値、例えば、「１」を登録する。また、生成部１５ｆは、「変位データ」の項目に、部品モデル２０の変形に関するデータを識別するためのＩＤを登録する。
【００６０】
続いて、生成部１５ｆは、上述した変形情報１４ｃに新たなレコードを１つ追加する。そして、生成部１５ｆは、新たなレコードの「変形変位データ」の項目に、上記の「変位データ」の項目に登録したＩＤと同一のＩＤを登録する。これにより、アニメーション情報１４ｂと変形情報１４ｃとが対応付けられる。また、生成部１５ｆは、「面ＩＤ」の項目に、ユーザが入力部１１を操作することによって指定された変形させる面２２のＩＤが登録される。また、生成部１５ｆは、「変形／解除」の項目に、部品モデル２０を変形させる場合には部品モデル２０を変形させることを示す値が設定される。なお、部品モデルの変形を解除する指示が入力された場合には、生成部１５ｆは、部品モデル２０の変形を解除することを示す値を、「変形／解除」の項目に設定することもできる。また、生成部１５ｆは、「目標位置」の項目に、ユーザが入力部１１を操作することによって指定された、部品モデル２０の変形後の位置を示す三次元座標を登録する。また、生成部１５ｆは、「相対姿勢（Ｒｘ，Ｒｙ，Ｒｚ）」の項目に、部品モデル２０が変形する場合に、「面ＩＤ」に登録されたＩＤが示す面２２の変形後の姿勢が変形前の姿勢からどれだけ変化するかを示す量を登録する。
【００６１】
また、生成部１５ｆは、ユーザによって、移動指示が指定されると、指示受付画面で指定された回転指示、並進指示、回転軸、回転度数、移動量などに基づいて、ユーザによって指定された移動対象の部品モデルを移動させる。
【００６２】
そして、生成部１５ｆは、指定された指示が移動指示である場合には、移動に係る情報を記録する。具体例を挙げて説明すると、生成部１５ｆは、上述したアニメーション情報１４ｂに新たなレコードを１つ追加する。そして、生成部１５ｆは、新たなレコードの「タイムライン」の項目に、アニメーションを再生する順番を登録する。また、生成部１５ｆは、「対象モデル」の項目に、部品モデルのＩＤを登録する。また、生成部１５ｆは、「移動／変形」の項目に、部品モデルが移動するアニメーションを再生することを示す値、例えば、「０」を登録する。また、生成部１５ｆは、「変位データ」の項目に、部品モデル２０の移動に関するデータを識別するためのＩＤを登録する。
【００６３】
続いて、生成部１５ｆは、上述した移動情報１４ｄに新たなレコードを１つ追加する。そして、生成部１５ｆは、新たなレコードの「移動変位データ」の項目に、上記の「変位データ」の項目に登録したＩＤと同一のＩＤを登録する。これにより、アニメーション情報１４ｂと移動情報１４ｄとが対応付けられる。また、生成部１５ｆは、「相対位置（ｘ，ｙ，ｚ）」の項目に、部品モデルが移動する場合に、移動後の部品モデルの位置が移動前の部品モデルの位置からどれだけ移動するかを示す情報を登録する。また、生成部１５ｆは、「相対姿勢（Ｒｘ，Ｒｙ，Ｒｚ）」の項目に、部品モデルが変形する場合に、移動後の部品モデルの姿勢が移動前の部品モデルの姿勢からどれだけ変化するかを示す量を登録する。
【００６４】
再生部１５ｇは、アニメーションを再生する。例えば、再生部１５ｇは、入力部１１からアニメーションを再生する指示が入力されると、次のような処理を行う。すなわち、再生部１５ｇは、「対象モデル」の項目に登録されたＩＤが示すモデルの変位データを、「変位データ」の項目に登録されたＩＤをキーとして、「移動／変形」の項目に登録された値に対応する変形情報１４ｃまたは移動情報１４ｄから取得する。そして、再生部１５ｇは、取得した変位データが示すアニメーションを表示部１２に表示させる。このような処理を、再生部１５ｇは、アニメーション情報１４ｂの「タイムライン」の項目に登録された順番で行う。
【００６５】
制御部１５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。
【００６６】
［処理の流れ］
次に、本実施例に係る算出装置１０の処理の流れについて説明する。図２４は、実施例に係る算出処理の手順を示すフローチャートである。算出処理は、例えば、入力部１１から、算出処理を実行するための指示を制御部１５が受け付けたタイミングで、実行される。
【００６７】
図２４に示すように、取得部１５ａは、記憶部１４からＣＡＤデータ１４ａを取得し、取得したＣＡＤデータ１４ａが表す製品の複数の部品モデルを表示するように、表示部１２の表示を制御する（Ｓ１０１）。続いて、取得部１５ａは、ユーザが入力部１１を操作して変形対象または移動対象の部品モデルを指定したか否かを判定する（Ｓ１０２）。
【００６８】
変形対象または移動対象の部品モデルを指定していない場合（Ｓ１０２否定）には、取得部１５ａは、再び、Ｓ１０２の判定を行う。一方、変形対象または移動対象の部品モデルを指定した場合（Ｓ１０２肯定）には、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、移動対象の部品モデルを移動させるための指示である移動指示、および、変形対象の部品モデルを変形させるための指示である変形指示を受け付ける指示受付画面を表示するように、表示部１２の表示を制御する（Ｓ１０３）。
【００６９】
そして、取得部１５ａは、移動指示または変形指示を受け付けたか否かを判定する（Ｓ１０４）。移動指示または変形指示を受け付けていない場合（Ｓ１０４否定）には、取得部１５ａは、再び、Ｓ１０４の判定を行う。一方、移動指示または変形指示を受け付けた場合（Ｓ１０４肯定）には、取得部１５ａは、受け付けた指示が変形指示であるか否かを判定する（Ｓ１０５）。  
【００７０】
受け付けた指示が変形指示である場合（Ｓ１０５肯定）には、制御部１５は、後述する変形処理を実行し（Ｓ１０６）、Ｓ１０９へ進む。一方、受け付けた指示が肯定指示でない場合、すなわち、移動指示である場合（Ｓ１０５否定）には、生成部１５ｆは、次のような処理を行う。すなわち、生成部１５ｆは、指示受付画面で指定された回転指示、並進指示、回転軸、回転度数、移動量などに基づいて、ユーザによって指定された移動対象の部品モデルを移動させる（Ｓ１０７）。そして、生成部１５ｆは、上述した移動に係る情報を記録する（Ｓ１０８）。その後、取得部１５ａは、アニメーションの生成を終了するかまたは継続するかの指示を受け付ける画面を表示するように、表示部１２の表示を制御する（Ｓ１０９）。
【００７１】
そして、取得部１５ａは、アニメーションの生成を終了するかまたは継続するかの指示を受け付けたか否かを判定する（Ｓ１１０）。アニメーションの生成を終了する指示および継続する指示のいずれの指示も受け付けていない場合（Ｓ１１０否定）には、取得部１５ａは、再び、Ｓ１１０の判定を行う。一方、アニメーションの生成を終了するかまたは継続するかの指示を受け付けた場合（Ｓ１１０肯定）には、取得部１５ａは、受け付けた指示が、アニメーションの生成を終了する指示であるか否かを判定する（Ｓ１１１）。受け付けた指示がアニメーションの生成を終了する指示ではない場合、すなわち、継続する指示である場合（Ｓ１１１否定）には、Ｓ１０１に戻る。一方、受け付けた指示がアニメーションの生成を終了する指示である場合（Ｓ１１１肯定）には、処理を終了する。
【００７２】
次に、変形処理について説明する。図２５および図２６は、実施例に係る変形処理の手順を示すフローチャートである。図２５に示すように、第一の特定部１５ｂは、変形指示が指定された部品モデルを表示するように、表示部１２の表示を制御する（Ｓ２０１）。
【００７３】
そして、第一の特定部１５ｂは、変形指示が指定された部品モデルの各面のうち、変形させる面（変形面）を指定する旨のメッセージを表示するように、表示部１２の表示を制御する（Ｓ２０２）。続いて、第一の特定部１５ｂは、ユーザにより変形面が指定されたか否かを判定する（Ｓ２０３）。ユーザにより変形面が指定されていない場合（Ｓ２０３否定）には、第一の特定部１５ｂは、再び、Ｓ２０３の判定を行う。
【００７４】
一方、ユーザにより変形面が指定された場合（Ｓ２０３肯定）には、第一の特定部１５ｂは、次のような処理を行う。すなわち、第一の特定部１５ｂは、指定された部品モデルの変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）を指定する旨のメッセージを表示するように、表示部１２の表示を制御する（Ｓ２０４）。
【００７５】
続いて、第一の特定部１５ｂは、ユーザにより、部品モデルの変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）が指定されたか否かを判定する（Ｓ２０５）。ユーザにより、部品モデルの変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）が指定されていない場合（Ｓ２０５否定）には、第一の特定部１５ｂは、再び、Ｓ２０５の判定を行う。一方、ユーザにより、部品モデルの変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）が指定された場合（Ｓ２０５肯定）には、第一の特定部１５ｂは、変形面２２をＸ平面、Ｙ平面、Ｚ平面のそれぞれに投影する（Ｓ２０６）。
【００７６】
次に、第一の特定部１５ｂは、Ｘ平面、Ｙ平面、Ｚ平面のそれぞれに投影した変形面２２の領域のうち、面積が最大となる領域を１つ特定し、特定した領域が投影された平面の法線ベクトルの方向を変形面が変形する方向として特定する（Ｓ２０７）。
【００７７】
続いて、第一の特定部１５ｂは、特定した法線ベクトルの方向とは逆方向に存在する部品モデルの面を探索し、変形面から最も距離が離れている面を、変形面の裏側の面（裏面）として特定する（Ｓ２０８）。
【００７８】
そして、第一の特定部１５ｂは、変形面に接続された面のうち、未選択の面があるか否かを判定する（Ｓ２０９）。未選択の面がある場合（Ｓ２０９肯定）には、第一の特定部１５ｂは、変形面に接続された面のうち、未選択の面を１つ選択する（Ｓ２１０）。また、未選択の面がない場合（Ｓ２０９否定）には、第一の特定部１５ｂは、選択済みの面に接続された未選択の面を１つ選択する（Ｓ２１６）。続いて、第一の特定部１５ｂは、選択した面をＸ平面、Ｙ平面、Ｚ平面のそれぞれに投影する（Ｓ２１１）。そして、第一の特定部１５ｂは、Ｘ平面、Ｙ平面、Ｚ平面のそれぞれに投影された面の領域のうち、面積が最大となる領域が投影された平面の法線ベクトルの方向を特定する（Ｓ２１２）。続いて、第一の特定部１５ｂは、特定した法線ベクトルの方向が、次のような方向であるか否かを判定する。すなわち、第一の特定部１５ｂは、法線ベクトルの方向が、変形面２２が変形する方向、裏面２３の法線ベクトルの方向、下記のＳ２１２で抽出された面がある場合には、抽出された面の法線ベクトルの方向のいずれの方向とも異なるか否かを判定する（Ｓ２１３）。
【００７９】
いずれかの方向と一致する場合（Ｓ２１３否定）には、Ｓ２０９に戻る。一方、いずれの方向とも異なる場合（Ｓ２１３肯定）には、第一の特定部１５ｂは、選択した面を抽出する（Ｓ２１４）。そして、第一の特定部１５ｂは、Ｘ、Ｙ、Ｚ軸の各軸の正の方向および負の方向の６方向のうち、変形面が変形する方向、裏面の法線ベクトルの方向以外の４方向を法線ベクトルとする４つの面が抽出されたか否かを判定する（Ｓ２１５）。４つの面が抽出されていない場合（Ｓ２１５否定）には、Ｓ２０９に戻る。
【００８０】
一方、４つの面が抽出された場合（Ｓ２１５肯定）には、第一の特定部１５ｂは、抽出した４つの面、変形面、裏面を含有するバウンディングボックスのモデルを生成する（Ｓ２１７）。
【００８１】
次に、第一の特定部１５ｂは、バウンディングボックスのモデルの面と、部品モデルとが干渉する領域である干渉領域を特定する（Ｓ２１８）。続いて、第一の特定部１５ｂは、特定した干渉領域の数が１つであるか否かを判定する（Ｓ２１９）。特定した干渉領域の数が１つでない場合、すなわち、特定した干渉領域の数が複数である場合（Ｓ２１９否定）には、第一の特定部１５ｂは、次のような処理を行う。すなわち、第一の特定部１５ｂは、干渉領域のエッジを有する部品モデルの面に接続された面を含むように、バウンディングボックスのモデルを拡大する（Ｓ２２０）。そして、Ｓ２１８に戻り、第一の特定部１５ｂは、再び、拡大後のバウンディングボックスのモデルの面と、部品モデルとが干渉する領域である干渉領域を特定し、以降の処理を行う。
【００８２】
一方、特定した干渉領域の数が１つである場合（Ｓ２１９肯定）には、第一の特定部１５ｂは、バウンディングボックスのモデルの面のうち、変形面に接する面に、干渉領域を投影し、変形面に接する面に投影された領域を固定面の領域として特定する（Ｓ２２１）。
【００８３】
続いて、第二の特定部１５ｃは、特定された固定面の領域の所定の点に対して、干渉領域が投影された面の辺の中で、最も距離が遠い辺の中心の点を変位点として特定する（Ｓ２２２）。
【００８４】
そして、第一の算出部１５ｄは、固定面の領域の所定の位置から、変位点までの距離「ｄ」と、変形面から変形面に対向する裏面までの距離「ｈ」とに基づいて、部品モデルの変形に関する物性値Ｋ（（ｈ／ｄ）×α）を算出する（Ｓ２２３）。
【００８５】
その後、第二の算出部１５ｅは、物性値Ｋ、および、ユーザにより指定された部品モデルの変形後の位置に基づいて、次のような処理を行う。すなわち、第二の算出部１５ｅは、変位点の位置が、指定された部品モデルの変形後の位置となるようにバウンディングボックスのモデルを変形させた場合のバウンディングボックスのモデル２７の姿勢を算出する（Ｓ２２４）。
【００８６】
そして、第二の算出部１５ｅは、変位点を通るＸ平面、Ｙ平面、Ｚ平面のいずれかの平面上に、ユーザにより指定された部品モデルの変形後の位置を示す三次元座標（ｘ，ｙ，ｚ）の点を投影する（Ｓ２２５）。そして、第二の算出部１５ｅは、かかる平面上において、変位点を通るような、物性値Ｋを半径とする円を生成する（Ｓ２２６）。そして、第二の算出部１５ｅは、平面上において、円の中心と、投影された点とを結ぶ線分を生成する（Ｓ２２７）。
【００８７】
その後、第二の算出部１５ｅは、変形基準モデルの変位点の位置が、平面に投影された点の位置となるように変形させる。このとき、第二の算出部１５ｅは、変形させた変形基準モデルの形状が、線分と接するように、変形基準モデルを変形させる（Ｓ２２８）。そして、第二の算出部１５ｅは、変形後の変形基準モデルの各面の姿勢を算出する（Ｓ２２９）。
【００８８】
続いて、第二の算出部１５ｅは、変形後の変形基準モデルの形状に沿って、ＦＦＤにより、バウンディングボックスのモデルを変形させ、変形後のバウンディングボックスのモデルのＣＡＤデータを生成し、記憶部１４に格納する（Ｓ２３０）。
【００８９】
そして、生成部１５ｆは、上記で説明した変形に係る情報を記録し（Ｓ２３１）、処理結果を内部メモリに格納し、リターンする。
【００９０】
上述してきたように、本実施例に係る算出装置１０は、部品モデル２０の変形面２２に外側面が接するバウンディングボックスのモデル２７と、部品モデル２０とが干渉する領域である干渉領域２８を特定する。そして、算出装置１０は、特定された干渉領域２８を面２９に投影した固定面の領域３０のバウンディングボックスのモデル２７上の位置に基づいて、バウンディングボックスのモデル２７が変形する際の変位点３１ａを特定する。続いて、算出装置１０は、変形面２２に接するバウンディングボックスのモデル２７の面２９上の固定面の領域３０の所定の位置から、変位点３１ａまでの距離ｄと、変形面２２から変形面２２に対向する裏面２３までの距離ｈとに基づいて、次のような処理を行う。すなわち、算出装置１０は、部品モデル２０の変形に関する物性値Ｋ（（ｈ／ｄ）×α）を算出する。その後、算出装置１０は、物性値Ｋ、および、ユーザにより指定された部品モデル２０の変形後の位置に基づいて、次のような処理を行う。すなわち、算出装置１０は、変位点３１ａの位置が、指定された部品モデル２０の変形後の位置となるようにバウンディングボックスのモデル２７を変形させた場合のバウンディングボックスのモデル２７の姿勢を算出する。このように、本実施例に係る算出装置１０は、部品モデル２０の物性値を算出し、算出した物性値を用いて、バウンディングボックスのモデル２７の姿勢を算出する。したがって、本実施例に係る算出装置１０によれば、簡易に変形後の部品モデル２０に関する情報を得ることができる。
【００９１】
また、算出装置１０は、特定された干渉領域２８を面２９に投影した領域をバウンディングボックスのモデル２７が変形する際の固定面の領域３０として、次のような処理を行う。すなわち、算出装置１０は、変位点３１の位置が部品モデル２０の変形後の位置となるようにバウンディングボックスのモデル２７を変形させた場合の姿勢を算出する。このように、本実施例に係る算出装置１０は、ユーザによる固定面などの境界条件の設定を行わずに、バウンディングボックスのモデル２７の姿勢を算出する。したがって、本実施例に係る算出装置１０によれば、簡易に変形後の部品モデル２０に関する情報を得ることができる。
【００９２】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００９３】
例えば、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００９４】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【００９５】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【００９６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００９７】
［算出プログラム］
また、上記の実施例で説明した算出装置１０の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図２７を用いて、上記の実施例で説明した算出装置１０と同様の機能を有する算出プログラムを実行するコンピュータの一例を説明する。図２７は、算出プログラムを実行するコンピュータを示す図である。
【００９８】
図２７に示すように、コンピュータ３００は、ＣＰＵ３１０、ＲＯＭ３２０、ＨＤＤ３３０、ＲＡＭ３４０を有する。ＣＰＵ３１０、ＲＯＭ３２０、ＨＤＤ３３０、ＲＡＭ３４０は、互いに、バス３５０を介して接続されている。
【００９９】
ＲＯＭ３２０には、ＯＳなどの基本プログラムが記憶されている。また、ＨＤＤ３３０には、上記の実施例で示す取得部１５ａ、第一の特定部１５ｂ、第二の特定部１５ｃ、第一の算出部１５ｄ、第二の算出部１５ｅ、生成部１５ｆ、再生部１５ｇと同様の機能を発揮する算出プログラム３３０ａが予め記憶される。なお、算出プログラム３３０ａについては、適宜分離しても良い。例えば、算出部プログラム３３０ａは、次のように分離できる。すなわち、取得部１５ａと同様の機能、第一の特定部１５ｂ、第二の特定部１５ｃ、第一の算出部１５ｄ、第二の算出部１５ｅ、生成部１５ｆと同様の機能、再生部１５ｇと同様の機能を発揮する３つのプログラムに分離できる。また、ＨＤＤ３３０には、ＣＡＤデータ、アニメーション情報、変形情報、移動情報などが設けられる。これらのＣＡＤデータ、アニメーション情報、変形情報、移動情報は、上述したＣＡＤデータ１４ａ、アニメーション情報１４ｂ、変形情報１４ｃ、移動情報１４ｄに対応する。
【０１００】
そして、ＣＰＵ３１０が、算出プログラム３３０ａをＨＤＤ３３０から読み出して実行する。
【０１０１】
そして、ＣＰＵ３１０は、ＣＡＤデータ、アニメーション情報、変形情報、移動情報などを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納されたＣＡＤデータ、アニメーション情報、変形情報、移動情報などを用いて、算出プログラム３３０ａを実行する。なお、ＲＡＭ３４０に格納される各データは、常に全てのデータがＲＡＭ３４０に格納されなくともよい。処理に用いられるデータがＲＡＭ３４０に格納されれば良い。
【０１０２】
なお、上記した算出プログラム３３０ａについては、必ずしも最初からＨＤＤ３３０に記憶させておく必要はない。
【０１０３】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。  
【０１０４】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１０５】
１０      算出装置
１１      入力部
１４      記憶部
１４ａ    ＣＡＤデータ
１４ｂ    アニメーション情報
１４ｃ    変形情報
１４ｄ    移動情報
１５      制御部
１５ｂ    第一の特定部
１５ｃ    第二の特定部
１５ｄ    第一の算出部
１５ｅ    第二の算出部
１５ｆ    生成部
【図１】
0005974568.tif 000002
【図２】
0005974568.tif 000003
【図３】
0005974568.tif 000004
【図４】
0005974568.tif 000005
【図５】
0005974568.tif 000006
【図６】
0005974568.tif 000007
【図７】
0005974568.tif 000008
【図８】
0005974568.tif 000009
【図９】
0005974568.tif 000010
【図１０】
0005974568.tif 000011
【図１１】
0005974568.tif 000012
【図１２】
0005974568.tif 000013
【図１３】
0005974568.tif 000014
【図１４】
0005974568.tif 000015
【図１５】
0005974568.tif 000016
【図１６】
0005974568.tif 000017
【図１７】
0005974568.tif 000018
【図１８】
0005974568.tif 000019
【図１９】
0005974568.tif 000020
【図２０】
0005974568.tif 000021
【図２１】
0005974568.tif 000022
【図２２】
0005974568.tif 000023
【図２３】
0005974568.tif 000024
【図２４】
0005974568.tif 000025
【図２５】
0005974568.tif 000026
【図２６】
0005974568.tif 000027
【図２７】
0005974568.tif 000028