Force
Force
Class Force()
Force(parent='MODEL', name='Force_n', label='Force_n', active=True, b1=None, 
b2=None, origin=None, rm='Global_Frame', action_only=True, use_markers=False, 
itype='TRANS', p1=None, p2=None, align_meth1='Point', align_pt1=None, align_vec1=None, 
user=False, usr_sub='`USER()`', local_funcname='MOTSUB', use_local_dll=False, 
local_dll='', local_func_type='DLL')Create an action-only or action-reaction type of force.
setValue, getValue, getAssociatedGraphics
Keyword Arguments:
| Argument | Data Type | Description | Default | 
|---|---|---|---|
| name | String | The variable name. | Force_n, for next available integer n. | 
| label | String | The descriptive label. | Force_n, for next available integer n. | 
| parent | Object | The parent. | MODEL | 
| active | Bool | Used to activate or deactivate this entity. | True | 
| b1 | Body | Body to which the active force is applied. | None | 
| b2 | Body | Body to which the reactive force is applied. | None | 
| origin | Point | Point at which the force is applied. | None | 
| rm | Marker | Reference marker in which the components of the force are specified. | Global_Frame. | 
| action_only | Bool | Specifies an action only force when True and an action-reaction force when False. | True | 
| use_markers | Bool | Use explicit markers to apply the force. | False | 
| itype | Enum | Type of force. Takes values TRANS, ROT, TRANS_ROT, LOA or SC_ROT. | TRANS | 
| p1 | Point | Point on body_1 at which the action force is applied. | None | 
| p2 | Point | Point on body_2 at which the reaction force is applied. | None | 
| align_meth1 | MultiRef | Alignment method when itype is SC_ROT. One of Pointor Vector. | Point | 
| align_pt1 | Point | Point used to align force direction when align_meth1 is Point for itype SC_ROT. | None | 
| align_vec1 | Vector | Vector used to align force direction when align_meth1 is Vector for itype SC_ROT. | None | 
| 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' | 
Instances
| Instance | Type | Description | 
|---|---|---|
| f | Nonlinear | Nonlinear entity reference to set translational force when itype is LOA | 
| t | Nonlinear | Nonlinear entity reference to set rotational force when itype is LOA. | 
| fx | Nonlinear | Nonlinear entity reference to set translational X component of the force. | 
| fy | Nonlinear | Nonlinear entity reference to set translational Y component of the force. | 
| fz | Nonlinear | Nonlinear entity reference to set translational Z component of the force. | 
| tx | Nonlinear | Nonlinear entity reference to set rotational X component of the force. | 
| ty | Nonlinear | Nonlinear entity reference to set rotational Y component of the force. | 
| tz | Nonlinear | Nonlinear entity reference to set rotational Z component of the force. | 
| i | Marker | Marker attached to b1. | 
| j | Marker | Marker attached to b2. | 
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 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, updatePanel=False)
- 
            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 
Force Pair
Class ForcePair()
ForcePair(parent='MODEL', name='ForcePair_n', label='ForcePair_n', active=True, sym='NONE')Force pair containing left and right instances of singles.
Keyword Arguments:
| Argument | Data Type | Description | Default | 
|---|---|---|---|
| name | String | The variable name. | MotionPair_n, for next available integer n. | 
| label | String | The descriptive label. | MotionPair_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 force. | 
| r | Point | The right force. | 
Notes
Instance is a reference to an entity. You cannot modify an instance, but can modify its properties.
Examples
========
Create and modify attributes of a Force.
>>> from hw import mview
>>> #Create references for visulising the Force
>>> b1 = mview.Body(inertia_props_from_graphic = True)
>>> g1 = mview.Sphere(origin = 'P_Global_Origin',body = b1)
>>> j1 = mview.Joint(type = 'ScrewJoint')
>>> j1.setValues(b1 = b1,b2 = 'B_Ground',origin = 'P_Global_Origin',align_meth1 = 'VECTOR',align_vec1 = 'V_Global_Y')
>>> j1.pitch = 0.1
>>> #Create a rotational force
>>> torque = mview.Force(itype = 'ROT')
>>> #Set multiple values at once
>>> torque.setValues(b1 = b1, origin = 'P_Global_Origin')
>>> torque.ty.lin = -20
>>> #Set gravity as "Off" for this specific example
>>> mview.getModel().DS_Gravity.op_gravity.value = 'Off'
>>> #Run the simulation to see the torque on screw joint
>>> #Modelling action-reaction force with a second body
>>> p1 = mview.Point(y = 50)
>>> b2 = mview.Body(inertia_props_from_graphic = True)
>>> g2 = mview.Sphere(origin = p1,body = b2)
>>> #Deactivate the screw joint
>>> j1.active = False
>>> newforce = torque
>>> #Apply translational action reation force between b1 and b2
>>> newforce.setValues(itype = 'TRANS',action_only = False,b2 = b2)
>>> newforce.fy.lin = -10
>>> #Run the simulation to see the action reaction force