(57)【特許請求の範囲】
【請求項１】
データ処理装置（１００）によって実行されるモデルシミュレーション方法であって、
シミュレーションモデル（３００）を前記データ処理装置で受信するステップ（５０５）であって、前記シミュレーションモデルは、カップリング（３１４）によって接続された少なくとも１つの主ジョイント（３１２）と少なくとも１つの従ジョイント（３１８）とを含み、前記主ジョイントはリジッドボディの主アタッチメント（３０８）を有し、前記従ジョイントはリジッドボディの従アタッチメント（３０２）を有するステップと、
前記主アタッチメントの主軸線（３２０）及び前記従アタッチメントの従軸線（３２２）を前記カップリングに基づいて識別するステップ（５１０）と、
前記主軸線がモータ（３１６）を含むか又は前記従軸線がモータを含むかに関するモータ判別を行うステップ（５２０）と、
前記主アタッチメント及び前記従アタッチメントに関する交差ベース判別を行うステップ（５２５）と、但し、前記交差ベース判別を行うステップは、前記従アタッチメント（４２８）が前記主ジョイントのベースであるか否かを判別するステップと、前記主アタッチメントが前記従ジョイントのベースであるか否かを判別するステップとを含み、
前記モータ判別及び前記交差ベース判別に基づいてどのボディを拘束すべきかについての拘束判別を行うステップ（５３０）と、
前記拘束判別にしたがって拘束を記憶するステップ（５３５）と、
前記拘束判別にしたがってシミュレーションモデルを実行するステップ（５４０）と
を含む、方法。
【請求項２】
前記データ処理装置によりさらに、前記主アタッチメントがヌルであるか、又は、前記従アタッチメントがヌルであるか、又は、前記主アタッチメントと前記従アタッチメントとが同じであるか、又は、前記主軸線及び前記従軸線の双方がモータを含むかを判別することにより、前記カップリングがシミュレート可能であるか否かを判別する、
請求項１記載の方法。
【請求項３】
前記シミュレーションモデルを実行するステップを、前記主軸線の軸線タイプ及び前記従軸線の軸線タイプに基づいて行う、
請求項１記載の方法。
【請求項４】
前記モータ判別にしたがって、前記主軸線も前記従軸線もモータを含まないことが判別された場合、前記拘束判別において前記主アタッチメント及び前記従アタッチメントの双方が拘束されるものとする、
請求項１記載の方法。
【請求項５】
前記モータ判別にしたがって、前記主軸線がモータを含みかつ前記従軸線がモータを含まないことが判別された場合、前記従アタッチメントが前記主ジョイントのベースであれば、前記拘束判別において前記従アタッチメントをバックグラウンドに拘束し、前記主アタッチメントは拘束しないものとする、
請求項１記載の方法。
【請求項６】
前記データ処理装置によりさらに、前記主軸線の軸線タイプと前記従軸線の軸線タイプとを求め、前記主軸線及び前記従軸線が直線運動軸線である場合には、前記装置によりさらに、
（Ａ１＋Ａ２−ｐｒｏｊ（Ａ２，Ａ１））・ν１＋（Ａ２＋Ａ１−ｐｒｏｊ（Ａ１，Ａ２））・ν２＝ｃ
なる拘束を記憶し、ここで、
ｐｒｏｊ（Ａ１，Ａ２）＝｛（Ａ１・Ａ２）／（Ａ２・Ａ１）｝Ａ２
であり、Ａ１は主軸線を表すベクトルであり、Ａ２は従軸線を表すベクトルであり、ν１は主アタッチメントの直線運動速度を表し、ν２は従アタッチメントの直線運動速度を表し、ｃは補正係数を表す、
請求項１記載の方法。
【請求項７】
プロセッサ（１０２）とアクセス可能メモリ（１０８）とを含むデータ処理装置（１００）であって、
前記データ処理装置は、特に、
シミュレーションモデル（３００）、すなわち、カップリング（３１４）によって接続された少なくとも１つの主ジョイント（３１２）と少なくとも１つの従ジョイント（３１８）とを含み、前記主ジョイントがリジッドボディの主アタッチメント（３０８）を有し、前記従ジョイントがリジッドボディの従アタッチメント（３０２）を有するシミュレーションモデルを、前記データ処理装置で受信し（５０５）、
前記主アタッチメントの主軸線（３２０）及び前記従アタッチメントの従軸線（３２２）を前記カップリングに基づいて識別し（５１０）、
前記主軸線がモータ（３１６）を含むか又は前記従軸線がモータを含むかに関するモータ判別を行い（５２０）、
前記主アタッチメント及び前記従アタッチメントに関する交差ベース判別を行い（５２５）、但し、前記交差ベース判別では、前記従アタッチメント（４２８）が前記主ジョイントのベースであるか否かが判別され、前記主アタッチメントが前記従ジョイントのベースであるか否かが判別され、
前記モータ判別及び前記交差ベース判別に基づいてどのボディを拘束すべきかについての拘束判別を行い（５３０）、
前記拘束判別にしたがって拘束を記憶し（５３５）、
前記拘束判別にしたがってシミュレーションモデルを実行する（５４０）
ように構成されている、データ処理装置。
【請求項８】
前記データ処理装置によりさらに、前記主アタッチメントがヌルであるか、又は、前記従アタッチメントがヌルであるか、又は、前記主アタッチメントと前記従アタッチメントとが同じであるか、又は、前記主軸線及び前記従軸線の双方がモータを含むかを判別することにより、前記カップリングがシミュレート可能であるか否かが判別される、
請求項７記載のデータ処理装置。
【請求項９】
前記シミュレーションモデルの実行が、前記主軸線の軸線タイプ及び前記従軸線の軸線タイプに基づいて行われる、
請求項７記載のデータ処理装置。
【請求項１０】
前記モータ判別にしたがって、前記主軸線も前記従軸線もモータを含まないことが判別された場合、前記拘束判別において、前記主アタッチメント及び前記従アタッチメントの双方が拘束されるものとする、
請求項７記載のデータ処理装置。
【請求項１１】
前記モータ判別にしたがって、前記主軸線がモータを含みかつ前記従軸線がモータを含まないことが判別された場合、前記従アタッチメントが前記主ジョイントのベースであれば、前記拘束判別において、前記従アタッチメントがバックグラウンドに拘束され、前記主アタッチメントは拘束されないものとする、
請求項７記載のデータ処理装置。
【請求項１２】
前記データ処理装置によりさらに、前記主軸線の軸線タイプと前記従軸線の軸線タイプとが求められ、前記主軸線及び前記従軸線が直線運動軸線である場合には、前記装置によりさらに、
（Ａ１＋Ａ２−ｐｒｏｊ（Ａ２，Ａ１））・ν１＋（Ａ２＋Ａ１−ｐｒｏｊ（Ａ１，Ａ２））・ν２＝ｃ
なる拘束が記憶され、ここで、
ｐｒｏｊ（Ａ１，Ａ２）＝｛（Ａ１・Ａ２）／（Ａ２・Ａ１）｝Ａ２
であり、Ａ１は主軸線を表すベクトルであり、Ａ２は従軸線を表すベクトルであり、ν１は主アタッチメントの直線運動速度を表し、ν２は従アタッチメントの直線運動速度を表し、ｃは補正係数を表す、
請求項７記載のデータ処理装置。
【請求項１３】
非一時性の、機械で読み出し可能な媒体（１２６）であって、
該媒体には、実行時に、データ処理装置（１００）に、
シミュレーションモデル（３００）を前記データ処理装置で受信させ（５０５）、前記シミュレーションモデルは、カップリング（３１４）によって接続された少なくとも１つの主ジョイント（３１２）と少なくとも１つの従ジョイント（３１８）とを含み、前記主ジョイントはリジッドボディの主アタッチメント（３０８）を有し、前記従ジョイントはリジッドボディの従アタッチメント（３０２）を有するようにし、
前記主アタッチメントの主軸線（３２０）及び前記従アタッチメントの従軸線（３２２）を前記カップリングに基づいて識別させ（５１０）、
前記主軸線がモータ（３１６）を含むか又は前記従軸線がモータを含むかに関するモータ判別を行わせ（５２０）、
前記主アタッチメント及び前記従アタッチメントに関する交差ベース判別を行わせ（５２５）、但し、前記交差ベース判別では、前記従アタッチメント（４２８）が前記主ジョイントのベースであるか否かが判別され、前記主アタッチメントが前記従ジョイントのベースであるか否かが判別され、
前記モータ判別及び前記交差ベース判別に基づいてどのボディを拘束すべきかについての拘束判別を行わせ（５３０）、
前記拘束判別にしたがって拘束を記憶させ（５３５）、
前記拘束判別にしたがって前記シミュレーションモデルを実行させる（５４０）
ための複数の実行可能な命令が記録されている、
機械で読み出し可能な媒体。
【請求項１４】
前記データ処理装置によりさらに、前記主アタッチメントがヌルであるか、又は、前記従アタッチメントがヌルであるか、又は、前記主アタッチメントと前記従アタッチメントとが同じであるか、又は、前記主軸線及び前記従軸線の双方がモータを含むかが判別されることにより、前記カップリングがシミュレート可能であるか否かが判別される、
請求項１３記載の機械で読み出し可能な媒体。
【請求項１５】
前記シミュレーションモデルの実行が、前記主軸線の軸線タイプ及び前記従軸線の軸線タイプに基づいて行われる、
請求項１３記載の機械で読み出し可能な媒体。
【請求項１６】
前記モータ判別にしたがって、前記主軸線も前記従軸線もモータを含まないことが判別された場合、前記拘束判別において前記主アタッチメント及び前記従アタッチメントの双方が拘束されるものとし、
前記モータ判別にしたがって、前記主軸線がモータを含みかつ前記従軸線がモータを含まないことが判別された場合、前記従アタッチメントが前記主ジョイントのベースであれば、前記拘束判別において、前記従アタッチメントがバックグラウンドに拘束され、前記主アタッチメントは拘束されないものとする、
請求項１３記載の機械で読み出し可能な媒体。
【請求項１７】
前記データ処理装置によりさらに、前記主軸線の軸線タイプと前記従軸線の軸線タイプとが求められ、前記主軸線及び前記従軸線が直線運動軸線である場合には、前記装置によりさらに、
（Ａ１＋Ａ２−ｐｒｏｊ（Ａ２，Ａ１））・ν１＋（Ａ２＋Ａ１−ｐｒｏｊ（Ａ１，Ａ２））・ν２＝ｃ
なる拘束が記憶され、ここで、
ｐｒｏｊ（Ａ１，Ａ２）＝｛（Ａ１・Ａ２）／（Ａ２・Ａ１）｝Ａ２
であり、Ａ１は主軸線を表すベクトルであり、Ａ２は従軸線を表すベクトルであり、ν１は主アタッチメントの直線運動速度を表し、ν２は従アタッチメントの直線運動速度を表し、ｃは補正係数を表す、
請求項１３記載の機械で読み出し可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くはコンピュータエイデッドデザインシステム、視覚化システム、製造システム、製品ライフサイクル管理システム（ＰＬＭシステム）、及び、製品乃至他の物品のデータを管理する同様のシステム（これらを集合的にＣＡＤシステムと称する）に関する。
【０００２】
発明の背景
ＣＡＤシステムにより、製品の視覚化及びシミュレーションが可能となる。改善されたシステムが所望されている。
【０００３】
発明の概要
本発明の種々の実施形態には、モデルシミュレーション方法、対応する装置、及び、コンピュータで読み出し可能な媒体が含まれる。１つの方法は、シミュレーションモデルをデータ処理装置で受信するステップであって、シミュレーションモデルがカップリングによって接続された少なくとも１つの主ジョイントと少なくとも１つの従ジョイントとを含み、主ジョイントはリジッドボディの主アタッチメントを有し、従ジョイントはリジッドボディの従アタッチメントを有するステップを含む。当該方法は、主アタッチメントの主軸線及び従アタッチメントの従軸線をカップリングに基づいて識別するステップを含む。当該方法は、主軸線がモータを含むか又は従軸線がモータを含むかに関するモータ判別を行うステップと、主アタッチメント及び従アタッチメントに関する交差ベース判別を行うステップとを含む。当該方法は、モータ判別及び交差ベース判別に基づいてどのボディを拘束すべきかについての拘束判別を行うステップと、拘束判別にしたがって拘束を記憶するステップと、拘束判別にしたがってシミュレーションモデルを実行するステップとを含む。
【０００４】
以上は、当業者が以下の詳細な説明を良好に理解できるよう、本発明の特徴及び技術的利点を概述したものである。特許請求の範囲の主題をなす本発明の付加的な特徴及び利点を以下に説明する。当業者は、本発明のコンセプト及び具体的な実施形態を、本発明と同じ目的を遂行するための修正又は別の構造の設計を行う基礎として直ちに利用しうることを理解できるであろう。また、当業者は、こうした等価の構成が最も広い形態での本発明の思想及び観点から離れずに可能であることも認識できるであろう。
【０００５】
以下の詳細な説明を行う前に、本明細書を通して用いられる幾つかの語句を定義しておくのが有意であろう。「含む」「〜から形成される」なる語及びその派生語は、非制限の単なる含有を意味する。「又は」なる語は“及び／又は”の意を含む。「〜に関連する」「〜に関連づけられる」なる語句及びその派生語句は、含有、包含、挿入、内包、収容、接続、結合、通信可能、協働、インタリーブ、並列、近接、接合、所有、特徴づけなどの意を含む。「コントローラ」なる語は、少なくとも１つの動作を制御する装置、システム又はそれらの一部を含み、こうした装置はハードウェア、ファームウェア、ソフトウェア又はこれらのうち少なくとも２つの任意の組み合わせとして実現される。特定のコントローラに関連する機能は、中央に集中されていても、ローカルもしくはリモートに分散配置されていてもよい。なお、所定の語句の定義は本明細書を通じて一貫して形成され、こうした定義が、定義された語句のこれまで及びこれからの使用に対して、全てではないにしろ多くの事象に適合するものであることも当業者には理解されるはずである。幾つかの語句は広汎な実施形態に対応しうるものであり、添付の特許請求の範囲のみがこれらの語句を特定の実施形態に明示的に限定しうる。
【図面の簡単な説明】
【０００６】
本発明及びその利点をより良く理解してもらうために、添付図を参照しながら以下に詳細な説明を行う。図中、同様の要素には同様の参照番号を付してある。
【図１】実施形態を実現可能なデータ処理装置のブロック図である。
【図２】本発明の実施形態によるカップリング拘束の例を示す図である。
【図３】本発明の実施形態によるカップリング拘束の例を示す図である。
【図４】ＡからＥともに、本発明の実施形態による、カップリング拘束のジョイント及びリジッドボディの可能な幾つかのコンフィグレーションの例を示す図である。
【図５】本発明の実施形態による方法のフローチャートである。
【図６】本発明の実施形態による、共有オブジェクトがバックグラウンドにロックされるカップリングの例を示す図である。
【図７】端部オブジェクトがバックグラウンドにクランプされるカップリングの例を示す図である。
【図８】本発明の実施形態による、スプロケットとバーギヤとの間の種々の運動の可能性を示す図である。
【０００７】
後述する図１から図８及び本願明細書の本発明の方式の説明に用いられる種々の実施形態は、例示のためのものにすぎず、いかなる手段においても本発明の範囲を限定するものでない。本発明の方式が適切に構成された装置において実現可能であることは当業者に理解されるであろう。典型例としての非制限の実施形態に即して、本明細書の多数の革新的な教説を説明する。
【０００８】
本発明の実施形態は、可動部分間のカップリングの拘束を正確かつ効率的にシミュレートするための装置及び方法であって、ギヤ及びカムの拘束における反射運動と固定軸線の制御とを許容できるようにすることを含む。
【０００９】
運動軸線は産業機械の重要な特徴の１つである。運動軸線の自由度によって、複数の対象物が操作される場合に、これらが相互にどのように運動するかが定められる。従来、運動軸線間の関係は、ギヤもしくはカムなどの物理的なカップリングを用いて構成されていた。また、物理的なギヤ及びカムは、現在でも、目的に沿った相互相対運動を各軸線に生じさせるソフトウェア又は他の電子制御手段を用いた電気的等価物とともに利用されている。
【００１０】
シミュレーションにおいて、各機械をアルゴリズム上及び数学上のオブジェクトによって表現し、所定時間にわたる種々の要素の予測運動を求めるために解法を実行することができる。３Ｄのリジッドボディシミュレーションでは、複数の物理的な可動要素がリジッドボディオブジェクトとして表現され、これらのオブジェクト間の関係により、物理的装置が作業を行うのと同様の各オブジェクトの挙動が得られるよう、シミュレートされる運動が拘束される。種々の拘束は、それぞれ異なる種類の物理的アタッチメント、例えば回転ヒンジジョイント、直線スライドジョイント、ボールジョイントその他などを表すために用いられる。これにより、主要方向への運動自由度が許容され、他の方向への運動が制限される。例えば回転運動ジョイントは、２つのリジッドボディ間の単円方向の運動を許容するが、横移動もしくは回転軸線から傾動する回転などの他の全ての運動を拘束する。
【００１１】
広汎な種類のシミュレーション装置、ひいては、こうした装置内のシミュレーション表現手段が存在している。本発明は、以下に限定されるものではないが、リジッドボディ、ジョイント、カップリング及びモータの４種類のシミュレーションオブジェクトを含む。リジッドボディはシミュレーションにおける運動体を表す。これは、位置、配向、速度、質量その他の属性に対するプロパティを有することができる。
【００１２】
ジョイントは、運動が制限されている２つのリジッドボディ間の接続部として定義される。回転運動ジョイントは、２つのオブジェクト間に回転のみが生じうるように運動を制限する。直線運動ジョイントは一次元の直線運動のみが生じうるように運動を制限する。回転運動ジョイント及び直線運動ジョイントの双方に対して、運動軸線のベクトル方向と、リジッドボディ間の距離尺度を規定する現在位置との双方が定義される。
【００１３】
カップリングは、２軸線のジョイント間の関係として定義され、これにより、２つのジョイントの位置がつねに何らかの関数によって関連づけられるよう、これらのジョイントでの運動が制御される。それぞれの位置は、ギヤカップリングでは比として、カムカップリングでは連続関数によって、関連づけることができる。
【００１４】
さらに、モータは１つもしくは複数のリジッドボディでの運動を形成するために用いられる。モータは単独軸線のジョイントに適用されており、速度もしくは位置の変化を生じさせるため、関連するボディにトルクを印加する。シミュレーション装置は、種々の配置及びプロパティによって他のタイプのオブジェクトを定義でき、さらに、共通のオブジェクトを異なる方式で定義することもできる。なお、本発明の技術は、上述したオブジェクトに対して同様の関数を有する装置のオブジェクトにも適用可能である。
【００１５】
本発明は、リジッドボディシミュレーションにおいて拘束される軸線の解を正確かつ安定に求めることのできる装置及び方法を含む。ギヤもしくはカムの拘束では、１次元の軸線に沿って運動するリジッドボディの２つのペア間に関数関係が形成される。ここでは４つのボディが関与するので、調整によって、４つのボディのうち２つのみを用いて、拘束の解を求めることができる。本発明の実施形態は、どのようにボディを選択できるか、及び、シミュレーションの実行に利用可能な関係の表現を記述する。
【００１６】
図１には、一実施形態を実現可能なデータ処理装置のブロック図が示されている。当該データ処理装置は、例えばＣＡＤ装置として、特に上述したプロセスを実行するソフトウェアその他によって、とりわけ上述した複数の中間接続される通信装置のいずれかとして構成可能である。図示されているデータ処理装置は、プロセッサ１０２と、これに接続されるレベル２のキャッシュ／ブリッジ１０４と、これらに接続されているローカルシステムバス１０６とを含む。ローカルシステムバス１０６は例えば周辺装置接続アーキテクチャバス（ＰＣＩバス）である。さらに、図示の例のローカルシステムバス１０６には、主メモリ１０８及びグラフィックアダプタ１１０も接続されている。グラフィックアダプタ１１０にはディスプレイ１１１を接続可能である。
【００１７】
他の周辺装置、例えばローカルエリアネットワーク／ワイドエリアネットワーク／ワイヤレスアダプタ（ＬＡＮ／ＷＡＮ／ＷｉＦｉアダプタ）１１２もローカルシステムバス１０６に接続可能である。拡張バスインタフェース１１４はローカルシステムバス１０６とＩ／Ｏバス１１６とを接続している。Ｉ／Ｏバス１１６にはキーボード／マウスアダプタ１１８とディスクコントローラ１２０とＩ／Ｏアダプタ１２２とが接続されている。ディスクコントローラ１２０は記憶装置１２６に接続可能であり、この記憶装置１２６は、適切な機械で利用可能もしくは読み出し可能な記憶媒体であってよい。ここでの記憶媒体は、以下に限定されるものではないが、不揮発性の硬性符号化式の媒体、例えば、読み出し専用メモリＲＯＭ、又は、電気的に消去及び再プログラミング可能な読み出し専用メモリＥＥＰＲＯＭ、磁気テープ記憶装置、及び、ユーザが記録可能なタイプの媒体、例えば、フロッピーディスク、ハードディスクドライブ、コンパクトディスク読み出し専用メモリＣＤ‐ＲＯＭもしくはディジタルヴァーサティルディスクＤＶＤ、及び、他の公知の光学的もしくは電気的もしくは磁気的記憶装置などを含む。
【００１８】
また、図示の例のようにＩ／Ｏバス１１６にオーディオアダプタ１２４を接続することもできる。オーディオアダプタ１２４には音声出力のために（図示されていない）スピーカを接続できる。キーボード／マウスアダプタ１１８は（図示されていない）ポインティングデバイス、例えばマウス、トラックボール、トラックポインタ、タッチパネル、タッチパッドなどへの接続を形成する。
【００１９】
当業者であれば、図１に示されているハードウェアを特定の構成に合わせて変更できることが理解されるはずである。例えば他の周辺装置、例えば光ディスクドライブその他も、図示のハードウェアに加えてもしくはこれに代えて用いることができる。図示の例は説明のためのものであり、本発明に対する構造上の限定を示唆するものではない。
【００２０】
本発明の実施形態に関連するデータ処理装置は、グラフィックユーザインタフェースを利用したオペレーティングシステムを含む。オペレーティングシステムにより、グラフィックユーザインタフェースに複数のディスプレイウィンドウを同時に表示して、各ディスプレイウィンドウにより、種々のアプリケーションに対するインタフェース、又は、同じアプリケーションの種々のインスタンスに対するインタフェースを形成することができる。グラフィックユーザインタフェースのカーソルは、ユーザがポインティングデバイスを介して操作可能である。カーソルの位置変更、及び／又は、マウスボタンのクリックなどのイベントによって、所望の応答を作動させることができる。
【００２１】
市販されている種々のオペレーティングシステムのうち、例えば、ワシントン州レッドモンド在のマイクロソフトコーポレーション社の製品であるマイクロソフトウィンドウズ（登録商標）の所定のバージョンを適切に修正して利用可能である。オペレーティングシステムは上述した本発明にしたがって修正もしくは作成される。
【００２２】
ＬＡＮ／ＷＡＮ／ＷｉＦｉアダプタ１１２は（データ処理装置１００の要素でない）ネットワーク１３０に接続可能である。ネットワーク１３０は当業者に周知の公共のもしくは私的なデータ処理装置ネットワーク又はネットワークコンビネーション、例えばインタネットであってよい。データ処理装置１００はネットワーク１３０を介して同様にデータ処理装置１００の要素でないサーバ１４０と通信可能であるが、サーバ１４０は例えば別個のデータ処理装置１００として構成することもできる。以下では、「装置」とは１つもしくは複数のデータ処理装置をいうものとする。
【００２３】
図２にはカップリングの拘束の例が示されており、これは、上述したシミュレーション装置をどのように構成できるかの例として用いることができる。装置２００は、バー２０４上に取り付けられたシャトル機構を有する複数の部材から成る。シャトル２０２及びそのハウジングはバーに沿って運動可能であり、モータ２０６によって駆動される。モータ２０６はバーギヤ２１０とかみ合った回転スプロケット２０８に接続されている。スプロケット２０８の回転によってバーギヤ２１０に対する機械力が生じ、これによって装置２００のシャトルアセンブリが直線方向に沿って駆動される。
【００２４】
図３には、装置２００に対応するシミュレーションモデル３００の例が示されており、このシミュレーションモデルは、シミュレートされたソリッドオブジェクト、及び、対応する論理エンティティ、例えばボディ、カップリング、ジョイント、モータなどを含む。当該装置のシミュレーションを形成するために、図３のオブジェクトは装置によって定義可能である。種々のタイプのシミュレーションオブジェクトの標示に種々の形状を利用可能である。この例では、円形がリジッドボディを、菱形がジョイントを、六角形がカップリングを、台形がモータを表している。この例では２つの可動オブジェクトが存在しているので、シミュレーションには２つのリジッドボディオブジェクトが存在する。すなわち、付属のモータ２０６をともなうシャトル２０２のハウジングに対するリジッドボディのシャトル３０２と、ギヤスプロケット２０８に対するリジッドボディのスプロケット３０８とである。シャトルは実際の装置ではバーによって支承されているが、バーは不動であるため、これをリジッドボディとしてモデリングする必要はない。同様に、バーギヤもリジッドボディによってモデリングする必要はない。これらのオブジェクトは不動のバックグラウンドの一部と見なすことができる。
【００２５】
シャトル２０２の横方向の直線運動は、直線運動ジョイントによってモデリング可能である。ジョイントは、アタッチメント及びベースと称されるリジッドボディのオブジェクトペア間に指定される。各ジョイントボディのパラメータは所定のリジッドボディオブジェクトによって設定可能であるか、又は、空白のままとすることができる。アタッチメント及びベースの各オブジェクトの定義は対称でなくてもよい。アタッチメントのパラメータが空白のままである場合、ジョイントが切り離されていると見なすことができるが、ベースのリジッドボディが運動すればその位置は移動する。ベースパラメータが空白のままである場合、ジョイントは、不動でありかつ見えない一種のボディとして機能するバックグラウンドに結合していると見なすことができる。図３では、アタッチメントパラメータが“Ａ”、ベースパラメータが“Ｂ”で標示されている。直線運動ジョイントのベースは空白のままであり、これは、シャトルがバックグラウンドに結合されていることを意味する。シャトルはジョイントの直線運動軸線に沿って往復運動し、脱落することはない。
【００２６】
この例でのギヤスプロケットは、回転運動ジョイント３１２によってシャトルハウジングに接続されている。この場合、スプロケットとハウジングとは結合されているが、相対的に運動する。このことをモデリングするために、回転運動ジョイントのアタッチメントはリジッドボディのスプロケット３０８にセットされ、ベースはリジッドボディのシャトル３０２にセットされる。
【００２７】
各運動軸線が例えば点線３２０，３２２として図３に示されている。軸線パラメータはジョイントオブジェクトもしくはリジッドボディオブジェクトに記憶することができる。スプロケットの回転によってシャトルはバー上を移動し、これによって軸線上で発生する運動どうしの関係が定められる。ここでの関係は双方向で操作可能であり、よって、シャトルの運動がスプロケットをターンさせることもある。ここでの関係をモデリングするために、カップリングオブジェクト、このケースではギヤカップリング３１４が使用される。カップリングは、２軸線、すなわち、主軸線３２０（カップリング３１４上に「マスタ」のＭによって主軸線として標示されている）及び従軸線３２２（カップリング３１４上に「スレーブ」のＳによって従軸線として標示されている）をペアとして有する。同様に、カップリングオブジェクトは、回転運動ジョイント３１２が主ジョイント、直線運動ジョイント３１８が従ジョイントであることを定義する。カップリングが主ジョイント／従ジョイントひいては主軸線／従軸線を定義しているので、各軸線をカップリングから求めることができる。カップリングが主従の関係を未だ定義していない場合、装置もしくはユーザは、シミュレーションオブジェクトの機能にしたがって主従の役割を割り当てることができる。所定の機能は、或る軸線での運動が他の軸線での運動にどのように影響するかを求めるために用いられる。主軸線の位置は関数のドメインとして機能し、従軸線の位置は範囲として機能する。このケースでは、ギヤカップリングは、関数が各軸線上の運動の比として指定されるケースで用いることができる。スプロケットの完全なターンにより、例えば、直線方向での所定の距離、例えば３０ｃｍにわたって、シャトルを移動させることができる。
【００２８】
シミュレーションを巡回させている間、モータオブジェクト３１６は回転運動ジョイント３１２に適用される。モータはどの軸線ジョイントにも付加可能であり、当該ジョイントに接続されたボディの速度もしくは位置の変更に利用可能である。この場合、回転運動ジョイントはシャトルハウジングとスプロケットとの間に接続されているので、モータはこれらのオブジェクト間の相対速度及び／又は位置を修正することができる。
【００２９】
本発明の実施形態は、シミュレーションの拘束ソルバを実現可能である。シミュレーションを実行するために、シミュレーションオブジェクトは、シミュレーションエンジンの拘束ソルバによって解くことのできる基関数へ変換される。拘束の解を求める装置には広汎な種類のものが存在している。
【００３０】
物理エンジンは、シミュレーションオブジェクトによって求められる変数に適用される物理法則を記述した方程式を解く一種の方程式ソルバであると考えることができる。離散的な時間ステップで方程式を解くことにより、結果が得られる。各変数の値は、グラフを作表することによって、又は、各値が移動して見えるようにこれらの値をグラフィックオブジェクトに適用したりすることなどによって、種々の方式で観察可能である。
【００３１】
物理エンジンの方程式の形状は典型的には制限されている。幾つかのソルバは他のものよりも多くのオプションを提供できるが、一般に、方程式はボディペア間の速度の関係を基礎とする。３次元（３Ｄ）のリジッドボディは、６自由度、すなわち、３つの直線運動自由度と３つの回転運動自由度とを有する。拘束方程式が適用されない場合、ボディは制限なく６自由度の全てで運動可能である。また、リジッドボディペア間にも、２つのオブジェクトの相対位置に基づく自由度を表す６自由度が存在する。
【００３２】
回転軸線ジョイントなどの拘束によって自由度に制限が課され、これにより所定の運動がロックされる。回転軸線ジョイントは、例えば、５つの自由度の消失を強制する。３つの直線運動自由度の全てが除去され、回転軸線を中心とした１つの回転自由度のみが残る。回転運動ジョイントと同様の５つの自由度を制限するために、拘束において５つの方程式が指定される。本発明の種々の実施形態では、ボディが拘束を受けるオブジェクトとして扱われ、ジョイントがカップリングの拘束から独立した一種の拘束として扱われる。
【００３３】
拘束方程式（単独の拘束の次元）の一般形は、
Ａ１・ν１＋Ｂ１・ω１＋Ａ２・ν２＋Ｂ２・ω２＝ｃ
であり、ここで、記号ν及びωはリジッドボディの直線運動速度及び角速度を表す。下付き数字は速度がどのリジッドボディに由来するかを表す。変数Ａ，Ｂ，ｃはベクトルの導出値Ａ，Ｂ及び補正値ｃであるか、又は、オブジェクト間の相互作用を定義する物理ライブラリを個別に構成することにより指定可能である。記号・はベクトルのドット積を表す。当該手段はどの２つのリジッドボディが拘束されるかを選択できる。しかし、方程式の構造及び使用可能なボディ数は通常は固定されている。
【００３４】
ベクトルＡ，Ｂはそれぞれのリジッドボディに対する運動軸線であり、変数ｃは補正係数であると考えることができる。例えば、ｘ軸上の２つのボディの直線運動を拘束しようとする場合、Ａ１は［１，０，０］に設定され、Ａ２は［−１，０，０］に設定される。ベクトルＢは［０，０，０］に設定され、ｃは０となる。結果は、ボディ１のｘ軸の直線運動速度がボディ２のｘ軸の直線運動速度に等しいことを記述する方程式となる。これは速度に関する拘束であってボディ位置に関する拘束でないことに注意されたい。一般に、ボディがつねに等速で運動する場合、その位置も等しいままである。ただし、各ボディの位置が整合状態から外れると、変数ｃを用いて速度に対する小さな補正量が加えられる。これにより、次のステップでの位置の補正に近づけるために、一方のボディをもう一方のボディの方へ移動できる。
【００３５】
本発明の実施形態では、カップリングの拘束をモデリングできる。一度に２つのリジッドボディしか関連づけできない手段では、標準形の拘束方程式を用いたカップリングオブジェクトの構成は阻害される。１つのカップリングが軸線ジョイントオブジェクトのペアを形成し、各ジョイントが１つもしくは２つのリジッドボディに関連するので、１つのカップリングによって２つもしくは３つもしくは４つのリジッドボディを関連づけることができる。
【００３６】
図４のＡからＥには、カップリングの拘束、ジョイント及びリジッドボディの可能な幾つかのコンフィグレーションの例が示されている。リジッドボディ及びジョイント及びカップリングの全てのコンフィグレーションを考察する必要はない。例えば、アタッチメントが空白なジョイントは全く動作しないので、存在していないのと同様に効率的に扱うことができる。こうしたジョイントを使用するカップリングも空白である確率が高いと見なせる。なお、図４では、Ｍは主、Ｓは従、Ａはアタッチメント、Ｂはベースを標示している。
【００３７】
最も単純なカップリングのコンフィグレーションが図４のＡに示されている。このケースでは、各リジッドボディは、相互に独立、かつ、カップリング４０６によって結合されているジョイント４０２，４０４の双方に対して独立であり、バックグラウンドにベースを有する。主ジョイント４０２は、リジッドボディの主アタッチメントと称されうるアタッチメント４０３を有する。従ジョイント４０４は、リジッドボディの従アタッチメントと称されうるアタッチメント４０５を有する。ジョイントの空白のベースは、使用されるリジッドボディの可能速度を直接に定めるものであるので、重要である。軸線速度は、通常、アタッチメントとベースオブジェクトとの間の相対速度であるが、バックグラウンドオブジェクトの速度はつねにゼロである。幾つかのシミュレーション装置により、この種のコンフィグレーションでのカップリング構成が形成される。なぜなら、これは標準の拘束方程式を直接に表すからである。
【００３８】
ただし、１つもしくは複数のジョイントベースオブジェクトが空白でない場合、単純な２つのリジッドボディの拘束方程式は不完全となる。図４のＢでは、カップリング４０８が、それぞれ２つずつのベースオブジェクトを有する主ジョイント４１０と従ジョイント４１２とを結合している。このケースでは、４つのリジッドボディ全てが拘束に関与しており、より適切な拘束方程式は、次のような、１つのカップリングにおける４つのリジッドボディに関連する一般式となる。すなわち、
Ａ１・（νａ−νｂ）＋Ｂ１・（ωａ−ωｂ）＋Ａ２・（νｃ−νｄ）＋Ｂ２・（ωｃ−ωｄ）＝ｃ
ここで、記号ν及びωは、各リジッドボディａ，ｂ，ｃ，ｄの直線運動速度及び角速度を表す。この修正された方程式では、４つのリジッドボディ全てが、単独のリジッドボディ速度に代え、各ジョイントに結合されている各リジッドボディペアの速度差について考慮される。また、軸線ベクトルＡ１，Ｂ１，Ａ２，Ｂ２を、各リジッドボディ速度に対する個別の軸線に分解可能である。拘束ソルバにこうした方程式を組み込めれば問題を解くことができるが、これは現行の物理エンジンの能力を超えている。４つまでのリジッドボディを参照する拘束方程式は、現行の物理エンジンでは一般には利用不能である。
【００３９】
本発明の実施形態では、カップリングされた複数のリジッドボディがペア専用の拘束方程式を用いてモデリングされるようにして、モデルを処理可能である。ペア専用の拘束方程式を用いたカップリングを実現するために、本発明の実施形態には、どのボディを拘束するかを選択する特別の技術が含まれ、広汎な条件に対してカップリングの解を求めるのに適したプロセスが実行される。
【００４０】
拘束されるボディを選択するために、カップリングの主ジョイント及び従ジョイントが定められ、本発明の実施形態により、これらのオブジェクトのコンフィグレーションについての判別が行われ、リジッドボディがジョイントの参照をオブジェクト化する。本発明の方法では、カップリング拘束が実行不能であることを当該カップリング拘束が演算もしくは判別するための１つもしくは２つのリジッドボディが選択される。
【００４１】
図５には、本発明の実施形態による、オブジェクトの選択及びシミュレーションの全体に関する方法のフローチャートが示されている。種々のアタッチメント及び計算の例を以下に説明する。こうした方法は１つもしくは複数のデータ処理装置で実行可能であり、これを以下では一般に「装置」と称する。
【００４２】
装置はシミュレーションモデルを受信する（５０５）。ここで使用している「受信」なる概念は、記憶装置からのローディング、他のデバイスもしくはプロセスからの受信、ユーザとのインタラクションを介した受け取りその他を含むことができる。シミュレーションモデルは、複数のシミュレーションオブジェクトを含むことができ、そこには、少なくとも１つの主ジョイントとこれに結合されている少なくとも１つの従ジョイントとが含まれ、各ジョイントは関連するリジッドボディのアタッチメントを有する。主ジョイントのアタッチメントは主アタッチメントと称され、従ジョイントのアタッチメントは従アタッチメントと称される。また、各ジョイントは関連するリジッドボディのベースを有してよい。種々の実施形態において、主ジョイント及び従ジョイントはカップリングによって結合されたものとしてモデリングされる。各リジッドボディは、所定の直線運動速度もしくは角速度を有する。
【００４３】
装置は、カップリングに基づいて主アタッチメントの主軸線と従アタッチメントの従軸線とを識別する（５１０）。当該動作は、主軸線及び従軸線の軸線タイプ、例えば、各ジョイントが回転運動ジョイントであるか、直線運動ジョイントであるか、又は、固定ジョイントであるかの判別を含むことができる。
【００４４】
装置は、カップリングがシミュレート可能であるか否かを判別し（５１５）、シミュレート不能である場合には方法を停止することができる。例えば、装置は、主アタッチメントがヌル（NULL）である場合、従アタッチメントがヌルである場合、主アタッチメント及び従アタッチメントが等しい場合、又は、主軸線及び従軸線の双方がモータを含む場合に、カップリングがシミュレート不能であることを判別できる。
【００４５】
装置は、主軸線がモータを含むか又は従軸線がモータを含むかを判別するモータ判別を行う（５２０）。幾つかのケースでは、プロセス５２０はプロセス５１５と同時に実行可能であり、主軸線及び従軸線の双方がモータを含むというモータ判別結果により、カップリングがシミュレート不能であることを表示できる。
【００４６】
装置は、交差ベース判別を行う（５２５）。交差ベース判別は、従アタッチメントが主ジョイントのベースであるか否か、及び、主アタッチメントが従ジョイントのベースであるか否かの判別を含むことができる。
【００４７】
装置は、モータ判別と交差ベース判別とに基づいて、どのボディを拘束すべきかを判別する拘束判別を行う（５３０）。このケースでは、モータ判別によれば、主軸線及び従軸線の双方ともモータを含まないので、拘束判別は、主アタッチメント及び従アタッチメントの双方が拘束されるというものとすることができる。
【００４８】
モータ判別において、主軸線がモータを含み、従軸線がモータを含まない場合、従アタッチメントが主ジョイントのベースであれば、拘束判別は、従アタッチメントがバックグラウンドに拘束され、主アタッチメントは拘束されないというものとすることができる。そうでなく、主従軸線の双方がリジッドボディを共有しない場合には、拘束判別は、主アタッチメント及び従アタッチメントの双方が拘束されるというものとすることができる。
【００４９】
モータ判別において、従軸線がモータを含み、主軸線がモータを含まない場合、主アタッチメントが従ジョイントのベースであれば、拘束判別は、主アタッチメントがバックグラウンドに拘束され、従アタッチメントが拘束されないというものとすることができる。そうでなく、主従軸線の双方がリジッドボディを共有しない場合は、拘束判別は、主アタッチメント及び従アタッチメントの双方が拘束されるというものとすることができる。
【００５０】
装置は、拘束判別に基づいて拘束を記憶する（５３５）。
【００５１】
装置は、拘束判別に基づいてシミュレーションモデルを実行する（５４０）。シミュレーションは後述する計算を用いて実行可能であり、主軸線及び従軸線の軸線タイプを基礎とすることができる。
【００５２】
種々の実施形態によれば、３つ以上のリジッドボディをモデリングする場合でも、ペア専用の拘束方程式を用いるので、１回のモデリングには２つのリジッドボディしか用いない。このことを実現するために、選択プロセスにおいて、適切なリジッドボディを選択するためのジョイントオブジェクトの直接性を利用する。ユーザ又は装置は、結合しようとするオブジェクトペアがアタッチメントプロパティに入るようにジョイントを作成することを期待されている。
【００５３】
例えば、図４のＣには、カップリング４１４が、ベースに対するリジッドボディ４２０を共有する２つのジョイント４１６，４１８間に存在することが示されている。このケースでは、結合されるボディペアはリジッドボディＡ４２２及びリジッドボディＣ４２４である。このことは、シミュレーションにおける他の要素が臨界的な自由度を消去してしまうことがあるために、重要である。
【００５４】
図６には、共有オブジェクトがバックグラウンドにロックされたカップリングの例が示されており、これは図４のＣのオブジェクトによって表現可能である。固定のジョイントがボディＢ６０２に適用されていれば起こりうることであるが、ボディＢ６０２がバックグラウンドにクランプされている場合、ボディＡ６０４とＣ６０６との間のカップリング拘束が通常のように機能することが期待される。このケースでは、ボディＢ６０２のクランプは図４のＡの状況に等しくなる。
【００５５】
ただし、ユーザがボディＣ６０６をバックグラウンドにクランプする可能性もある。図７には、端部オブジェクトがバックグラウンドにクランプされたカップリングの例が示されている。基本的には、ボディＡ６０４，Ｂ６０２はなお移動可能であって、ギヤの機能が許容されなければならない。しかし、ボディＡ６０４とボディＣ６０６との間の拘束は、ボディＣが動かないために機能しない。ユーザは、図４のＥのコンフィグレーションに示されているごとく、ジョイントＳ４１８の方向を反転してアタッチメントがボディＢとなりベースがボディＣとなるよう、この状況を修復することができる。このケースでは、ボディＡ６０４とボディＢ６０２との間のカップリングの拘束が作成され、バックグラウンドへのボディＣ６０６のクランプが行われる。
【００５６】
図４のＤには、例えば図３のスプロケット及びシャトルについての状況の例が示されている。これは、ボディＣ６０６がバックグラウンドに固定されている図７のケースに類似していることに注意されたい。シャトル及びスプロケットのケースでは、固定のボディは直線状のバーであり、バックグラウンドとして表示されている。２つのボディしか存在しないので、ボディＡ４２６がスプロケットを表現でき、ボディＢ４２８がシャトルを表現できる。ただし、ボディＢ４２８は２つのジョイント４３０，４３２間で共有されるので、オブジェクト間の拘束はつねに満足されるわけではない。
【００５７】
図３のシャトル及びスプロケットの例では、例えば、モータが回転運動ジョイント上に配置されている。モータは、多数の他のシミュレーションオブジェクトと同様に、拘束として構成可能であり、この拘束はジョイントによって結合された同じ２つのボディ間に存在する。
【００５８】
ジョイント上のモータは固定ジョイントと同様に作用するように動作する。モータ速度は、例えばモータが全く固定ジョイントであるかのようにモデリングされるケースではゼロに設定可能であるが、モータ速度がゼロでない場合にも、モータ状態によって２つのボディの位置が完全に定められる。２つのオブジェクト間の例えばカップリングなどの付加的な拘束のみが、装置を上位で拘束する。シャトルとスプロケットとの間の拘束はモータでもギヤでもありえない。本発明の実施形態によれば、装置は、カップリングにおける一方のリジッドボディを単純かつ安全に無視することによって当該問題に対処できる。ボディＡ４２６とボディＢ４２８との間の拘束としてカップリングを形成することに代えて、ボディＢ４２８とバックグラウンドオブジェクト（無し）との間に拘束が形成される。これは、一方の軸線がモータによって定められる場合に、他方の軸線も効果的にモータ制御されるので、有効である。カップリングの拘束は第１のモータの運動を自由軸線の位置へ変換する。ユーザは１つのカップリングの２つの軸線のうち一方のみをモータ制御する。モータを両方の軸線に置くと、カップリングが無関係なものとされ、拘束は上位で考慮不要と定められる。
【００５９】
ボディペアごとの拘束方程式は３つ以上のボディに対して解を導く能力を有さないので、本発明の実施形態では、装置もしくはユーザが定めたカップリング及びジョイントの定義が使用される。この定義は、拘束される２つのボディが作業のシミュレーションにおいて得られるように配置される。カップリングによって拘束すべき２つのオブジェクトを選択するにあたって、全てのジョイント及びモータによって規定される自由度を分析できるが、オブジェクトが異なる方向へ運動すれば自由度は潜在的に変化しうるし、シミュレーションではプログラムによって自由度が明示的に変更されうるので、こうした分析は一般には非実用的である。例えば、２つのボディの独立した運動が可能な状態でシミュレーションを開始しても、後にユーザ動作によってこれらのボディが相互に結合されて１つのリジッドボディのごとくに動作することもある。
【００６０】
図５に示されているプロセスでは、こうした種々の可能性が考察されている。まず、主従のジョイントのアタッチメントボディが捕捉される。これらのボディのいずれかがヌルである場合、又は、主従双方が同じボディ上でアタッチメントを使用している場合、カップリングは有効にならない。２つのリジッドボディが存在する場合、本発明の方法ではモータの接続が生じていると見なされる。判別は、ジョイントがモータを用いて制御される際に、バックポインタによって行うことができる。２つのジョイントの双方がモータによって制御される場合、カップリングは有効にはならないが、モータが存在するのであれば特別な考察が行われる。
【００６１】
モータがジョイント上に存在する場合、図４のＤ，Ｅに示されているように、オブジェクトの所定のコンフィグレーションを識別しなければならない。これは上述したような交差ベース判別と称される。図４のＥは図４のＣに類似しているが、従ジョイントＢ４３４のアタッチメント及びベースの方向が反転していることに注意されたい。装着の方向が相違点である。図４のＣのケースでは、アタッチメントオブジェクトはまだ独立している。これらは共通のベースを共有しているが、その接続性のために、リジッドボディＡ４２２及びリジッドボディＢ４２０は相互に独立に運動するものと見なされる（図７のギヤなど）。
【００６２】
ただし、図４のＤ，Ｅの各コンフィグレーションは、互いに重なった部分を有しており、一方のボディ（他方のベースにあるボディ）の運動が他方の運動に影響することが予測される。カップリングはリジッドボディＡ，Ｂ間に生じると予測される。したがって、リジッドボディＡ，Ｂを接続するモータは、Ａ，Ｂ間のカップリングの拘束の機能を許容しない。代わりに、図４のＥの例ではリジッドボディＢ４３６とバックグラウンドとの間にカップリングが形成される。本発明の実施形態では、バックグラウンドを用いて、重なった部分の下方のジョイントのベースが他方のリジッドボディに設定されるか否かを判別する。当該プロセスは、従ジョイントがモータを含み、従ベースが主アタッチメントと同じオブジェクトであるカップリングに対して同様に動作する。
【００６３】
種々の実施形態で、上述したカップリングの拘束方程式
Ａ１・ν１＋Ｂ１・ω１＋Ａ２・ν２＋Ｂ２・ω２＝ｃ
を使用可能である。ここで、記号ν及びωは、リジッドボディの直線運動速度及び角速度を表す。下付き数字は速度がどのリジッドボディに由来するかを表す。変数Ａ，Ｂ，ｃは、ユーザが指定した値を表す。
【００６４】
本発明の実施形態では、カップリングの拘束を実現するための拘束方程式が適用される。種々の実施形態によれば、パラメータＡは直線運動ジョイントの制御に用いられ、パラメータＢは角度ジョイントの制御に用いられる。例えば、図３の例では、主ジョイント３１２は回転運動ジョイントであり、従ジョイント３１８は直線運動ジョイントであるので、本発明の方法では、Ｂ１，Ａ２が主ジョイントの角速度と従ジョイントの直線運動速度との相関に用いられ、Ａ１，Ｂ２がゼロベクトルのままにされる。ただし、このコンフィグレーションは各ジョイントがモータによって固定されているケースを無視している。
【００６５】
軸線が同じタイプでないか又は同じタイプであるが相互に整合していない場合、カップリングされたボディの運動によるリジッドボディの運動の補償が可能となる。例として、ギヤ２０８の回転によりロッド２０４に図２の直線運動が生じるが、これはギヤ２０８自体にも作用し、反対方向への直線運動を生じさせる。図ではわかりにくいが、グリーンギヤは静止することもあり、また、ロッドはギヤのターンとは反対方向に直線運動及び回転運動の双方を行うことがある。
【００６６】
図８には、スプロケット８０８とバーギヤ８１０との間で可能な種々の運動が示されている。この図には、結合された各ボディの運動がそれぞれ他方のボディの運動によって補償可能となることが示されている。これらの例では、同じ量の運動が結合された回転軸線及び直線運動軸線に適用される。
【００６７】
拘束されたオブジェクトの独立した運動可能性を基礎とすることに代えて、本発明の実施形態では、反対軸線の運動可能性が各軸線の運動へ符号化される。幾つかの種類の方程式の例を挙げ、結果を以下に説明する。
【００６８】
一方が回転軸線、他方が直線運動軸線である混合軸線のケースでは、装置は、
Ａ１・ν１＋Ｂ２・ω１＋Ａ１・ν２＋Ｂ２・ω２＝ｃ
を使用できる。このケースでは、主軸線が直線運動軸線であって方向Ａ１で運動し、従軸線が回転運動軸線であって軸線Ｂ２を中心として回転する。主軸線が回転軸線で従軸線が直線運動軸線である場合には、インデクスの数字が入れ替わる。ベクトルＡ１，Ｂ２の長さは、これらの長さの比が各軸線に適用される速度の比の逆数に対応するように調整される。例えば、回転軸線が直線運動軸線の移動の単位長さ当たりで２回ずつターンする場合、長さＡ１を長さＢ２で除算した比は４πとなる。
【００６９】
カップリングの拘束が同じタイプの軸線を使用する場合、つまり、双方が直線運動軸線であるか又は双方が回転軸線である場合、装置は、混合軸線の結合のために、次式
（Ａ１＋Ａ２−ｐｒｏｊ（Ａ２，Ａ１））・ν１＋（Ａ２＋Ａ１−ｐｒｏｊ（Ａ１，Ａ２））・ν２＝ｃ
ここで、ｐｒｏｊ（Ａ１，Ａ２）＝｛（Ａ１・Ａ２）／（Ａ２・Ａ１）｝Ａ２
を使用できる。この例では、当該方程式は、直線運動‐直線運動拘束を設定する。回転‐回転拘束の場合、ベクトルＢが角速度値に対して使用可能となるが、全体としての方程式は同じである。このとき、Ａ１は主軸線を表すベクトルであり、Ａ２は従軸線を表すベクトルである。上述した方程式と同様に、各軸線の長さは、これらの長さの比が所望の速度の比の逆数となるように設定される。Ａ１，Ａ２が平行である場合、Ａ１へのＡ２の射影はＡ２となり、Ａ２へのＡ１の射影はＡ１となるので、方程式はより簡単な式
Ａ１・ν１＋Ａ２・ν２＝ｃ
に単純化される。
【００７０】
これらの方程式を用いて、複数のボディが共通に１つのモータにロックされている場合、装置はカップリングの拘束に運動自由度を付与する。そうでなく、ボディどうしがロックされている場合は、反対軸線によって規定された方向への運動はどちらのボディにも不可能である。この場合、ジョイントは完全にロックされる。方向の交番変化が組み込まれている場合には、図５に示されているボディ選択のプロセスによって、自由なボディが、２つの軸線のうち許容されるいずれかの方向で、バックグラウンドに対して運動可能となる。このようにして、自由なボディの運動を、モータにロックされたボディに対して補償できる。
【００７１】
上掲した多軸線の方程式においてはベースオブジェクトの速度が無視されているため、計算は近似的なものにすぎない。補正量ｃは、ベース速度がゼロでない場合に発生する方程式中の誤りを補償するために用いられる。当該プロセスは広く機能するが、カップリングにおける４つのオブジェクト全ての速度間の関係を直接に指定できないという欠点をなお有している。こうした問題はベースオブジェクトの速度が１つもしくは複数のアタッチメントに依存する場合に発生する。ただし、実際にはこの問題はまれにしか起こらない。なぜなら、ベース速度は、基本的に固定されているか又は不動のバックグラウンドオブジェクトである種々の拘束の集合によって設定されていることが多いからである。
【００７２】
もちろん、格別のことわりがないかぎり、又は、各動作の順序の要求がないかぎり、上述したプロセスの所定のステップの省略もしくは同時実行もしくは順次実行、又は、順序の入れ替え等が可能であることは、当業者には理解されるであろう。
【００７３】
本発明の実施形態により、リジッドボディのシミュレーションにおけるカップリング拘束のローバストな処理が可能となる。ユーザが一般に処理を望む状況において、こうした拘束を実現する標準的な技術は存在していない。
【００７４】
本発明の方法のボディ選択により、標準的な物理エンジンの拘束方程式において使用されるボディペアが得られる。こうしたボディは、ユーザが理解可能な、正しいペアを形成するためのセマンティクスを反映しており、１つもしくは複数のボディがバックグラウンドにロックされることから生じる問題を防止できる。本発明の実施形態によれば、ボディ間のロック、すなわち、モータによって生じるロック又は結合されたボディ間の同タイプの拘束から生じるロックを処理する手段が提供される。
【００７５】
上述した拘束方程式により、カップリングにおける各ボディの運動を他のボディの運動に反映させることができる。混合タイプのカップリング又は軸線が整合していないカップリングでは、複数のボディが共通に１つのモータにロックされている場合であっても運動の実行が許容されるため、本発明の方法から利点を得ることができる。
【００７６】
当業者には、簡明性のために、本発明の利用に適したデータ処理装置の構造及び動作の全てを図示乃至説明してはいないことが理解されるであろう。むしろ、本発明に独特な、又は、本発明の理解にとって必須のデータ処理装置の要素のみを図示乃至説明した。データ処理装置１００の他の構造及び動作は従来知られている種々の現行のいずれのものに対応していてもよい。
【００７７】
さらに、本発明を１つの完全な機能的装置のコンテクストにおいて説明したが、当業者であれば、本発明の機構の少なくとも一部を複数の命令形式に分散して、機械もしくはコンピュータで利用可能な、又は、コンピュータで読み出し可能な種々の形状の媒体に含めてもよいことに注意が必要である。なお、本発明は、実際の配布の実行に利用される、命令もしくは信号を担持する媒体又は記憶媒体の特定のタイプにかかわらず、等しく適用可能である。機械もしくはコンピュータで利用可能な、又は、機械もしくはコンピュータで読み出し可能な記憶媒体の例として、不揮発性の硬性符号化タイプの媒体、例えば、読み出し専用メモリＲＯＭもしくは電気的に消去可能かつ再プログラミング可能な読み出し専用メモリＥＥＰＲＯＭ、及び、ユーザが記録可能なタイプの媒体、例えばフロッピーディスク、ハードディスクドライブ、コンパクトディスク読み出し専用メモリＣＤ‐ＲＯＭもしくはディジタルヴァーサティルディスクＤＶＤなどが挙げられる。
【００７８】
本発明を典型的な実施形態に即して具体的に説明したが、当業者は、本発明の最も広い意味での思想乃至観点を逸脱することなく、上述した種々の変更、置換又は修正及び改善を行えることを理解するであろう。
【００７９】
本願明細書のいずれの記載も、特定の要素、ステップもしくは機能が特許請求の範囲に含まれなければならない必須要件であることを示唆すると捉えられるべきでない。請求される発明特定事項の領域は特許請求の範囲の事項においてのみ規定される。また、本願のいずれの請求項も、項番号に続く「〜のための手段」という厳密な語句を含まない場合、米国特許法第１１２条第６項（３５ＵＳＣ§１１２パラグラフ６）の誘起を意図しない。
【図１】
0006279753.tif 000002
【図２】
0006279753.tif 000003
【図３】
0006279753.tif 000004
【図４】
0006279753.tif 000005
【図５】
0006279753.tif 000006
【図６】
0006279753.tif 000007
【図７】
0006279753.tif 000008
【図８】
0006279753.tif 000009