表記とシンタックス
MotionSolveの入力フォーマットは、拡張マークアップ言語(XML)に基づいています。この入力フォーマットはMotionSolve XMLと呼ばれています。このセクションでは、MotionSolve XMLの表記とシンタックスについて説明します。また、MotionSolve XMLファイルの生成方法についても説明します。
MotionSolve XMLファイルはいくつかの要素に分かれます。各要素は、特定のMotionSolveモデリングまたはコマンド要素を定義します。要素は標準のXMLスタイルで区切られます:
<Element_Name
…
</Element_Name>
<Element_Name
…
/>
<Element_Name … />
省略記号(...)は、複雑なシンタックスを短くするために、ステートメントのセクションを省略したことを意味します。モデリングまたはコマンド要素に入れ子の要素が含まれている場合は、外側の要素を短縮形で記述することはできません。
MotionSolve XML要素には、定義するモデリングまたはコマンド要素に固有の属性のセットが含まれています。マニュアルでは、要素、属性、およびそれらの値は、必ず青色で表示されます。
MotionSolve XML属性は大文字と小文字が区別されません。ソルバーでは、以下はすべて等価です。
SENSOR_EVENT, Sensor_Event, sensor_event
- 要素名は、先頭の文字を大文字にして、単語間をアンダースコアで区切ります。以下に例を挙げます:
Sensor_Event, Body_Rigid, Param_Transient, Reference_Marker
- 属性名は小文字で表記されます。以下に例を挙げます:
stability, mass_unit, integrator_type, inertia_xy
属性には、1つの以上の値を関連付けることができます。ジェネリック値は、通常、次のように斜体で示されます:
<Sensor_Event
ID = "integer"
… >
</Sensor_Event>
<Contact
...
i_graphics_id = "123 456 789 321 654 987"
...
/>
-
<Reference_Variable id = "1" type = "EXPRESSION" expr = "VX(301)" />
-
<Reference_Variable id="1" type="EXPRESSION" expr="VX(301)" />
... ... ...
id = 1234 id=1234 id = 1234
... ... ...
角括弧(“[”と“]”)はオプション属性を示します。“[”と“]”は要素の一部ではなく、属性とその値が省略可能であることを表すためだけに存在します。例えば、以下のステートメントでは、属性labelが省略可能です。これは、構文的に次のように表されます:
<Sensor_Event
id = "integer"
[label = "This is a label"]
...
/>
選択肢のセットの中から1つのメンバーを選択する必要がある場合は、選択肢全体を中括弧(“{”と“}”)で囲み、それぞれの値を“|”で区切ります。下の例では、EXPRESSIONとUSERSUBのどちらかを選択する必要があります。
<Sensor_Event
id = "integer"
type = {"EXPRESSION" | "USERSUB"}
…
/>
属性値
属性には、複数種類の値を含めることができます。必須の値タイプは、必ず、モデリングおよびコマンド要素のフォーマット指定で示されます。
- stringは、キーワードの値を任意の文字列にできることを意味します。
- integerは、値を整数にする必要があることを意味します。整数が必要な状況で実数値データが提供された場合、データは格納される前に整数フォーマットにキャストされます。
- realは、値を実数にする必要があることを意味します。科学的記数法を使用して実数値データを表すこともできます。実数値が必要な状況で整数値データが提供された場合、データは格納される前に実数に変換されます。
- motionsolve_expressionは、値をMotionSolveが理解できる適切な表現にする必要があることを意味します。
- valid_path_nameは、値が特定のファイルの完全なパス名であることを示します。この規則は、オペレーティングシステムによって異なります。
- ブール値は、"TRUE"または"FALSE"で示されます。これらが斜体で表記されることはありません。
- 値が特定の文字列の場合や“二重引用符”で囲まれている場合、値自体は斜体で表記されません。
... ...
ID.=.1.234 HALT="T.RUE"
...
ユーザーサブルーチンパラメータ
usrsub_param_string = "USER(par_1, ..., par_n)"
例
<Sensor_Event
label = "string"
id = "integer"
value = "real"
{
type = "EXPRESSION"
expr = "motionsolve_expression"
|
type = "USERSUB"
usrsub_dll_name = "valid_path_name"
usrsub_param_string = "USER(par_1, ..., par_n)"
|
type = "USERSUB"
script_name = "valid_path_name"
interpreter = {"PYTHON" | "MATLAB"}
usrsub_param_string = "USER(par_1, ..., par_n)"
}
[compare = { "GE" | "LT" | "EQ" } ]
[evaluate_id = "integer"]
[error_tol = "real"]
[return = {"TRUE" | "FALSE"}]
/>