Coupler

Coupler

Class Coupler()

Coupler(parent='MODEL', name='Coupler_n', label='Coupler_n', active=True, 
itype='2JOINT', j1=None, j2=None, j3=None, dir1='TRANS', dir2='TRANS', dir3='TRANS', 
ratio=1, ratio2=0)

A coupler defines the ratio of displacement of one joint to another joint. Couplers can connect three types of joint combinations: - Revolute to revolute - Revolute to translational - Translational to translational.

Keyword Arguments

Argument Data Type Desription Default
name String The variable name. Coupler_n, for next available integer n.
label String The descriptive label. Coupler_n, for next available integer n.
parent Object The parent. MODEL
active Boolean Used to activate or deactivate this entity. True
itype Enum The type. One of 2JOINT or 3JOINT. 2JOINT
j1 Joint The first joint. None
j2 Joint The second joint. None
j3 Joint The third joint(only when itype is 3JOINT). None
dir1 Enum The direction, if first joint is cylindrical. One of TRANS or ROT. TRANS
dir2 Enum The direction, if second joint is cylindrical. One of TRANS or ROT. TRANS
dir3 Enum The direction, if third joint is cylindrical. One of TRANS or ROT. TRANS
ratio Double The displacement ratio between j1 and j2 for each joints respective direction of displacement. 1
ratio2 Double The displacement ratio between j1 and j3 for each joints respective direction of displacement. 0
user Bool Use user defined properties, if true. False
usr_sub Function The expression passed to the user dll. When using solver expressions, Templex syntax (within ``) is used and all variables are enclosed in braces {} and the rest is treated as literal. ‘USER()'
local_funcname String The function/subroutine name. ‘MOTSUB'
use_local_dll Bool Uses a local function instead of default if True. False
local_dll File The path of the local dll. Defaults to ‘'. * local_func_type (Enum) - The type of the user subroutine. one of DLL, PYTHON or MATLAB. ‘DLL'

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.

Methods

getAssociatedGraphics()

Get all the graphics that are associated with this object.

Returns:

List of all graphic associated with this coupler.

Return type:

(list)

setValue(name, value)

Sets value of an attribute.

Parameters:

name str Name of the attribute.
value ** Value of the attribute to be set.

Returns:

Returns True if the value was successfully set else False.

Return type:

Bool

Coupler Pair

Class CouplerPair()

CouplerPair(parent='MODEL', name='CouplerPair_n', label='CouplerPair_n', active=True, sym='NONE')

Coupler pair containing left and right instances of singles.

Keyword Arguments:

Argument Data Type Description Default
name String The variable name. CouplerPair_n, for next available integer n.
label String The descriptive label. CouplerPair_n, for next available integer n.
parent Object The parent. MODEL
active Bool Defines if entity is activated when True or deactivated when False. False
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 Coupler The left coupler.
r Coupler The right coupler.

Examples

========
Create and modify attributes of a Coupler.
>>> from hw import mview
>>> #Create a pinion center-point, body, graphic and joint
>>> p_1 = mview.Point(label = "Base point",x = 0,y = 0,z = 0)
>>> body1 = mview.Body(label = "pinion body",inertia_props_from_graphic = True)
>>> pinion = mview.Cylinder(label = "Gear graphic",
 align_meth1 = "VECTOR",
 align_vec1 = "V_Global_Y",
 length = 10.0,
 r1 = 20.0)
>>> pinion.setValues(body = body1,origin = p_1)
>>> j1 = mview.Joint(label = "Revolute1",
 type = "RevJoint",
 origin = p_1,
 align_meth1 = "VECTOR",
 align_vec1 = "V_Global_Y",
 b1 = body1,
 b2 = "B_Ground")
>>> #Create a gear center-point, body, graphic and joint
>>> p_2 = mview.Point(label = "Base point 2",x = 70,y = 0,z = 0)
>>> body2 = mview.Body(label = "Gear body",inertia_props_from_graphic = True)
>>> gear = mview.Cylinder(label = "Gear graphic",
 align_meth1 = "VECTOR",
 align_vec1 = "V_Global_Y",
 length = 10.0,
 r1 = 50.0)
>>> gear.setValues(body = body2,origin = p_2)
>>> j2 = mview.Joint(label = "Revolute2",
 type = "RevJoint",
 origin = p_2,
 align_meth1 = "VECTOR",
 align_vec1 = "V_Global_Y",
 b1 = body2,
 b2 = "B_Ground")
>>> #Create a Coupler to couple the two Revolute joints
>>> c_0 = mview.Coupler(label = "Gear Coupler",
 itype = "2JOINT",
 ratio = 2.0)
>>> #Set multiple values and references at once
>>> c_0.setValues(j1 = j1,j2 = j2)
>>> #Gear pair model is ready to simulate