Model Element Part は、MotionSolve 内の剛体オブジェクトを定義します。このエンティティには、質量プロパティと慣性プロパティがあります。
属性の概要
名前
プロパティ
コマンドで変更可能か
設計可能か
id
Int ()
label
Str ()
○
ground
Bool ()
planar
Enum ("XY YZ ZX YX ZY XZ")
qg
Location (Point ())
○
zg
Location ()
○
xg
Location ()
○
zv
Location ()
○
xv
Location ()
○
reuler
Angles ()
○
mass
Double ()
○
○
cm
Reference ("Marker")
○
im
Reference ("Marker")
○
ip
Ips ()
○
○
material
String ("Steel")
vx
Double (None)
○
FDのみ
vy
Double (None)
○
FDのみ
vz
Double (None)
○
FDのみ
wx
Double (None)
○
FDのみ
wy
Double (None)
○
FDのみ
wz
Double (None)
○
FDのみ
vm
Reference ("Marker")
FDのみ
wm
Reference ("Marker")
FDのみ
exact
Exact ()
function
Function ("MASS_READ()")
routine
Routine
使用法
Part ( optional_attributes ) # All attributes are optional
属性
id
整数
要素識別番号を指定します。この番号は、モデル内のすべてのPart オブジェクトの中で一意にする必要があります。
この属性は省略可能です。MotionSolve は、IDが指定されていない場合、自動的にこれを作成します。
値の範囲:id > 0。
label
文字列
Part オブジェクトの名前を指定します。
この属性は省略可能です。指定しない場合は、MotionSolve が代わりにラベルを作成します。
ground
ブール
定義するPart が地面PART かどうかを指定します。
値True は、定義するPARTが地面PART であることを示します。値False は、Part が地面Part でないことを示します。
この属性は省略可能です。指定しない場合は、デフォルトでFalse になります。
値の有効範囲:True 、False 。
mass
倍精度
PART オブジェクトの質量を指定します。
属性mass は省略可能です。Part が完全に拘束されており、拘束力に注目する必要がない場合、質量を指定する必要はありません。指定しない場合、mass は0になります。
値の有効範囲:mass ≥ 0.0
cm
マーカーへの参照
PART の質量中心に配置されるMarker を指定します。
属性cm は省略可能です。Part が完全に拘束されており、拘束力に注目する必要がない場合、質量と慣性を指定する必要はありません。これらを指定しない場合、cm は指定しないでください。注: 循環参照を排除するため、ボディは2つのステップで作成されます。まず、CMマーカーを使用せずにボディが定義されます。次に、CM属性が明示的に定義されます。例3~5をご参照ください。
im
マーカーへの参照
PART の慣性マトリクスを計算する座標系を持つMarker を指定します。
属性im は省略可能です。指定しない場合、im はデフォルトでCMマーカーになります。注: IM 属性は2ステップで定義されます。まず、IMマーカーを使用せずにボディが定義されます。次に、IM 属性が明示的に定義されます。例5をご参照ください。
ip
3つの倍精度値のリストまたは6つの倍精度値のリスト。
IMマーカーのx、y、z軸に関するPART の質量慣性モーメントマトリクスを指定します。
ip 属性は省略可能です。指定しない場合は、ゼロマトリクスと見なされます。Part が完全に拘束されており、拘束力に注目する必要がない場合、ip を指定する必要はありません。
下の順で対角エントリのみ[Ixx, Iyy, Izz]またはフルマトリクス[Ixx, Iyy, Izz, Ixy, Ixz, Iyz]を指定できます。
qg
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーの座標を指定します。このマーカーは、このPART で定義されたすべてのマーカーの参照座標系として使用されます。
qg 属性は省略可能です。指定しない場合、全体座標系の原点(0, 0, 0)と一致すると見なされます。
zg
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーのz軸上のポイントの座標を指定します。このマーカーは、このPart で定義されたすべてのマーカーの参照座標系として使用されます。
zg 属性は省略可能です。指定しない場合、ポイントは全体座標系z軸上にあると見なされます。
zg /xg 属性は、zv /xv 、reuler 、およびfunction と相互に排他的です。指定できるのはその中の1つだけです。
xg
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーのx軸上のポイントの座標を指定します。このマーカーは、このPart で定義されたすべてのマーカーの座標系として使用されます。
xg 属性は省略可能です。指定しない場合、ポイントは全体座標系x軸上にあると見なされます。
zg /xg 属性は、zv /xv 、reuler 、およびfunction と相互に排他的です。指定できるのはその中の1つだけです。
zv
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーのz軸を指定します。このマーカーは、このPart で定義されたすべてのマーカーの参照座標系として使用されます。zv 属性は省略可能です。指定しない場合、z軸は全体座標系z軸と見なされます。
zv /xv 属性は、zg /xg 、reuler 、およびfunction と相互に排他的です。指定できるのはその中の1つだけです。
xv
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーのx軸を指定します。このマーカーは、このPart で定義されたすべてのマーカーの座標系として使用されます。
xv 属性は省略可能です。指定しない場合、x軸は全体座標系x軸と見なされます。
zv /xv 属性は、zg /xg 、reuler 、およびfunction と相互に排他的です。指定できるのはその中の1つだけです。
reuler
3つの倍精度値のリスト。
全体座標系に対する局所パート参照マーカーのボディ固定3-1-3オイラー角を指定します。このマーカーは、このPart で定義されたすべてのマーカーの参照座標系として使用されます。
reuler 属性は省略可能です。指定しない場合は、(0, 0, 0)、つまり、局所パート参照マーカーが全体座標系と同じ向きであると見なされます。
reuler 属性は、function 、zg /xg 、およびzv /xv と相互に排他的です。指定できるのはその中の1つだけです。
vm
マーカーへの参照。
PART の初期並進速度(vx 、vy 、vz )を定義するために座標系が使用されるマーカーを指定します。
指定しない場合、vm はデフォルトで全体座標系になります。
vx
倍精度
VMマーカーのx軸に沿ったPART の初期並進速度を指定します。
vx 属性は省略可能です。
指定しない場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
指定した場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
vy
倍精度
VMマーカーのy軸に沿ったPART の初期並進速度を指定します。
vy 属性は省略可能です。
指定しない場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
指定した場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
vz
倍精度
VMマーカーのz軸に沿ったPART の初期並進速度を指定します。vz 属性は省略可能です。
指定しない場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
指定した場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
wm
マーカーへの参照
PART の初期角速度(wx 、wy 、wz )を定義するために座標系が使用されるマーカーを指定します。
指定しない場合は、デフォルトでPART CM座標系になります。
wx
倍精度
WMマーカーのx軸周りのPART の初期角速度を指定します。
wx 属性は省略可能です。
指定しない場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
指定した場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
wy
倍精度
WMマーカーのy軸周りのPART の初期角速度を指定します。
wy 属性は省略可能です。
指定しない場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
指定した場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
wz
倍精度
WMマーカーのz軸周りのPART の初期角速度を指定します。
wz 属性は省略可能です。
指定しない場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう、内部計算を実行します。
指定した場合、MotionSolve は、すべてのパートの速度が拘束の1次時間導関数と一致するよう内部計算を実行する際、指定された値を維持しようとします。
planar
次の文字列のいずれか:"XY" "YZ" "ZX" "YX" "ZY" "XZ"
このボディがある平面内で移動するように拘束されること、およびその平面を指定します。
属性planar は省略可能です。
適切な値:"XY "、"YZ "、"ZX "、"YX "、"ZY " 、または"XZ "
function
文字列
データファイルから定義されたユーザー作成サブルーチンに渡されるパラメータのリストを指定します。
属性function は省略可能です。
function 属性は、reuler とzg /xg と相互に排他的です。指定できるのはその中の1つだけです。
routine
文字列または関数へのポインタ
ユーザーサブルーチンの代替名を指定します。
属性routine は省略可能です。ユーザーサブルーチンのデフォルト名はMASS_READ です。
例
地面PART を作成します。ground = Part (ground=True )
全体座標系の原点にあり、質量と慣性が0のダミーPART を作成します。dummyBody = Part ()
質量はあるが、慣性がないPART を作成します。body1 = Part (mass=1)
body1.cm = Marker (body=body1, qp=[12, -13, 14 ], zp=[14, -13, 14 ])
注: 循環参照を排除するため、ボディは2つのステップで作成されます。まず、CMマーカーを使用せずにボディが定義されます。次に、CM属性が明示的に定義されます。
局所パート参照マーカーを含むPART を作成します。body2 = Part (mass=1 , qg=[10, 0, 0 ], zg=[10, 1, 0 ], xg=[10, 0, 1 ])
body2.cm = Marker (body=body2, qp=[12, -13, 14 ], zp=[14, -13, 14 ])
質量、慣性、初期並進速度、および初期回転速度を持つPART を作成します。body0 = Part (label="body 0" , mass=1 , ip=[0.0004892316,0.0004892316,0.0004892316,0,0,0 ], vx=1 , vy= 0 , vz=0 , wx=2 , wy=3 , wz=4 )
body0.cm = Marker (body=body0, qp= qp=[12, -13, 14 ], zp=[14, -13, 14 ])
body0.im = body0.cm
“dot”演算子を使用したPART の属性の“取得”。5つ目の例を使用して剛体オブジェクトが作成されているものとします。dot演算子は、次のように、パートの属性を取得するために使用できます:
cm = body0.cm # The CM marker for the part body0
mass = body0.mass # The mass of the part body0
ip = body0.ip # The inertia matrix for part body0
図 1.