Vforce
Model ElementVFORCEは、2つのマーカー間で作用する一般力を定義します。
クラス名
Vforce
説明
力ベクトルは、3つ目のマーカーを基準にして、3つの成分により定義されます。成分は、MotionSolveの式を使用するか、ユーザー定義のサブルーチンを使用して定義できます。任意のシステム状態および時間の関数にできます。
属性の概要
名前 | プロパティ | コマンドで変更可能か | 設計可能か |
---|---|---|---|
id | Int () | ||
label | Str () | ||
i | Reference (Marker) | ○ | ○ |
jfloat | Reference (Marker) | ○ | ○ |
rm | Reference (Marker) | ○ | ○ |
fx | Function () | ○ | ○ |
fy | Function () | ○ | ○ |
fz | Function () | ○ | ○ |
function | Function ("VFOSUB") | ○ | |
routine | Routine () | ||
active | Bool () | ○ |
使用法
#1. Force defined in a MotionSolve expression Vforce (i=objMarker, j=objMarker, fx=expressionString, fy=expressionString, fz=expressionString, optional_attributes)
#2. Force defined in a compiled DLLVforce (i=objMarker, j=objMarker, function=userString, routine=string, optional_attributes)
#3. Force defined in a Python scriptVforce (i=objMarker, j=objMarker, function=userString, routine=functionPointer, optional_attributes)
属性
- i
- 既存のMarkerオブジェクトへの参照。
- j
- 既存のフローティングMarkerオブジェクトへの参照。
- fx
- 有効なMotionSolve式を定義する文字列。
- fy
- 有効なMotionSolve式を定義する文字列。
- fz
- 有効なMotionSolve式を定義する文字列。
- i
- 既存のMarkerオブジェクトへの参照。
- j
- 既存のフローティングMarkerオブジェクトへの参照。
- function
- 有効なユーザー関数MotionSolve式を定義する文字列。
- routine
- 文字列。
- i
- 既存のMarkerオブジェクトへの参照。
- j
- 既存のフローティングMarkerオブジェクトへの参照。
- function
- 有効なユーザー関数MotionSolve式を定義する文字列。
- routine
- Python内の呼び出し可能な関数へのポインタ。
- id
- 整数
- label
- 文字列
- rm
- 既存のMarkerオブジェクトへの参照
例
- 式を介して定義されるVforce。
Vfo1 = Vforce (label="nonlinear bushing", i=m1801, jfloat=m1901, rm=m1903, fx="-1e3*DX(1801,1903,1903) -2*(VX(1801,1903,1903,1903)**3)", fy="-1e3*DY(1801,1903,1903) -2*(VY(1801,1903,1903,1903)**3)", fz="-1e3*DZ(1801,1903,1903) -2*(VZ(1801,1903,1903,1903)**3)")
- Python関数で定義されるVforce。
# Define the user subroutine first def myVfosub (id, time, par, npar, dflag, iflag): i = par[0] j = par[1] k = par[2] c = par[3] # Get the state of the bushing dx = DX(i,j,j) dy = DY(i,j,j) dz = DZ(i,j,j) vx = VX(i,j,j,j) vy = VY(i,j,j,j) vz = VZ(i,j,j,j) # Compute force fx = -k*dx - c*(vx**3) fy = -k*dy - c*(vy**3) fz = -k*dz - c*(vz**3) return [fx, fy, fz]
vfo2 = Vforce (label= "nonlinear bushing" , i=m1801, jfloat=m1901, rm=m1903,
function= "user(1801,1903,1000.0, 2.0)" , routine=myVfosub )
コメント
- プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
- Vforceの詳細については、Force: Two Body Vectorをご参照ください。