MotionView User's Guide

Force

Force

Previous topic Next topic Expand/collapse all hidden text  

Force

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

This section describes the Force entity of MotionView and shows the various usage, creation, and editing methods.

Theory/Background

A Force entity, as the name suggests, is used to apply a force and/or a torque on a body.  The created Force can be of the type Action only or Action reaction.  An Action only force acts on a single body on which force is applied.  An Action reaction force acts on two bodies, one is called the action body and the other the reaction body.

force_entity_example_mv_ug

Common Applications of Forces are:

External force like aerodynamic force on a vehicle body
Jounce and rebound bumper elements
Steering torque, etc.

The topological information required to define a Force is shown in the figures below:

force_entity_diagram_action_only_mv_ug

force_entity_diagram_action_reaction_mv_ug

Entity Data Members

The data members of the Force can be classified into the following members:

Connectivity

An Action only Force needs the following:

Body - on which the force is applied.
Point – on which the force is applied.
A local reference frame (Ref Marker) - which defines the orientation of the force.

An Action reaction Force needs the following:

Two Bodies (Body 1 and Body 2) – between which the force acts.
Point 1 - the location at which the force is applied.
A local reference frame (Ref Marker) - which defines the orientation of the force.

An Action reaction force can be a Line of Action Translational type or a Single Component Rotational type, in which case the following would need to be specified:

Two Bodies (Body 1 and Body 2) – between which the force acts.
Point 1 - the first location defines the line of action or point of application in the case of Single Component Rotational torque.
Point 2 - the second location that completes the line definition or Point/Vector that defines the rotational axis of the of Single Component Rotational torque.

A Force/Torque can only be modeled as a Single entity or as a Pair entity.

Properties

A Force in MotionView can be defined as Translational, Rotational (torque), TransRotational (combination of force and torque), Line of Action Translational, or Single Component Rotational type.  These properties can be assigned to the Force using appropriate tabs that appears based on the selections in the Connectivity tab.  A topology map of the Force properties is shown in the figure below:

force_entity_properties_diagram_mv_ug

Force/Torque properties can be defined along/about three axes of the local reference marker using the Fx/Tx, Fy/Ty, and Fz/Tz fields in the Properties tab.  In case of a Line of Action translational force, the line defines the direction of application and the property can be defined in a single field provided.  The same is true for a Single Component Rotational torque.

Force translational properties, Torque rotational properties, Line of Action Translational, and Single Component Rotational forces can all be of the same following types:

Linear
Curve
Spline3D
Expression

Alternatively, force properties can also be applied using User-defined properties.  User-defined properties need the following:

A User Function Statement
A Local filename for the Subroutine DLL or script file
Function Type – DLL/SO, Python, Matlab
Function Name - SFOSUB/GFOSUB
NoteWhen modeled as a Pair entity, the Linear properties of the Force can be made symmetric.

Creating and Editing Forces

To learn how to add a Force to a model, please see the Entity Manual topic.  Once a Force has been added to the model using any of the "entity" creation methods, the panel for the force is automatically displayed and available for editing (see Step #2 in the To select and edit a Force entity section below).

forces

Forces Panel – Connectivity Tab - Pair Entity - TransRotational Force

 

hmtoggle_plus1To select and edit a Force entity:
1.If the panel for the desired Force is not currently displayed, use the following method to select the Force entity to be edited:
a.Left click the Forces panel icon entityLoadsForces-24 on the Force Entity toolbar.

The graphics area selection is now filtered to pick a Force entity.  Also, if the Filter Using Toolbar option is selected in the Project Browser context menu, the browser will now only display the Forces in the model.

b.Select the desired Force, by clicking on it in the graphics area or in the Project Browser.

The corresponding panel is automatically displayed and available for editing.

2.From the Connectivity tab, select the entities needed to specify the type of force.

forces_panel_action_only_conn_tab_mv_ug

Forces Panel (Action only) – Connectivity Tab – Single Entity

forces_panel_action_only_conn_tab_pair_mv_ug

Forces Panel (Action only) – Connectivity Tab – Pair Entity

a.Specify the Body by picking the body from the graphics area, or double click the Body collector to open the entity selector dialog (from which desired body can be selected).
b.Click on the Point collector and select the point of application of the force.
c.Click on the Ref Marker collector and select the local reference frame for the force.

forces_panel_action_reaction_conn_tab_mv_ug

Forces Panel (Action reaction) – Connectivity Tab – Single Entity

forces_panel_action_reaction_conn_tab_pair_mv_ug

Forces Panel (Action reaction) – Connectivity Tab – Pair Entity

a.Select Body 1 by picking the body from the graphics area, or double click the Body 1 collector to open the entity selector dialog (from which desired body can be selected).
b.Similarly, pick Body 2 from the graphics area by clicking on the desired body (or use the collector and entity selector dialog).
c.Click on the Point 1 collector and select the point of application of the force.
d.Click on the Ref Marker collector and select the local reference frame for the force.

forces_panel_action_reaction_line_of_action_trans_conn_tab_mv_ug

Forces Panel (Action reaction - Line of Action Translational) – Connectivity Tab – Single Entity

forces_panel_action_reaction_line_of_action_trans_pair_conn_tab_mv_ug

Forces Panel (Action reaction - Line of Action Translational) – Connectivity Tab – Pair Entity

a.Select Body 1 by picking the body from the graphics area, or double click the Body 1 collector to open the entity selector dialog (from which desired body can be selected).
b.Similarly, pick Body 2 from the graphics area by clicking on the desired body (or use the collector and entity selector dialog).
c.Click on the Point 1 collector and select the first point that defines the line of action.
d.Click on the Point 2 collector and select the second point to complete the definition of the line.

forces_panel_action_reaction_single_comp_rot_conn_tab_mv_ug

Forces Panel (Action reaction - Single Component Rotational Torque) – Connectivity Tab – Single Entity

forces_panel_action_reaction_single_comp_rot_pair_conn_tab_mv_ug

Forces Panel (Action reaction - Single Component Rotational Torque) – Connectivity Tab – Pair Entity

a.Select Body 1 by picking the body from the graphics area, or double click the Body 1 collector to open the entity selector dialog (from which desired body can be selected).
b.Similarly, pick Body 2 from the graphics area by clicking on the desired body (or use the collector and entity selector dialog).
c.Click on the Point 1 collector and select the first point that defines the line of action.
d.Click on the Point 2 collector and select the second point to complete the definition of the line.
e.Specify the rotational axis of the torque using either of the methods listed below:
-Point – Select a point that lies on the desired rotational axis for the torque.
-Vector – If the desired axis of alignment is along any of the Global Axes, you can select the same by clicking on the coordinate system (Global X, Y,or Z) in the graphics area (or by browsing through the model tree).

alignment_axis_vector_example_mv

3.If desired, activate the User defined properties check box in order to display the User-Defined tab for the Force (which will allow you to specify the properties of the force using User-Subroutines).

force_entity_conn_tab_user_def_properties_mv

Note - The Properties tab(s) will automatically change into the User-Defined tab.

forces_user_defined_tab

Forces Panel – User-Defined Tab

User-defined properties need the following:

-A User Function Statement
-A Local filename for the Subroutine DLL or script file
-Function Type – DLL/SO, Python, Matlab
-Function Name - SFOSUB/GFOSUB
4.A Force can also be added using explicit markers.  From the Connectivity tab, activate the Use explicit markers check box.

forces_panel_conn_tab_use_explicit_markers_mv_ug

Forces Panel (Action only - Translational) – Connectivity Tab – Use explicit markers - Single Entity

forces_panel_conn_tab_pair_use_explicit_markers_mv_ug

Forces Panel (Action only - Translational) – Connectivity Tab – Use explicit markers - Pair Entity

a.Specify the Marker by picking the marker from the graphics area, or double click the Marker collector to open the entity selector dialog (from which desired marker can be selected).
b.Click on the Ref Marker collector and select the local reference frame for the force.

forces_panel_conn_tab_act_reac_use_explicit_markers_mv_ug

Forces Panel (Action reaction - Translational) – Connectivity Tab – Use explicit markers - Single Entity

forces_panel_conn_tab_act_reac_pair_use_explicit_markers_mv_ug

Forces Panel (Action reaction - Translational) – Connectivity Tab – Use explicit markers - Pair Entity

a.Select Marker 1 by picking the marker from the graphics area, or double click the Marker 1 collector to open the entity selector dialog (from which desired body can be selected).
b.Similarly, pick Marker 2 from the graphics area by clicking on the desired marker (or use the collector and entity selector dialog).
c.Click on the Ref Marker collector and select the local reference frame for the force.
5.The properties of the various forces/torques can be defined using the appropriate tabs that appear based on the selections previously made in the Connectivity tab.

The Trans Properties tab is displayed when the selection in the Properties drop-down menu in the Connectivity tab is set to either Translational, TransRotational, or Line of Action Translational.

forces_panel_trans_properties_tab_mv_ug

a.The Trans Properties tab contains three fields, one field for each direction (Fx, Fy, Fz).
b.Trans Properties can be defined as Linear, Curve, Spline3D, or Expression.
c.To use a Curve, you first need to define a curve (using the Curves panel) which represents the behavior of the force.

The Rot Properties tab is displayed when the selection in the Properties drop-down menu in the Connectivity tab is set to either Rotational, TransRotational, or Single Component Rotational.

forces_panel_rot_properties_tab_mv_ug

a.The Rot Properties tab contains three fields, one field for each direction (Tx, Ty, Tz).
b.Rot Properties can be defined as Linear, Curve, Spline3D, or Expression.
c.To use a Curve, you first need to define a curve (using the Curves panel) which represents the behavior of the force.
d.Expression can also be used when a force can be defined as a function of a state variable.
6.When defining Pair Force entities, use pair entities for Body 1, Body 2, Point 1, Vector, Ref Marker, etc.

Note - The same steps as shown above can also be used to define Pair Force entities.

When defining the properties of a Pair Force Entity, there is an option available to make the properties Symmetric or Asymmetric.  When the Force is made Symmetric, you can choose to make the Left or Right side Force as the master side and other side will mirror those properties.  In the case of Asymmetric properties, the Left and Right side of the properties must be defined individually.

Force in MDL and XML Formats

The model containing the Force can be saved in MDL format from MotionView and exported in the MotionSolve XML format.

hmtoggle_plus1Force in MDL (Model Definition Language)

Syntax:

*ActionOnlyForce(force_name, "force_label", TRANS|ROT|TRANS_ROT, body, point, ref_marker)

Example:

*ActionOnlyForce(force_1, "Force 1", TRANS, b_1, p_1, Global_Frame)

To understand the complete syntax of the MDL statement please refer to the *ActionOnlyForce() topic.

Syntax:

*ActionOnlyForcePair(force_name, "force_label", TRANS|ROT|TRANS_ROT, body, point, ref_marker)

Example:

*ActionOnlyForcePair(force_1, "Force 1", TRANS, b_1, p_1, Global_Frame)

To understand the complete syntax of the MDL statement please refer to the *ActionOnlyForcePair() topic.

Syntax 1:

*ActionReactionForce(force_name, "force_label", TRANS|ROT|TRANS_ROT, body_1, body_2, point, ref_marker)

Example 1:

*ActionReactionForce(force_1, "Force 1", TRANS, b_1, b_2, p_1, Global_Frame)

Syntax 2 (Line Of Action):

*ActionReactionForce(force_name, "force_label", LOA, body_1, body_2, point_1, point_2)

Example 2:

*ActionReactionForce(force_1, "Force 1", LOA, b_1, b_2, p_1, p_2)

Syntax 3 (Single Component Rotational):

*ActionReactionForce(force_name, "force_label", SC_ROT, body_1, body_2, point_1, POINT|VECTOR, point_2|vector_2)

Example 3:

*ActionReactionForce(force_1, "Force 1", SC_ROT, b_1, b_2, p_1, POINT, p_2)

To understand the complete syntax of the MDL statement please refer to the *ActionReactionForce(), *ActionReactionForce - line of action, or

*ActionReactionForce - single component rotation topic.

Syntax 1:

*ActionReactionForcePair(force_name, "force_label", TRANS|ROT|TRANS_ROT, body_1, body_2, point, ref_marker)

Example 1:

*ActionReactionForcePair(force_1, "Force 1", TRANS, b_1, b_2, p_1, Global_Frame)

Syntax 2 (Line Of Action):

*ActionReactionForcePair(force_name, "force_label", LOA, body_1, body_2, point_1, point_2)

Example 2:

*ActionReactionForcePair(force_1, "Force 1", TRANS, b_1, b_2, p_1, p_2)

Syntax 3 (Single Component Rotational):

*ActionReactionForce(force_name, "force_label", SC_ROT, body_1, body_2, point_1, POINT|VECTOR, point_2|vector_2)

Example 3:

*ActionReactionForce(force_1, "Force 1", SC_ROT, b_1, b_2, p_1, POINT, p_2)

To understand the complete syntax of the MDL statement please refer to the *ActionReactionForcePair(), *ActionReactionForcePair - line of action, or *ActionReactionForcePair - single component rotation topics.

The following MDL statement is used to specify the properties of the Force entity:

Syntax:

*SetForce(force_name, TYPE_fx, TOKEN_fx, , TYPE_fy, TOKEN_fy, TYPE_fz, TOKEN_fz)

Example:

*SetForce(force_1, LIN, 1000, CRV, crv_1, EXPR, `100*TIME`)

To understand the complete syntax of the MDL statement please refer to the one of the *SetForce() topics.

To learn how to create a complete model using MDL Statements please refer to tutorial MV-1060: Introduction to MDL.

hmtoggle_plus1Force in XML Format

The Force entity when exported to the MotionSolve XML format is defined as a Force_Vector_OneBody statement for Action Only Force, Force_Vector_TwoBody for Action Reaction Force, and Force_Scalar_TwoBody for Line of Action Translational and Single Component Rotational Forces.  A Pair entity created in MotionView is represented as two individual model statements when exported to the MotionSolve XML format.

Syntax:

force_vector_onebody_syntax_mv

Example:

< Force_Vector_OneBody

   id                 = "18"

   type               = "FORCEONLY"

   marker_id         = "22"

   ref_marker_id    = "11"

   fx_expression    = "100"      

   fy_expression    = "100"      

   fz_expression    = "100"      

</Force_Vector_OneBody>

Syntax:

force_vector_twobody_syntax_mv

Example:

<Force_Vector_TwoBody

   id                 = "18"

   type               = "FORCEONLY"

   i_marker_id         = "22"

   j_floating_marker_id       = "25"

   ref_marker_id    = "11"

   fx_expression    = "100"      

   fy_expression    = "100"      

   fz_expression    = "100"      

</Force_Vector_TwoBody>

 

Syntax:

<Force_Scalar_TwoBody

     id               = "integer"

 [ label            = "string" ]

     type             = { "FORCEONLY" | "TORQUEONLY" | "FORCEANDTORQUE" }

     i_marker_id       = "integer"

     j_marker_id       = "integer"

  { val | val_expression = "real" | "EXPR"  }

</Force_Scalar_TwoBody>

Example:

<Force_Scalar_TwoBody

   id                 = "18"

   type               = "FORCEONLY"

   i_marker_id       = "22"

   j_marker_id       = "25"

   val                = "100"      

</Force_Scalar_TwoBody>

In the above XML Model statement the i_marker_id represents the first or action Body for the force application and the j_floating_marker_id represents the second or reaction Body for the force application.  To understand the complete syntax of the Force XML model statements, please refer to the MotionSolve Reference Guide Page for Force_Vector_OneBody, Force_Vector_TwoBody and Force_Scalar_TwoBody.

Creating and Editing Forces using Tcl

In MotionView, Tcl can be used to add any MDL entities to the model.  There are two Tcl commands that can be used to add an entity:

hmtoggle_arrow1InterpretEntity

Syntax:

mdlmodel_handle InterpretEntity new_handle keyword varname label

Example:

mdlmodel_handle InterpretEntity force_handle ActionReactionForce frc_0 "\"Force 1\"" TRANS b_0 b_1 p_0 marker_0;

hmtoggle_arrow1InterpretSet

Syntax:

mdlmodel_handle InterpretSet keyword tokens

Example:

mdlmodel_handle InterpretSet SetForce frc_0 LIN 100 LIN 100 LIN 100;

The command InterpretEntity is used to add entities to the model and the command InterpretSet is used to set the entity properties.  Extended definitions for InterpretEntity and InterpretSet can be found in the HyperWorks Desktop Reference Guide.

Note - When using the InterpretEntity and InterpretSet commands, it is important to also use the Evaluate command in order for the changes to take effect immediately.

To learn how to create a complete model using Tcl commands, please refer to tutorial MV-1040: Model Building Using Tcl.

Example Model

The following example shows the various Force entities that are available in MotionView:

hmtoggle_plus1Force.mdl

*BeginMDL( the_model, "Model", )

 *StandardInclude(FILE)

 *Point( p_0, "Point A" )

 *Point( p_1, "Point B" )

 *Point( p_2, "Point C" )

 *Point( p_3, "Point D" )

 *PointPair( p_4, "Point A" )

 *PointPair( p_5, "Point B" )

 *PointPair( p_6, "Point C" )

 *PointPair( p_7, "Point D" )

 *Marker( m_0, "Local ref.", b_0, p_2 )

 *MarkerPair( m_1, "Local ref.", b_2, p_6 )

 *Body( b_0, "Body A", p_0, , , ,  )

 *Body( b_1, "Body B", p_1, , , ,  )

 *BodyPair( b_2, "Body A", p_4, , , ,  )

 *BodyPair( b_3, "Body B", p_5, , , ,  )

//Example for Force statements

 *ActionOnlyForce( frc_0, "Force ActionOnly", TRANS, b_0, p_2, m_0 )

 *ActionReactionForce( frc_1, "Force ActionReaction", TRANS, MARKERS, m_2, m_3, Global_Frame )

 *ActionReactionForce( frc_2, "Force LOA", LOA, b_0, b_1, p_2, p_3 )

 *ActionReactionForce( frc_3, "Torque Single Component Rot.", SC_ROT, b_1, B_Ground, p_3, VECTOR, V_Global_X )

 *ActionOnlyForcePair( frc_4, "Force ActionOnly", TRANS, MARKERS, m_4, m_1 )

 *ActionReactionForcePair( frc_5, "Force ActionReaction", TRANS, MARKERS, m_4, m_5, Global_Frame )

 *ActionReactionForcePair( frc_6, "Force LOA", LOA, b_2, b_3, p_6, p_7 )

 *ActionReactionForcePair( frc_7, "Torque Single Component Rot.", SC_ROT, b_3, B_Ground, p_7, VECTOR, V_Global_X )

 *Marker( m_2, "Marker 1 for force", b_0, p_2 )

 *Marker( m_3, "Marker 2 for force", b_1, p_3 )

 *MarkerPair( m_4, "Marker 1 for force", b_3, p_6 )

 *MarkerPair( m_5, "Marker 2 for force", b_2, p_7 )

 *SetPoint( p_1, 400 )

 *SetPoint( p_0, 0 )

 *SetPoint( p_2, 50 )

 *SetPoint( p_3, 350 )

 *SetPoint( p_4, LEFT, 400, -200 )

 *SetPoint( p_5, LEFT, 0, -200 )

 *SetPoint( p_6, LEFT, 50, -200 )

 *SetPoint( p_7, LEFT, 350, -200 )

//Example for setting force properties

 *SetForce( frc_0, LIN, 100, LIN, 200, LIN, 250 )

 *SetForce( frc_2, EXPR, `100*TIME` )

*EndMDL()

See Also:

Forces Panel

Adding and Removing Entities

*ActionOnlyForce (MDL Model Statement)

*ActionOnlyForcePair (MDL Model Statement)

*ActionReactionForce (MDL Model Statement)

*ActionReactionForce - line of action (MDL Model Statement)

*ActionReactionForce - single component rotation (MDL Model Statement)

*ActionReactionForcePair (MDL Model Statement)

*ActionReactionForcePair - line of action (MDL Model Statement)

*ActionReactionForcePair - single component rotation (MDL Model Statement)

Force_Scalar_TwoBody (XML Command)

Force_Vector_OneBody (XML Command)

Force_Vector_TwoBody (XML Command)

InterpretEntity (Tcl Command)

InterpretSet (Tcl Command)