This section describes the Inline Joint entity of MotionView and shows the various usage, creation, and editing methods.
An Inline joint is a four degree-of-freedom primitive constraint. The constraint is imposed such that the origin of a reference marker on one body (Body 2) translates along the Z axis of a reference marker on the other body (Body 1) connected by the joint. Three rotations are free along with one translation along the Z marker defining the joint orientation. Joint primitives like Inline joints may not have a physical existence. They can be used to impose unique constraints where using a regular joint would not be possible.
Inline joint construction
The Inline joint is represented using Markers when exported to an MBD Solver. The representation can be visualized as shown in the two figures below:
Inline joint - coincident origins |
Inline joint - non-coincident origins |
The bodies that are constrained by an Inline 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 Marker I with respect to Marker J. While defining the joint, the markers can either have coincident origins or they can be non-coincident. The vertex of Marker I will be constrained to remain along the Z axis of Marker J, however Marker I can rotate about any of its axes.
The topological information required to define an Inline Joint is shown in the figure below:
The data members of the Inline Joint can be classified into the following members:
An Inline 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. |
• | Alignment Method - An axis needs to be specified for the constraint to be imposed. This can be done by specifying a Vector or by a Point which acts as the origin of Marker J. The Z axis of the Marker J will point to the joint origin, thus representing the constraint axis. |
• | 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.
There are no editable properties for an Inline Joint.
To learn how to add a Inline Joint to a model, please see the Joints topic.
Joints Panel (Inline Joint) – Connectivity Tab - Single Entity Joints Panel (Inline Joint) – Connectivity Tab - Pair Entity
OR
Note - The same steps as shown above can also be used to define Pair Inline Joint entities. |
The Project Browser will filter the entities and display only the Joints in the model.
The corresponding panel is automatically displayed.
Joints panel - Connectivity tab - joint type drop-down menu |
The model containing the Inline Joint can be saved in MDL format from MotionView and exported in the MotionSolve XML format.
The Inline Joint can be of the following types:
And these four types of entities can be added to the model using MDL Statements shown below:
To learn how to create a complete model using MDL Statements please refer to tutorial MV-1060: Introduction to MDL. |
The Inline joint when exported to the MotionSolve XML format is defined as a Constraint_Joint statement. Syntax: <Constraint_Joint id = "integer" label = "Name of Joint" type = "JOINT TYPE" i_marker_id = "integer" j_marker_id = "integer" /> In case of the Inline joint the model statement will be as shown below: <Constraint_Joint id = "301001" label = "Inline Joint" type = "INLINE" 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. |
In MotionView, the Tcl command layer can be used to add any MDL entities to the model. There are two Tcl commands that can be used to add an entity:
Syntax: mdlmodel_handle InterpretEntity new_handle keyword varname label In case of the Inline joint with coincident origins, the statement will look as shown below: mdlmodel_handle InterpretEntity InlineJt_handle InlineJoint j_Inline "\"Inline Joint\"" b_1 B_Ground p_ori "AXIS" "VECTOR" "V_Global_Z" "ALLOW_COMPLIANCE"; In case of the Inline joint with non-coincident origins, the statement will look as shown below: mdlmodel_handle InterpretEntity InlineJt_handle InlineJoint j_Inline "\"Inline Joint\"" b_1 B_Ground p_ori_1 "ORIGIN" "POINT" p_ori_2 "ALLOW_COMPLIANCE"; |
*This command is not applicable for Inline 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). 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 Inline joint connecting two bodies:
*BeginMDL( the_model, "Model",) *StandardInclude(FILE) *Point( p_0, "Single Joint Origin" ) *PointPair( p_1, "Pair Joint Origin" ) *SetPoint( p_2, 0.0, 50.0, 0.0 ) *SetPoint( p_1, LEFT, , -100 ) *Body( b_0, "Single Body 1", p_0, , , , ) *BodyPair( b_1, "Pair Body 1", p_1, , , , ) //Inline joint definition *InlineJoint( j_Inlinejsingle, "Inline Joint Single", b_0, B_Ground, p_0, AXIS, VECTOR, V_Global_X ) //Inline joint pair definition *InlineJointPair( j_Inlinejpair, "Inline Joint pair", b_1, B_Ground, p_1, AXIS, VECTOR, V_Global_Z ) *Point( p_2, "Point for ori" ) *EndMDL |
See Also:
*InlineJoint() - inline joints (coincident origins) (MDL Model Statement)
*InlineJoint() -inline joint (non-coincident origins) (MDL Model Statement)
*InlineJointPair() inline joints (coincident origins) (MDL Model Statement)
*InlineJointPair() - inline joints (non-coincident origins) (MDL Model Statement)
Constraint_Joint (XML Command)
InterpretEntity (Tcl Command)
InterpretSet (Tcl Command)