サポートされているソルバーサブルーチン

ユーザーサブルーチンを書くにはまず、どういったユーザーサブルーチンを使用する必要があるのかを決定し、プログラミング言語を選ぶ必要があります。

サポートされているソルバーサブルーチンおよび対応するユーザー定義のエンティティは下記のとおりです。
サブルーチン名
対応するMotionSolve XML要素
ARYSUB
<Reference_Array>
CNFSUB
<Force_Contact> - 垂直効力のみ
CFFSUB
<Force_Contact> - 摩擦力のみ
CONSUB
<UserProgramControl>
CONTACTPOST
<Force_Contact> - 接触結果のカスタムプロセッシング
COUSUB/COUXX/COUXX2
<Constraint_Coupler>
CURSUB
<Reference_ParamCurve>
DIFSUB
<Control_Diff>
DMPSUB
<Body_Flexible>
FIESUB
<Force_Field>
GCOSUB
<Constraint_General>
GFOSUB
<Force_Vector_OneBody|TwoBody> - タイプがForceAndTorqueである場合
GRASUB
<Post_Graphic>
GSESUB/GSEXX/GSEXU/GSEYU/GSEYX
<Control_StateEqn>
MARKER_READ
<Reference_Marker>
MATRIX_READ
<Reference_Matrix>
MESSAGE_SUB
<Messaging>
MFOSUB
<Force_FlexModal>
MOTSUB
<Motion_Joint|Marker>
NFOSUB
<Force_MultiPoint>
PFOSUB
<Force_Penalty>
PINSUB
<Control_PlantOutput>
POST_SUB
<Post_UserAPI>
POUTSUB
<Control_PlantOutput>
PTDSFSUB
<Force_PTdSF>
RELSUB
<Load_Model>
REQSUB
<Post_Request>
SAVSUB
<Save>
SENSUB
<Sensor_Event>
SEVSUB
<Sensor_Evaluate>
SFOSUB
<Force_Scalar_TwoBody>
SPLINE_READ
<Reference_Spline>
STRING_READ
<Reference_String>
SURSUB
<Reference_ParamSurface>
TUNSUB
<Param_Simulation>
UCOSUB
<Constraint_UserConstr>
VARSUB
<Reference_Variable>
VFOSUB
<Force_Vector_OneBody|TwoBody> - タイプがForceOnlyである際
VTOSUB
<Force_Vector_OneBody|TwoBody> - タイプがTorqueOnlyである際
YFOSUB/YFOXU/YFOXX/YFOYU/YFOYX
<Force_StateEqn>

ユーザーサブルーチンの作成を助けるために、Fortran、C/C++、Python、およびCompose/MATLABプログラミング言語 / スクリプト言語でサポートされている各ルーチンについて1つずつ、一連のシンプルなルーチンテンプレートがインストレーションに含まれています。これらのテンプレートは、下記のインストレーションディレクトリにあります:

<install-path>\hwsolvers\motionsolve\usersub\f_src
<install-path>\hwsolvers\motionsolve\usersub\c_src
<install-path>\hwsolvers\motionsolve\usersub\mex
<install-path>\hwsolvers\motionsolve\usersub\py_src

また、インストレーションディレクトリに含まれるものに、ユーザーライブラリ(DLL、Dynamic-Link Library)の作成にオプションとして使用されるMicrosoft Visual Studio Projectファイルもあります。

C/C++のシンプルルーチンテンプレートは、必要とされるインクルードステートメントを含んでいます:
  • C/C++コードの場合、msolvsub_c_include.h

この外部ファイルは、起動可能である様々なユーティリティ関数のシンボルの解決に使用されます。これらには、SYSFNC、AKISPLのようなユーティリティ関数の関数プロトタイプや、システムの状態(変位、速度、加速度、荷重など)とMotionSolveの状態(現在のシミュレーション時間、ソルバーモードなど)へのアクセスに使用可能なその他すべてのユーティリティ関数が含まれています。

Microsoft Visual Studioを、提供されているプロジェクトファイル(すべてのコンパイラおよびリンカーオプション、生成されるDLLの名称、およびDLL生成に使用されるすべてのソースファイルへのポインタを含む)と使用し、DLLの作成プロセスを簡易化することが可能です。