Expression Builderの使用
Expression Builderでは、長い式を手作業で入力する必要や式を覚える必要もなく、数式をテキストボックスに入力できます。Expression Builderは、モデルパラメータの関数である数式の構築に使用できます。
MotionViewでは、次の2種類の式を作成できます。
- パラメトリックな式
- ソルバー関数
MotionViewでは、HyperWorksのデスクトップで動作するテキストと数値のパーサーであるTemplexを使用して、パラメトリックな式とソルバー関数の両方を評価します。
パラメトリックな式
この式は、モデリングエンティティの値のいずれかをモデル内の別のエンティティに関連付けるために作成されます。パラメトリックな式から返される値のデータタイプは、パラメトリックな式で定義されるエンティティの欄内のデータタイプと一致する必要があります。例えば、パラメトリックな式でMotionViewのポイントの位置を定義している場合、そのパラメトリックな式から実数が返される必要があります。パラメトリックな式から返されたデータタイプが正しくない場合は、“Error Evaluating”のメッセージがデータ入力欄に表示されます。この入力欄は、ポイント、ボディ、ブッシュ、スプリングダンパ、フォースなど、MotionViewのモデリングエンティティのエンティティパネルにあります。
また、パラメトリックな式では、Templexのテキストと数値の言語に用意されている数学演算子と数学関数も使用できます。
- 例1
-
モデルの中で変数名として“p_1”と“p_2”を持つ2つのポイントについて考えます。“p_1”のX位置から+10単位離して“p_2”のX位置をパラメトリックに配置するには、Templexのパラメトリックな式を使用できます。“p_1”の“x”座標のパラメトリック値は、データメンバー“x”であり、式“p_1.x”で指定します。したがって、ポイント1のX位置から+10単位離してポイント“p_2”を配置するには、下の図に示すように、式“p_1.x + 10”を“p_2”のX座標欄に入力します。
- 例2
-
以下の例では、ボディのX軸を中心とした慣性モーメントをパラメータ化するためにExpression Builderを使用します。このパラメトリックな式では、変数名が“b_body”であるボディの重量を、旋回半径を表すデータセット変数“k”の2乗で乗算します。重量と旋回半径の実際の値を指定するには、変数名に続けて“.”とデータメンバー名を記述する必要があります。下の例では、ステートメントの“b_body.mass”と“ds.k.value”を指定してボディの重量と旋回半径の値を使用しています。
ソルバー関数
- ソルバー関数は、その全体をバッククォーテーション(
``
)で囲んで記述します。 - ソルバー関数内部のパラメトリックな式は中括弧({})で囲まれます。バッククォーテーションで囲まれたソルバー関数がMotionViewによって検出されると、ソルバー入力ファイル(MotionSolveの.xmlファイル)にモデルがエクスポートされる際に、中括弧で囲まれたすべてのパラメトリックな式がTemplexパーサーによって評価されます。つまり、中括弧で囲まれたTemplex演算子、関数、および変数名ではなく、評価されたパラメトリックな式がソルバー入力ファイルに書き込まれます。
- 式の中括弧で囲まれていない部分は、評価されずにソルバー入力ファイルに直接書き込まれます。
- ソルバー関数がバッククォーテーションで囲まれていない場合、Templexパーサーを使用してMotionViewによって式全体が評価されますが、多くの場合はエラーが発生します。
- 例
-
MotionSolve STEP関数を使用して、MotionViewで次の式が作成されます。
`STEP(TIME,1,0,1.5, 500*DX({m_1.idstring},{m_2.idstring})`
ソルバー関数式の評価ルールに従って、MotionViewでは中括弧に囲まれたTemplex値のみが評価され、関数にある他のテキストはすべて無視されます。この特定のケースでは、MotionViewのパラメトリック変数である“m_1.idstring”と“m_2.idstring”が、“m_1”と“m_2”を変数名とするマーカーエンティティのID(文字列形式)に評価されます。したがって、MotionViewによってMotionSolveの入力デックが作成されると、.xmlファイルに以下の図の式が作成されます(m_1とm_2のマーカーIDがそれぞれ30102010と30102011であるとしています)。
正しいパラメトリック引数がソルバー関数に指定されるようにするには、以下の図に示すように、Evaluatedチェックボックスをアクティブにしてソルバー式を評価します。
注: マーカーとその他のMotionSolveエンティティのIDは、モデルをソルバーにエクスポートするか、MotionViewの“Check Model”操作を実行するまで定義されません。したがって、パラメトリックな式をExpression Builderダイアログボックスで評価すると、Expression BuilderのマーカーIDが空白で表示される場合があります。Evaluatedチェックボックスをチェックした場合は、Templexパーサーがソルバー関数(中括弧で囲まれたパラメトリック値と式)にのみ適用されます。式にある他の情報の正しい形式はソルバーに依存することから、MotionViewではチェックされません。例えば、Step関数に“stp”と記述した場合、MotionViewでは、Evaluatedがアクティブになっていてもエラーメッセージが生成されません。一方、MotionSolveでは実行時にエラーが発生します。