サポートされているソルバーサブルーチン
ユーザーサブルーチンを書くにはまず、どういったユーザーサブルーチンを使用する必要があるのかを決定し、プログラミング言語を選ぶ必要があります。
- サブルーチン名
- 対応する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++コードの場合、msolvsub_c_include.h
この外部ファイルは、起動可能である様々なユーティリティ関数のシンボルの解決に使用されます。これらには、SYSFNC、AKISPLのようなユーティリティ関数の関数プロトタイプや、システムの状態(変位、速度、加速度、荷重など)とMotionSolveの状態(現在のシミュレーション時間、ソルバーモードなど)へのアクセスに使用可能なその他すべてのユーティリティ関数が含まれています。
Microsoft Visual Studioを、提供されているプロジェクトファイル(すべてのコンパイラおよびリンカーオプション、生成されるDLLの名称、およびDLL生成に使用されるすべてのソースファイルへのポインタを含む)と使用し、DLLの作成プロセスを簡易化することが可能です。