Body

Body

Class Body()

class Body(parent='MODEL', name='Body_n', label='Body_n', active=True, mass=0.0, 
ixx=0.0, ixy=0.0, iyz=0.0, ixz=0.0, iyy=0.0, izz=0.0, use_vx=False, use_vy=False, 
use_vz=False, use_wx=False, use_wy=False, use_wz=False, vx=0.0, vy=0.0, vz=0.0, wx=0.0, 
wy=0.0, wz=0.0, use_vm=False, use_wm=False, vm=None, wm=None, usecm=False, 
useim=False, uselprf=False, cg=None, im_origin=None, lprf_origin=None, use_flex=False, 
inertia_props_from_graphic=False)

Rigid body.

setValue, getValue, getAssociatedGraphics

Keyword Arguments

Argument Data Type Description Default
name String The variable name. Body_n, for next available integer n.
label String The descriptive label. Body_n, for next available integer n.
parent Object The parent. MODEL
active Bool Used to activate or deactivate this entity. True
mass Double The mass. 0
ixx Double The ixx inertia property with respect to the inertia coordinate system. 0
iyy Double The iyy inertia property with respect to the inertia coordinate system. 0
izz Double The izz inertia property with respect to the inertia coordinate system. 0
ixy Double The ixy inertia property with respect to the inertia coordinate system. 0
iyz Double The iyz inertia property with respect to the inertia coordinate system. 0
ixz Double The ixz inertia property with respect to the inertia coordinate system. 0
use_vx Bool Use initial translation velocity in x direction when True. False
use_vy Bool Use initial translation velocity in y direction when True. False
use_vz Bool Use initial translation velocity in z direction when True. False
use_wx Bool Use initial rotational velocity about x when True. False
use_wy Bool Use initial rotational velocity about y when True. False
use_wz Bool Use initial rotational velocity about z when True. False
vx Double The initial translation velocity in x direction. 0
vy Double The initial translation velocity in y direction. 0
vz Double The initial translation velocity in z direction. 0
wx Double The initial rotational velocity about x. 0
wy Double The initial rotational velocity about y. 0
wz Double The initial rotational velocity about z. 0
usevm Bool Use reference marker (vm) for initial translational velocity when True. False
usewm Bool Use reference marker (wm) for initial rotational velocity when True. False
vm Marker The reference marker (vm) for initial translational velocity. 0
wm Marker The reference (vm) for initial rotational velocity. 0
usecm Bool Use center of mass coordinate system when True. False
useim Bool Use inertia coordinate system when True. False
uselprf Bool Use body coordinate system when True. False
cg Point The origin for center of mass coordinate system. None
im_origin Point The origin for inertia coordinate system. None
lprf_origin Point The origin for body coordinate system. None
useflex Bool Use as a flexible body if True. False
inertia_props_from_graphic Bool Use properties from associated inertia graphic when True. False

Instances

Instance Type Description
cm Marker Marker for center of mass coordinate system.
im Marker Marker for inertia coordinate system.
lprf Marker Marker for body coordinate system.
flex FlexBody Flexbody when useflex is True.

Readonly Properties

geomprops (InertiaProps) - Inertia properties of the body when get properties from associated graphics [inertia_props_from_graphic] is True. Defaults to -.

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.

4. Readonly Properties cannot be modified.

Methods

getAssociatedGraphics()

Get all the graphics that are associated with this object.

Returns:

List of all graphic associated with this body.

Return type:

(list)

getValue(name)

Returns value of an attribute.

Parameters:

name (str) - Name of the attribute. Defaults to -.

Returns:

The return value. Return type depends on the attribute type.

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

Body Pair

Class BodyPair()

BodyPair(parent='MODEL', name='Point_n', label='Point_n', active=True, sym='NONE')

Body pair containing left and right instances of singles.

Keyword Arguments

Argument Data Type Description Default
name String The variable name. BodyPair_n, for next available integer n.
label String The descriptive label. BodyPair_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 body.
r Point The right body.

Notes

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

Inertia Props

Class InertiaProps()

InertiaProps(**kwds)

Utility class to hold inertia properties of a body when body gets inertia properties from associated graphics.

Notes

You cannot create instances of the InertiaProps class. This class is used to modify the inertia properties of a body when it gets the properties from associated graphics.

Readonly Properties:

Argument Data Type Description Default
mass Double The mass of associated graphics. -
ixx Double The ixx inertia property with respect to center of mass coordinate system of associated graphics. -
iyy Double The iyy inertia property with respect to center of mass coordinate system of associated graphics. -
izz Double The izz inertia property with respect to center of mass coordinate system of associated graphics. -
ixy Double The ixy inertia property with respect to center of mass coordinate system of associated graphics. -
iyz Double The iyz inertia property with respect to center of mass coordinate system of associated graphics. -
ixz Double The ixz inertia property with respect to center of mass coordinate system of associated graphics. -
cg Point The origin for center of mass coordinate system. -
cm Marker The marker for center of mass coordinate system. -

Flexbody

Class Flexbody()

Flexbody(kwds)

Utility class to hold and modify properties of a body when it is flexible (flexbody).

Notes

You cannot create instances of the Flexbody class. This class is used to modify the properties of a body when it is flexible.

Keyword Arguments

Argument Data Type Description Default
MotionSolve.graphic_file File This file is used for visual display of the flexbody. Any relocation of this graphic will also be applied to the functional files. ''
MotionSolve.h3d_file File The H3D file. ''
MotionSolve.anim_scale Double The animation scale. 1
MotionSolve.rigidify Bool Flag to set the flexbody as rigid with the mass inertia properties from the flexbody data. False
MotionSolve.inc_geom_non_lin Bool Include geometric stiffness data when True. False
ADAMS.graphic_file File Graphic file for solver mode Adams. ''
ADAMS.h3d_file File H3D file for solver mode Adams. ''
ADAMS.mtx_file File MTX file for solver mode Adams. ''
ADAMS.input_type Enum Input type for solver mode Adams. One of CMS_H3D or CMS_MTX. CMS_H3D
ABAQUS.graphic_file File Graphic file for solver mode Abaqus. ''
ABAQUS.inp_file File Inp file for solver mode Abaqus. ''
ABAQUS.sup_file File Sup file for solver mode Abaqus. ''
ABAQUS.input_type Enum Input type for solver mode Abaqus. The functional source. One of CMS or FEA. CMS
ABAQUS.damping_type Enum Damping type for solver mode Abaqus. One of DEFAULT, CRATIO, ALPHA, BETA, ALPHA_BETA. DEFAULT
ABAQUS.cratio Double Damping ratio for the Abaqus flex body. 0
ABAQUS.alpha Double Defaults to 0. * ABAQUS.beta (Double) 0

Instances

Instance Type Description
MotionSolve FlexMotionSolveData Instance which holds the flex body solver data when solver mode is MotionSolve.
ADAMS FlexAdamsData Instance which holds the flex body solver data when solver mode is Adams.
ABAQUS FlexAbaqusData Instance which holds the flex body solver data when solver mode is Abaqus.

Readonly Properties

Argument Data Type Description Default
mass Double The mass of the flexible body. -
cm_x Double The x coordinate of center of mass of the body. -
cm_y Double The y coordinate of center of mass of the body. -
cm_z Double The z coordinate of center of mass of the body. -
ixx Double The ixx inertia property with respect to center of mass. -
ixy Double The ixy inertia property with respect to center of mass. -
ixz Double The ixz inertia property with respect to center of mass. -
iyx Double The iyx inertia property with respect to center of mass. -
iyy Double The iyy inertia property with respect to center of mass. -
iyz Double The iyz inertia property with respect to center of mass. -
izx Double The izx inertia property with respect to center of mass. -
izy Double The izy inertia property with respect to center of mass. -
izz Double The izz inertia property with respect to center of mass. -

Methods

createPointsAtInterfaceNodes()

Create MDL points at current interface nodes.

Returns:

None.

getInterfaceNodeCoordByIndex(idx)

Retrieves the interface node coordinate using an index number.

Parameters:

idx (int): The index number of the interface node.

Returns:

A list of x y z coordinates.

Return type:

list

getInterfaceNodeIdByIndex(idx)

Retrieves the interface node ID using an index number.

Parameters:

idx (int): The index number of the interface node.

Returns:

Node ID using a corresponding index number.

Return type:

int

getNodeCoordByIndex(idx)

Retrieves the node coordinate using an index number.

Parameters:

idx (int): The index number of the node.

Returns:

A list of x y z coordinates.

Return type:

list

getNumInterfaceNodes()

Retrieves the number of interface nodes in the flexbody.

Returns:

The number of interface nodes.

Return type:

int

getNumNodes()

Retrieves the number of nodes in the flexbody.

Returns:

The number of nodes.

Return type:

int

Examples

>>> from hw import mview
   >>> #Create a body and get values
   >>> b1 = mview.Body(name='b1',label='Body1')
   >>> b1.mass
   0.0
   >>> b1.name
   'b1'
   >>> #Set multiple values at once
   >>> b1.setValues(mass=10,ixx=100,iyy=5000)
   >>> b1.iyy
   5000
   >>> #Use graphic for intertia properties
   >>> b1.intertia_props_from_graphic = True
   >>> #Center of mass marker
   >>> b1.usecm = True
   >>> p1 = mview.Point(name='PointForCM', label='PointForCM')
   >>> b1.cm.origin = p1
   >>> b1.cg.name
   'PointForCM'
   >>> #Aligning CM marker
   >>> b1.cm.align_meth1 = 'DxDyDz'
   >>> b1.cm.ornt_meth = 'ANGLES'
   >>> b1.e1 = 20
   >>> b1.cm.e1 = 20
   >>> #Reference marker for CM
   >>> m1 = mview.Marker(label='Reference')
   >>> b1.cm.rm = m1
   >>> #Make the body flexible get the H3D
   >>> b1.useflex = True
   >>> b1.rigidify = True
   >>> b1.rigidify
   True
   >>> b1.flex.MotionSolve.graphic_file = r"C:/Users/user/Desktop/flexfile.h3d"
   >>> b1.flex.MotionSolve.h3d_file = b1.flex.MotionSolve.graphic_file
   >>> #Set initial conditions for BodyPair
   >>> b2 = mview.BodyPair(name='b_2',sym='NONE')
   >>> b2.l.use_vx = True
   >>> b2.l.vx = 25
   >>> b2.l.vx
   25.0
   >>> b2.r.use_wy = True
   >>> #Set paramteric value
   >>> b2.r.wy = "b_2.l.vx/12"
Create a flexbody and modify its properties.
   >>> from hw import mview
   >>> b = mview.Body(name='b_0', useflex=True)
   >>> b.flex.MotionSolve.graphic_file = r'C:/Users/Training/sla_flex.h3d'
   >>> b.flex.MotionSolve.h3d_file = r'C:/Users/Training/sla_flex.h3d'
   >>> b.flex.getNumInterfaceNodes()
   4
   >>> b.uselprf = True
   >>> b.lprf_origin = mview.Point(x=1,y=3)
   >>> b.flex.createPointsAtInterfaceNodes()