Joint

Joint

Class Joint()

Joint(parent='MODEL', name='Body_n', label='Body_n', active=True, 
type='BallJoint', b1=None, b2=None, origin=None, align_meth1='Point', align_pt1=None, 
align_vec1=None, align_meth2='Point', align_pt2=None, align_vec2=None, 
align_type='Inplane', inplane_type='Inplane', inline_type='Origin', ujoint_meth1='SHAFT', 
ujoint_meth2='SHAFT', ic_use_trans=False, ic_trans_disp=0, ic_trans_vel=0, 
ic_use_rot=False, ic_rot_disp=0, ic_rot_vel=0, pitch=0, allow_compliance=False, isbush=False)

A Joint.

Joints create lower pair constraints. A lower pair is an idealized form of constraint where the constraint can be represented using two reference frames, or coordinate systems, belonging to two different bodies. The origin, axis, or plane of one reference frame is said to be constrained with respect to the origin, axis, or plane of another reference frame.

Method:

getAssociatedGraphics

Keyword Arguments

Argument Data Type Description Default
name String The variable name. Joint_n, for next available integer n.
label String The descriptive label. Joint_n, for next available integer n.
parent Object The parent. MODEL
active Bool Used to activate or deactivate this entity. True
type Enum The type. One of BallJoint, UJoint, TransJoint, RevJoint, InlineJoint, FixedJoint, InplaneJoint, CylJoint, Planar, CVJoint, AtPointJoint, OrientJoint, ParallelAxesJoint, PerpAxesJoint or ScrewJoint. BallJoint
b1 Body The first constrained body. None
b2 Body The second constrained body. None
origin Point The origin. None
align_meth1 Enum Alignment method for axis 1. Applies to type RevJoint, TransJoint, UJoint, InlineJoint, InplaneJoint, CylJoint, PlanarJoint, CVJoint, ParallelAxesJoint, PerpAxesJoint or ScrewJoint. One of Point, Vector. Point
align_pt1 Point The point when align_meth1 is Point. None
align_vec1 Vector The vector when align_meth1 is Vector. None
align_meth2 Enum Alignment method for axis 2. Applies to type InplaneJoint, PlanarJoint, ParallelAxesJoint, UJoint, CVJoint or PerpAxesJoint. One of Point or Vector. Point
align_pt2 Point The point when align_meth2 is Point. None
align_vec2 Vector The vector when align_meth2 is Vector. None
align_type Enum Alignment of planar and parallel joints.One of Inplane or Normal. Inplane
inplane_type Enum Alignment of inplane joint. One of Inplane or Normal. Inplane
inline_type Enum Alignment method for second axis of inline joint. One of Origin or Axis. Origin
ujoint_meth1 Enum Orientation method for axis 1 of universal joint. One of SHAFT or CROSSPIN. SHAFT
ujoint_meth2 Enum Orientation method for axis 2 of universal joint. One of SHAFT or CROSSPIN. SHAFT
ic_use_trans Bool Translational initial conditions when true. Valid for joints of type TransJoint or CylJoint. False
ic_trans_disp Double Initial translational displacement. 0
ic_trans_vel Double Initial translational velocity. 0
ic_use_rot Bool Translational initial conditions when True. Valid for joints of type RevJoint or CylJoint. False
ic_rot_disp Double Initial rotational displacement of the joint. 0
ic_rot_vel Double Initial rotational displacement. 0
pitch Double The pitch for ScrewJoint. Pitch is the amount of translational displacement per revolution of the joint. 0
allow_compliance Bool Allow compliance. False
isbush Bool Use as a bushing. False

Instances

Instance Type Description
friction Friction The friction attribute to modify friction properties.
bush Bushing The bushing when isbush is True.

Notes

1. The parent parameter can only be initialized by the constructor and should not be modified directly.

2. Only parent can be used as a positional argument in the constructor.

3. Instance is a reference to an entity. You cannot modify an instance, but can modify its properties.

Methods

getAssociatedGraphics()

Get all the graphics that are associated with this object.

Returns:

List of all graphic associated with this joint.

Return type:

(list)

Joint Pair

Class JointPair()

JointPair(parent='MODEL', name='JointPair_n', label='JointPair_n', active=True, sym='NONE')

Joint pair containing left and right instances of singles.

Keyword Arguments

Argument Data Type Description Default
name String The variable name. JointPair_n, for next available integer n.
label String The descriptive label. JointPair_n, for next available integer n.
parent Object The parent. MODEL
active Bool Defines if entity is activated when True or deactivated when False. True
sym Enum The symmetry of pair entity. Takes values 'LEFT' for left entity as leader, 'RIGHT' for right entity as leader or 'NONE' when it is not symmetric. NONE

Instances

Instance Type Description
l Point The left joint.
r Point The right joint.

Notes

Instance is a reference to an entity. You cannot modify an instance, but can modify its properties.

Friction

Class Friction()

Friction(**kwds)

Utility class to hold and modify friction properties for a joint.

Keyword Arguments

Argument Data Type Description Default
use_friction Bool Use friction properties when True. False
transition_vel Double Specifies the velocity threshold for the transition from dynamic friction to static friction. 0.1
mu_dynamic Double The coefficient of friction when the slip velocity is greater than transition_vel. 0.25
mu_static Double The coefficient of friction when the slip velocity is less than transition_vel. 0.3
max_deformation Double Specifies the maximum creep that can occur in a joint during the stiction regime. Only for SolverMode ADAMS. 0.01
use_static Enum One of ACTIVE_STATIC or INACTIVE_STATIC. ACTIVE_STATIC
effect Enum Specifies the frictional effect included in the friction model. One of STICTION_AND_SLIDING, STICTION_ONLY or SLIDING_ONLY. STICTION_AND_SLIDING
preload_input Enum Specifies if force preload is an input to the friction model. One of PRELOAD or NO_PRELOAD. PRELOAD
reaction_force_input Enum Specifies if joint reaction force is an input to the friction model. One of REACTION_FORCE or NO_REACTION_FORCE. REACTION_FORCE
bending_moment_input Enum Specifies if bending moment is an input to the friction model. This property is applicable to revolute, translational, cylindrical and universal joints. One of BENDING_MOMENT or NO_BENDING_MOMENT. BENDING_MOMENT
torsional_moment_input Enum Specifies if torsional moment is an input to the friction model. This property is applicable to translational joint only. One of TORSIONAL_MOMENT or NO_TORSIONAL_MOMENT. TORSIONAL_MOMENT
f_preload Double Specifies the joint's preload friction force. Applicable for translational and cylindrical joints only. 0
t_preload Double Specifies the joint's preload friction torque. Applicable for revolute, cylindrical, universal and ball joints only. 0
ball_radius Double Specifies the radius of the ball joint. Applicable for ball joint only. 1
pin_radius Double Specifies the radius of the pin. Applicable for revolute, cylindrical and universal joints only. 1
friction_arm Double Specifies the moment arm used to compute axial friction torque. Applicable for revolute and universal joints only. 1
bending_reaction_arm Double Specifies the moment arm used to compute the contribution of bending moment on friction torque. Applicable for revolute and universal joints only. 1
reaction_arm Double Specifies the moment arm of the reaction torque. Applicable for translational joint only. 1
initial_overlap Double Specifies the initial overlap of the sliding bodies. Applicable for translational and cylindrical joints only. 1000
rot_constraint Enum Specifies the rotational constraint in the universal joint on which the friction acts. One of I_YOKE, Y_YOKE or BOTH. Applicable for universal joint only. I_YOKE
overlap_delta Enum Specifies the change in overlap in the sliding bodies connected by the joint. One of INCREASE, DECREASE or CONSTANT. CONSTANT
bristle_stiffness Double Specifies the bristle stiffness in the LuGre model. It models the stiffness resisting micro-deformation in the friction element. 100
damping_effects Double Specifies the LuGre damping coefficient for the stiction regime. 0.316
viscous_effects Double Specifies the coefficient for the viscous damping force that occurs when relative sliding actually begins. 0.0004

Notes

You cannot create instances of the Friction class. This class is used to modify the friction properties of a joint.

Examples

========
Create and modify attributes of a Joint.
>>> from hw import mview
>>> #Create a Ball joint and references
>>> j1 = mview.Joint(name = 'j1', type = 'BallJoint')
>>> body1 = mview.Body(label = 'refbody')
>>> #Set values for attributes
>>> j1.b1 = body1
>>> j1.b2 = 'B_Ground'
>>> j1.origin = mview.getModel().P_Global_Origin
>>> #Get values of attributes
>>> j1.friction.use_friction
False
>>> #Set multiple values at once
>>> j1.friction.setValues(use_friction = True,mu_static = 0.5)
>>> #Get list of properties/atrributes for all types of joints
>>> j1.getPropertyNames()
['name', 'label', 'note', 'num', 'id', 'active', 'ifstate', 'varname', 'sym', 'type', 'b1', 'b2',
'origin', 'align_meth1', 'align_pt1', 'align_vec1', 'align_meth2', 'align_pt2', 'align_vec2',
'align_type', 'inplane_type', 'inline_type', 'ujoint_meth1', 'ujoint_meth2', 'ic_use_trans',
'ic_trans_disp', 'ic_trans_vel', 'ic_use_rot', 'ic_rot_disp', 'ic_rot_vel', 'pitch',
'allow_compliance', 'isbush', 'bush', 'friction', 'i', 'j', 'joint_i', 'joint_j']
>>> #Create a compliant joint
>>> j2 = mview.Joint(type = 'RevJoint',allow_compliance = True)
>>> j2.b1 = body1
>>> j2.setValues(b1 = body1,b2 = 'B_Ground',origin = 'P_Global_Origin')
>>> j2.align_meth1 = 'VECTOR'
>>> j2.align_vec1 = 'V_Global_Z'
>>> #Set bushing properties
>>> j2.isbush = True
>>> #Linear value of stiffness
>>> j2.bush.kx.lin = 100
>>> j2.bush.cty.type = 'CRV'
>>> #Nonlinear curve value for damping
>>> c1 = mview.Curve(x_type = 'VALUE',y_type = 'VALUE',x_value = [0,1],y_value = [10,20])
>>> j2.bush.cty.crv = c1
>>> #Set interpolation type and independent variable
>>> j2.bush.cty.int_type = 'CUBIC'
>>> j2.bush.cty.indep_var = '`TIME`'
>>> #These steps can be repeated for any type of joint, with associated properties