MODFNC

Utility/Data Access SubroutineXMLソルバー入力ファイルで指定されたモデルデータを取得します。

使用

この関数は、任意のユーザー定義のサブルーチンから呼び出すことができます。

フォーマット

Fortranの呼出し構文
MODFNC(ELEMENT, ID, ATTRIBUTE, OUTPUT, INFO)
C/C++の呼出し構文
c_modfnc (element, id, attribute, output, info)
Pythonの呼出し構文
[output, info] = py_modfnc(element, id, attribute)
MATLABの呼出し構文
[output, info] = m_modfnc(element, id, attribute)

属性

ELEMENT
[文字列]
XML要素の名前。
ID
[整数]
要素の識別子。
Attribute
XML要素に関連付けられた属性の名前。

出力

OUTPUT
[文字列]
文字列としてキャストされた属性の値。
INFO
[整数]
呼び出しステータスまたは戻り値タイプに関する情報。負の値は、モデルデータの取得に失敗したことを示します。正の値は、下の表に示す戻り値のタイプを示します。
ATTRIBUTE
[文字列]
-1
要素名が認識されないか、サポートされていません。
-2
IDが見つからないか、無効です。
-3
属性名が認識されないか、サポートされていません。
0
出力文字列に論理FALSE("FALSE")が含まれます。
1
出力文字列に論理TRUE("TRUE")が含まれます。
2
出力文字列に整数("30101"など)が含まれます。
3
出力文字列に整数の配列("1 2 3"など)が含まれます。
4
出力文字列に倍精度値("1.234"など)が含まれます。
5
出力文字列に倍精度値の配列("1.234 56.789"など)が含まれます。
6
出力文字列に単一文字("R"など)が含まれます。
7
出力文字列に文字の配列("Wheel Left"など)が含まれます。

次のようなXMLファイルでid=30101010のマーカーのbody_idにアクセスするには:

<Reference_Marker
     id                  = "30101010"
     body_id             = "30101"
     body_type           = "RigidBody"
  />

呼び出し可能なFortranユーザーサブルーチンから

CALL MODFNC('Reference_Marker',30101010,'body_id', STRG,INFO)
CALL STR2INTARY(STRG, ARRAY, NSIZE, ISTAT)

この例では、STRGが‘30101’の値を返し、INFOが単一の整数を示す2の値を返します。 STRGを入力として使用したSTR2INTARYに対する後続の呼び出しで、ARRAY(1)=30101NSIZE=1、およびISTAT=0(正常復帰)が出力されます。

コメント

  1. 入力は大文字と小文字が区別されません。
  2. 出力文字列内に十分な記憶域を用意してください。
  3. 次のモデルおよびコマンド要素をMODFNCデータアクセスサブルーチンを使用して問い合わせることができます。
    要素クラス 要素名
    Reference Reference_Marker、Reference_Spline、Reference_Variable、Reference_Matrix、Reference_FlexData、Reference_Array、Reference_ParamCurve、Reference_DeformCurve、Reference_ParamSurface、Reference_DeformSurface、Reference_String、Reference_2DCluster
    Post Post_Graphic、Post_Request
    Constraint Constraint_Joint、Constraint_JPrim、Constraint_Mate、Constraint_Coupler、Constraint_PTCV、Constraint_PTdCV、Constraint_PTdSF、Constraint_CVCV、Constraint_PTSF、Constraint_CVSF、Constraint_SFSF、Constraint_Gear、Constraint_UserConstr、Constraint_General
    Force Force_Gravity、Force_SpringDamper、Force_Bushing、Force_Beam、Force_Field、Force_MultiPoint、Force_FlexModal、Force_Scalar_TwoBody、Force_Contact、Force_PTdSF、Force_StateEqn、Force_Penalty、Force_JointFriction、Force_Vector_OneBody、Force_Vector_TwoBody
    Body Body_Rigid、Body_Flexible、Body_Point
    Motion Motion_Marker、Motion_Joint
    Control Control_Diff、Control_SISO、Control_StateEqn、Control_PlantInput、Control_PlantOutput
    Param Param_Transient、Param_Static、Param_Linear、Param_Simulation、Param_Unit
    Sensor Sensor_Event, Sensor_Evaluate, Sensor_Proximity
    JointInitialVel JointInitialVel_Rev、JointInitialVel_Trans、JointInitialVel_Cyl
    Simulate(コマンド) Simulate
  4. 出力文字列を処理するには、STR2INTARYまたはSTR2DBLARYを呼び出して、info = 23の場合は出力を文字列から整数に、info = 45の場合は出力を文字列から倍精度値に変換します。