編集の前の段階では、ステートメントは次のように見えます:
*SetForce( force_1, EXPR, `step(TIME,.3,0,.31,10) +step(TIME,.31,0,.32,-10)`)
考え方としては、ドットオペレータを使ってモデルの階層構造をブラウズし、データセット値にアクセスします。これは、下記のとおりです:
*SetForce(force_1, EXPR, `step(TIME, {ds_force.start_time.value}, 0,
{ds_force.mid_time.value},
{ds_force.force_magnitude.value}) + step(TIME,
{ds_force.mid_time.value}, 0, {ds_force.end_time.value}, -
{ds_force.force_magnitude.value})`,0,0)
かぎ括弧{ }内の式は、MotionViewでTemplexによって処理され、データセット内で定義された適切な値に評価されます。
アナリシス定義は、下に示す例のようになるはずです:
*Include("dataset.mdl")
*DefineAnalysis( def_ana_0,j_att )
*Attachment(j_att, "Joint Attachment", Joint, "Select joint to apply
torque")
*DataSet(ds_force, "Force Data", ds_def_force)
*SetReal(ds_force.start_time, 0.3)
*SetReal(ds_force.mid_time, 0.31)
*SetReal(ds_force.end_time, 0.32)
*SetReal(ds_force.force_magnitude, 10)
*ActionReactionForce( force_1, "Torque", ROT, j_att.b1, j_att.b2,
j_att.origin, Global_Frame )
*SetForce(force_1, EXPR, `step(TIME, {ds_force.start_time.value}, 0,
{ds_force.mid_time.value}, {ds_force.force_magnitude.value}) +
step(TIME, {ds_force.mid_time.value}, 0, {ds_force.end_time.value}, -
{ds_force.force_magnitude.value})`)
*Output( o_force, "Input Torque", FORCE, FORCE, force_1, Global_Frame)
*EndDefine()