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()