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