MotionView User's Guide

Parallel Axes Joint

Parallel Axes Joint

Previous topic Next topic Expand/collapse all hidden text  

Parallel Axes Joint

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

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

Theory/Background

A Parallel Axes joint is a four degree-of-freedom primitive constraint.  The constraint is imposed such that the Z axis of a reference marker on one body (Body 2) remains parallel to the Z axis of a reference marker on the other body (Body 1) connected by the joint.  All three of the translations are free along with one rotation about the Z axis of the marker defining the joint orientation.  Joint primitives like Parallel Axes joints may not have a physical existence.  Parallel Axes joints can be used to impose unique constraints where using a regular joint would not be possible.

parallel_axes_joint_diagram_mv

Parallel Axes joint construction

Joint Definition

The Orientation joint is represented using Markers when exported to an MBD Solver.  The representation can be visualized as shown in the figure below:

parallel_axes_joint_marker_diagram_mv_ug

Parallel Axes joint - coincident origins

The bodies that are constrained by the Parallel Axes joint are represented using two markers: Marker I and Marker J. Marker I belongs to Body 1 and Marker J belongs to Body 2.  The constraints are applied on the Marker I with respect to Marker J.  Both of the markers will have a common point of origin, the same as the joint’s Origin point.  The Z axis of Marker I will be constrained to remain parallel to the Z axis of Marker J.

Entity Data Members

The topological information required to define an Parallel Axes joint is shown in the figure below:

parallel_axes_joint_diagram2_mv

The data members of the Parallel Axes Joint can be classified into the following members:

Connectivity

An Parallel Axes Joint needs the following:

Body 1 and Body 2 - Specify two Bodies between which the joint is to be created.
Origin - Specify Point, which defines the location of the joint.
Orientation Method - A Parallel Axes joint needs an axis to be specified for the constraint to be imposed.  This can be done by specifying a vector or a point which identifies the direction of the axis, or a plane may be defined using a combination of vectors and points, whose normal will be the axis of the joint.
Compliant Mode (Optional) - If the Allow Compliance option is selected while adding the joint to a model, the joint's compliance state can be toggled between Compliant and Non-Compliant.  If the joint is made Compliant, it no longer remains a rigid connection and the joint will then be treated as a bushing.

The joint can be modeled as a Single entity or as a Pair entity.

Properties

There are no editable properties for a Parallel Axes Joint.

Creating and Editing Joints

To learn how to add a Parallel Axes joint to a model, please see the Joints topic.

hmtoggle_plus1To create/add a Parallel Axes Joint to a model:
1.Once a Parallel Axes joint has been added to the model using any of the "entity" creation methods, the panel for the joint will automatically be displayed in the panel area.  See the panel examples below:

parallel_axes_joint_panel_conn_tab_mv

Joints Panel (Parallel Axes Joint) – Connectivity Tab - Single Entity - Normal Orientation Method

parallel_axes_joint_panel_conn_tab_pair_mv

Joints Panel (Parallel Axes Joint) – Connectivity Tab - Pair Entity - Inplane Orientation Method

2.The joint definition needs two bodies which are connected by the joint.  Select Body 1 by picking the body from the graphics area, or double click the Body 1 collector to open to the model tree (from which the desired body can be selected).
3.Similarly, pick Body 2 from the graphics area by clicking on the desired body (or use the collector and model tree method).
4.Select the Origin Point from the Project Browser, or the graphics area, to specify the point of origin for the joint.
5.The axis defining the constraint of the joint can be defined either by specifying a Normal, which will be used as the axis of the joint or by specifying a plane using the Inplane option, whose normal would be used as the axis.  Use the drop-down menu located on the right side of the panel to make your selection.
-If Normal is used, a Vector or Point which points in the normal direction of the constraining plane needs to be specified.

inplane_joint_normal_plane_mv_ug

OR

-If Inplane is used, the plane needs to be specified whose normal will be the axis of the joint using a combination of Vectors and Points (using the drop-down menu menus and collectors):

inplane_joint_inplane_plane_mv_ug

Global axes can be used for vectors by clicking on the desired axis (X, Y, or Z) in the graphics area (or by browsing through the model tree).

alignment_axis_vector_example_mv

6.When defining a Pair Parallel Axes Joint use pair entities for Body 1, Body 2, Origin, etc.

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

hmtoggle_plus1To edit or change the definition of a Joint entity:
1.Left click the Joints panel icon entityJoints-24 on the Constraint toolbar.

The Project Browser will filter the entities and display only the Joints in the model.

2.Select the desired joint in the Project Browser.

The corresponding panel is automatically displayed.

3.From the Connectivity tab, use the Joint type drop-down menu to change the joint type, or use the collectors to change the bodies and origins/alignment points of the joint.

parallel_axes_joint_drop_down_menu_mv_ug

Joints panel - Connectivity tab - joint type drop-down menu

Parallel Axes Joint in MDL and XML Formats

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

hmtoggle_plus1Parallel Axes Joint in MDL (Model Definition Language)

The Parallel Axes Joint can be of the following types:

1.Non-Compliant - Single and Pair
2.Compliant – Single and Pair

These four types of entities can be added to the model using MDL Statements shown below:

Syntax (Normal):

*ParallelAxesJoint(joint_name, "joint_label", body_1

                                             body_2,

                                             origin,

                                             NORMAL,

                                             POINT|VECTOR,

                                             point|vector)

                                             [ALLOW_COMPLIANCE]

To understand the complete syntax of the MDL statement please refer to the *ParallelAxesJoint() - parallel axes joint (normal) topic.

Syntax (Inplane):

*ParallelAxesJoint(joint_name, "joint_label", body_1

                                             body_2,

                                             origin,

                                             INPLANE,

                                             POINT|VECTOR,

                                             point_1|vector_1

                                             POINT|VECTOR,

                                             point_2|vector_2)

                                             [ALLOW_COMPLIANCE]

To understand the complete syntax of the MDL statement please refer to the *ParallelAxesJoint() - parallel axes joint (plane) topic.

Syntax (Normal):

*ParallelAxesJointPair(joint_name,  "joint_label", body_1,

                                                  body_2,

                                                  origin,

                                                  NORMAL,

                                                  POINT|VECTOR,

                                                  point|vector)

                                                  [ALLOW_COMPLIANCE]

To understand the complete syntax of the MDL statement please refer to the *ParallelAxesJointPair() - parallel axes joint (normal) topic.

Syntax (Inplane):

*ParallelAxesJointPair(joint_name,  "joint_label", body_1,

                                                  body_2,

                                                  origin,

                                                  INPLANE,

                                                  POINT|VECTOR,

                                                  point_1|vector_1,

                                                  POINT|VECTOR,

                                                  point_2|vector_2)

                                                  [ALLOW_COMPLIANCE]

To understand the complete syntax of the MDL statement please refer to the *ParallelAxesJointPair() - parallel axes joint (plane) topic.

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

hmtoggle_plus1Parallel Axes Joint in XML Format

The Parallel Axes joint when exported to the MotionSolve XML format is defined as a Constraint_Joint or Constraint_Jprim statement.

Syntax:

<Constraint_Joint [or Constraint_Jprim]

id  = "integer"

label = "Name of Joint"

type  =  "JOINT TYPE"

i_marker_id =  "integer"

j_marker_id = "integer"

/>

Example:

<Constraint_Joint [or Constraint_Jprim]

id= "301001"

label = "Parallel Axes Joint"

type = "PARALLEL AXES"

i_marker_id = "30103050"

j_marker_id = "30101050"

/>

In the above XML Model statement the i_marker_id and j_marker_id represent the I and J markers of the Joint which belong to Body 1 and Body 2 respectively.  To understand the complete syntax of the Constraint_Joint XML model statement, please refer to the MotionSolve Reference Guide Page for Constraint_Joint or Constraint_Jprim.

Creating a Parallel Axes Joint using the Tcl Command Layer

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

In case of the Parallel Axes joint using Normal, the statement will look as shown below:

mdlmodel_handle InterpretEntity ParallelAxesJt_handle ParallelAxesJoint j_Parallel Axes "\"Parallel Axes Joint\"" b_1 B_Ground p_ori "NORMAL" "VECTOR" "V_Global_Z" "ALLOW_COMPLIANCE";

In case of the Parallel Axes joint using Inplane, the statement will look as shown below:

mdlmodel_handle InterpretEntity ParallelAxesJt_handle ParallelAxesJoint j_Parallel Axes "\"Parallel Axes Joint\"" b_1 B_Ground p_ori "INPLANE" "VECTOR" "V_Global_X"  "VECTOR" "V_Global_Z"  "ALLOW_COMPLIANCE";

hmtoggle_arrow1InterpretSet

*This command is not applicable for Parallel Axes joint entities.

The InterpretEntity command is used to add entities to the model and the InterpretSet command  is used to set the entity properties (which is not applicable for this type of joint).  So in the case of the Parallel axes joint primitive, the properties that can be set are the Joint Initial Conditions.  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 example file below shows a Parallel Axes joint connecting two bodies:

hmtoggle_plus1Parallel AxesJoint.mdl

*BeginMDL( the_model, "Model",)

 *StandardInclude(FILE)

 *Point( p_0, "Single Joint Origin" )

 *PointPair( p_1, "Pair Joint Origin" )

 *Body( b_0, "Single Body 1", p_0, , , ,  )

 *BodyPair( b_1, "Pair Body 1", p_1, , , ,  )

//Parallel Axes joint definition

 *ParallelAxesJoint( j_ParallelAxesjsingle, "ParallelAxes Joint Single", b_0, B_Ground, p_0, NORMAL, VECTOR, V_Global_Z )

//Parallel Axes joint pair definition

 *ParallelAxesJointPair( j_ParallelAxesjpair, "ParallelAxes Joint pair", b_1, B_Ground, p_1, INPLANE, VECTOR, V_Global_X, VECTOR, V_Global_Z )

 *Point( p_2, "Point for ori" )

 *SetPoint( p_2,  0.0, 50.0, 0.0 )

 *SetPoint( p_1,  LEFT, , -100 )

*EndMDL()

See Also:

Joints Panel

Adding and Removing Entities

*ParallelAxesJoint() - parallel axes joint (normal) (MDL Model Statement)

*ParallelAxesJoint() - parallel axes joint (plane) (MDL Model Statement)

*ParallelAxesJointPair() - parallel axes joint (normal) (MDL Model Statement)

*ParallelAxesJointPair() - parallel axes joint (plane) (MDL Model Statement)

Constraint_Joint (XML Command)

Constraint_JPRIM (XML Command)

InterpretEntity (Tcl Command)

InterpretSet (Tcl Command)