Pforce
Model ElementPforceは、MotionSolve式で定義します。
クラス名
Pforce
説明
一般化力は、拘束の定義に関与するすべての座標に作用します。
Pforceは、3通りの実装で使用できます。
属性の概要
名前 | プロパティ | コマンドで変更可能か | 設計可能か |
---|---|---|---|
id | Int () | ||
label | Str () | ○ | |
penalty | Double () | ○ | FDのみ |
penalty1 | Double () | ○ | FDのみ |
unilateral | Bool () | ○ | |
smoothing_factor | Double () | ○ | FDのみ |
function | Function ("PFOSUB") | ○ | |
routine | Routine () | ||
active | Bool () | ○ |
使用法
#1. Constraint defined in a MotionSolve expression
Pforce (function=expressionString, penalty=double, optional_attributes)
#2. Constraint defined in a compiled DLL
Pforce (function= userString, penalty=double, routine=string, optional_attributes)
#3. Constraint defined in a Python/Matlab script
Pforce (function= userString, penalty=double, routine=functionPointer, optional_attributes)
属性
- function
- 有効なMotionSolve式を定義する文字列。
- penalty
- 倍精度
- function
- 有効なユーザー関数MotionSolve式を定義する文字列。
- penalty
- 倍精度
- routine
- 文字列
- function
- 有効なユーザー関数MotionSolve式を定義する文字列。
- penalty
- 倍精度
- routine
- Python内の呼び出し可能な関数へのポインタ。
- id
- 整数
- label
- 文字列
- penalty1
- 倍精度
- unilateral
- ブール
- smoothing_factor
- 倍精度
- active
- ブール
例
- 懸垂線上を滑る粒子XMLシンタックス
<Force_Penalty id = "1" label = "Particle on a catenary" type = "Expression" expr = "dy (9) - cosh(dx(9))" penalty = "1E4" penalty1 = "1E2" />
Pythonシンタックスpf1 = Pforce (label="particle sliding on a catenary", function= "dy(9)-cosh(dx(9))", penalty=1e4, penalty1=1e2)
- の領域内を動くようにポイントPの動きを強制します。 1+x < = yXMLシンタックス
<Force_Penalty id = "10" label = "Enforce 1+x < y" type = "EXPRESSION" expr = "1 + dx(10) - dy(10)" penalty = "1E4" penalty1 = "1E2" unilateral = "True" smoothing_factor = "1.0" />
Pythonシンタックスpf2 = Pforce (label="Enforce 1+x < = y", function="1+dx(10)-dy(10)", penalty=1e4, penalty1=1e2, unilateral=True, smoothing_factor=1)
- 1+x < = zかつの領域内を動くようにポイントPの動きを強制します。 1-x ≤
zXMLシンタックス
<Force_Penalty id = "1" label = "Enforce 1+x <=z" type = "EXPRESSION" expr = "1+dx(10)-dz(10)" penalty = "1E4" penalty1 = "1E2" unilateral = "True" smoothing_factor = "1.0" />
<Force_Penalty id = "2" label = "Enforce 1-x <=z" type = "EXPRESSION" expr = "1-dx(10)-dz(10)" penalty = "1E4" penalty1 = "1E2" unilateral = "True" smoothing_factor = "1.0" />
Pythonシンタックスpf3 = Pforce (label="Enforce 1+x < = z", function="1+dx(10)-dz(10)", penalty=1e4, penalty1=1e2, unilateral=True, smoothing_factor=1) pf4 = Pforce (label="Enforce 1-x < = z", function="1-dx(10)-dz(10)", penalty=1e4, penalty1=1e2, unilateral=True, smoothing_factor=1)