Part

Model ElementPartは、MotionSolve内の剛体オブジェクトを定義します。このエンティティには、質量プロパティと慣性プロパティがあります。

クラス名

Part

属性の概要

名前 プロパティ コマンドで変更可能か 設計可能か
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になります。
値の有効範囲:TrueFalse
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/xvreuler、およびfunctionと相互に排他的です。指定できるのはその中の1つだけです。
xg
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーのx軸上のポイントの座標を指定します。このマーカーは、このPartで定義されたすべてのマーカーの座標系として使用されます。
xg属性は省略可能です。指定しない場合、ポイントは全体座標系x軸上にあると見なされます。
zg/xg属性は、zv/xvreuler、およびfunctionと相互に排他的です。指定できるのはその中の1つだけです。
zv
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーのz軸を指定します。このマーカーは、このPartで定義されたすべてのマーカーの参照座標系として使用されます。

zv属性は省略可能です。指定しない場合、z軸は全体座標系z軸と見なされます。

zv/xv属性は、zg/xgreuler、およびfunctionと相互に排他的です。指定できるのはその中の1つだけです。

xv
Locationオブジェクトまたは3つの倍精度値のリスト。
局所パート参照マーカーのx軸を指定します。このマーカーは、このPartで定義されたすべてのマーカーの座標系として使用されます。
xv属性は省略可能です。指定しない場合、x軸は全体座標系x軸と見なされます。
zv/xv属性は、zg/xgreuler、およびfunctionと相互に排他的です。指定できるのはその中の1つだけです。
reuler
3つの倍精度値のリスト。
全体座標系に対する局所パート参照マーカーのボディ固定3-1-3オイラー角を指定します。このマーカーは、このPartで定義されたすべてのマーカーの参照座標系として使用されます。
reuler属性は省略可能です。指定しない場合は、(0, 0, 0)、つまり、局所パート参照マーカーが全体座標系と同じ向きであると見なされます。
reuler属性は、functionzg/xg、およびzv/xvと相互に排他的です。指定できるのはその中の1つだけです。
vm
マーカーへの参照。
PARTの初期並進速度(vxvyvz)を定義するために座標系が使用されるマーカーを指定します。
指定しない場合、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の初期角速度(wxwywz)を定義するために座標系が使用されるマーカーを指定します。
指定しない場合は、デフォルトで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属性は、reulerzg/xgと相互に排他的です。指定できるのはその中の1つだけです。
routine
文字列または関数へのポインタ
ユーザーサブルーチンの代替名を指定します。
属性routineは省略可能です。ユーザーサブルーチンのデフォルト名はMASS_READです。

  1. 地面PARTを作成します。
    ground = Part (ground=True)
  2. 全体座標系の原点にあり、質量と慣性が0のダミーPARTを作成します。
    dummyBody = Part ()
  3. 質量はあるが、慣性がないPARTを作成します。
    body1    = Part (mass=1)
    body1.cm = Marker (body=body1, qp=[12, -13, 14], zp=[14, -13, 14])
    注: 循環参照を排除するため、ボディは2つのステップで作成されます。まず、CMマーカーを使用せずにボディが定義されます。次に、CM属性が明示的に定義されます。
  4. 局所パート参照マーカーを含む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])
  5. 質量、慣性、初期並進速度、および初期回転速度を持つ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
  6. “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.

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
  2. 剛体の詳細については、Body: Rigidをご参照ください。