Joint
Model ElementJointを使用して、2つのボディ間の理想化されたコネクターを作成します。
クラス名
Joint
説明
Jointは、低次対偶拘束のセットを定義します。物理的に、このジョイントは、特定の方向のみの相対的並進および / または回転運動が可能な2つのあわせ面から成ります。これらの面は取り去られ、その関係性は常に2つのボディ上のポイントと方向間の代数拘束方程式のセットとして表されます。
属性の概要
名前 | プロパティ | コマンドで変更可能か | 設計可能か |
---|---|---|---|
id | Int () | ||
label | Str () | ○ | |
i | Reference (Marker) | ○ | ○ |
j | Reference (Marker) | ○ | ○ |
type | Enum (Type, default= "SPHERICAL", required=True) | ||
pd | Double () | ○ | FDのみ |
pitch | Double () | ○ | FDのみ |
ic | Double (None, count=2) | FDのみ | |
ictran | Double (None, count=2) | FDのみ | |
icrot | Double (None, count=2) | FDのみ | |
active | Bool () | ○ | |
virtual | Bool () | ○ |
* Type=("CONVEL"、"CYLINDRICAL"、"FIXED"、"HOOKE"、"PLANAR"、"RACKPIN"、"REVOLUTE"、"SCREW"、"SPHERICAL"、"TRANSLATIONAL"、"UNIVERSAL")
使用法
Joint (i=objmarker, j=objmarker, type=string_joint_type, optional_attributes)
属性
- i
- 既存のマーカーへの参照。
- j
- 既存のマーカーへの参照。
- type
- ("CONVEL"、"CYLINDRICAL"、"FIXED"、"HOOKE"、"PLANAR"、"RACKPIN"、"REVOLUTE"、"SCREW"、"SPHERICAL"、"TRANSLATIONAL"、"UNIVERSAL")のいずれかの文字列。
- id
- 整数
- label
- 文字列
- pitch
- 倍精度
- pd
- 倍精度
- ic
- 2つの倍精度値のリスト
- ictran
- 2つの倍精度値のリスト
- icrot
- 2つの倍精度値のリスト
- active
- ブーリアン
- virtual
- ブール
例1
ボディp3とp4間の円筒ジョイントを作成します。
既存のポイントpcで指定された位置
zpval = pc + Vector(1,0,0)
p3.C = Marker (body=p3, qp=pc, zp=zpval, label="p3.C")
p4.C = Marker (body=p4, qp=pc, zp=zpval, label="p4.C")
jcyl = Joint (i=p4.C, j=p3.C, type="CYLINDRICAL", label="Joint #1")
例2
jcyl.ictran = (3.142, 2.71828)
例3
#Define the function first
def CylindricalJoint (ibody, jbody, location, axis, label, **kwds):
"""
ibody - A rigid body, point mass or flex-body
jbody - A rigid body, point mass or flex-body
location - A Point
axis - A Vector
label - A name for the joint
"""
#Coordinates of a point along the axis of rotation
zpval = location + axis
i = Marker (body=ibody, qp=location, zp=zpval)
j = Marker (body=jbody, qp=location, zp=zpval)
jcyl = Joint (type="REVOLUTE", i=i, j=j, label=label, **kwds)
i.label = label + " I Marker"
j.label = label + " J Marker"
return jcyl
#Create a cylindrical joint using the convenience function described above
pc = Point (23.1, -46.2, 69.3*math.sin(0.436332))
zaxis = Vector(1,0,0)
label = "Joint #1"
jcyl = CylindricalJoint (p3, p4, pc, zaxis, label, ictran=(3.142, 2.71828))
例4
#Define the joint
pc = Point (23.1, -46.2, 69.3*math.sin(0.436332))
zaxis = Vector(1,0,0)
label ="Joint #1"
jcyl = CylindricalJoint (p3, p4, pc, zaxis, label, ictran=(3.142, 2.71828))
#Now define the request
comment = jcyl.label + " Displacement"
r1 = Request (type="DISPLACEMENT", i=jcyl.i, j=jcyl.j, comment=comment)
例5
“dot”演算子を使用したジョイントの属性の“取得”。
jcyl = Joint (i=p4.C, j=p3.C, type="CYLINDRICAL", label="Joint #1")
iMarker = jcyl.i # The I marker for the joint jcyl
jtype = jcyl.type # The type of the joint jcyl
iBody = iMarker.body # The body to which iMarker belongs
iMass = iBody.mass # The mass of the body to which the iMarker belongs
コメント
- プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
- Jprim (...)メソッドを使用して、このAPIでジョイントプリミティブモデリング要素を定義します。XMLシンタックス内の次のジョイントタイプがジョイントプリミティブと見なされます:
- "INLINE"、"INPLANE"、"ORIENTATION"、"PARALLEL_AXES"、"PERPENDICULAR"、"PLANAR"
- Jointの詳細については、Constraint: Jointをご参照ください。
- virtualの詳細については、Constraint: Jointをご参照ください。