MotionView User's Guide

Curve to Surface (CVSF) Joint

Curve to Surface (CVSF) Joint

Previous topic Next topic Expand/collapse all hidden text  

Curve to Surface (CVSF) Joint

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

This section describes the Curve to Surface (CVSF) Joint entity of MotionView and shows the various usage, creation, and editing methods.

Theory/Background

A Curve to Surface Joint is a higher pair constraint. The Curve to Surface joint provides five degrees of freedom:  three rotational at the instantaneous point of contact and two translational DOF.

Common Applications of CVSF Joints are:

Cam Follower Mechanisms
Robotic Simulations
Packaging and Manufacturing Simulations

The topological information required to define an CVSF Joint is shown in the figure below:

curve_to_surface_joint_diagram_mv

Entity Data Members

The data members of the Curve to Surface Joint can be classified into the following members:

Connectivity

An CVSF Joint needs the following:

Two Bodies – Body 1 and Body 2.
The Curve on Body 1 that is constrained to the Surface on Body 2.
The Surface on Body 2.
Reference markers to which the Surface and Curves data are defined – Ref Marker 1 and Ref Marker 2.
An optional argument for the reference marker of the initial condition information for the contact point on the curve, as well as the surface.  If not used, the initial condition information is defined with respect to the reference markers of the curve and surface.

This advanced joint can only be modeled as a Single entity (it cannot be modeled as a Pair entity).

Properties

The CVSF Joint can have two types of Initial Conditions – Position and Velocity.

Position Initial Condition for a CVSF Joint means the starting point location of Body 1 that lies on the Contact Point on the Surface of Body 2 – XYZ Position.
The starting point location of Body 2 that lies on the Curve of Body 1 – XYZ Position.
Additionally, a Marker can be specified as a Reference marker for specifying the Position and Velocity initial conditions. By default, this marker is set of Joint Reference Marker that belongs to Body 2 – Initial Condition Marker.

Creating and Editing Joints

To learn how to add a Curve to Surface Joint to a model, please see the Joints topic.

Important Note - In order to completely specify a Curve to Surface Joint, the following entities must first be created:

1.A 3D reference Curve.
2.A 3D Reference Surface.
3.A Marker that belongs to Body 1 of the Joint and is located appropriately so that the Curve entity can be meaningfully described as belonging to the Coordinate System of the Reference Marker.
4.A Marker that belongs to Body 2 of the Joint and is located appropriately so that the Surface entity can be meaningfully described as belonging to the Coordinate System of the Reference Marker.
hmtoggle_plus1To create/add a Curve to Surface Joint to a model:
1.Once an CVSF 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:

curve_to_surface_joint_panel_conn_tab_mv

Joints Panel (CVSF Joint) – Connectivity Tab

2.The joint definition needs two bodies which are connected by the joint.  From the Connectivity tab, select Body 1 and Body 2 (which are selected by using the Reference Markers for each, respectively).
3.Select the Curve of Origin for the joint and the marker on Body 1 (which is constrained to the Curve on Body 1).
4.Select the Surface of Origin for the joint and the marker on Body 2 (which is constrained to the Surface on Body 2).
5.Click on the Initial Conditions tab.
6.The default Initial Condition Maker for the joint is the Ref Marker that is specified on the Connectivity Tab.  To change it, click the Use Initial Condition Marker check box and select the desired marker.

curve_to_surface_joint_panel_initial_cond_tab_mv

Joints Panel (CVSF Joint) – Initial Conditions Tab

7.To specify an initial position for the Curve that will supersede those specified by the Curve on the Connectivity tab, click the Use XYZ check box and type in the initial position values.
8.To specify an initial position for the Surface that will supersede those specified by the Surface on the Connectivity tab, click the Use XYZ check box and type in the initial position values.
hmtoggle_plus1To edit or change the definition of a Joint entity:
1.Left click the Advanced Joints panel icon entityAdvancedJoints-24 on the Constraint toolbar.

The Project Browser will filter the entities and display only the Advanced 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 axis of the joint.

Curve to Surface Joint in MDL and XML Formats

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

hmtoggle_plus1Curve to Surface Joint in MDL (Model Definition Language)

The Curve to Surface Joint can be added to the model using MDL Statements shown below:

Syntax:

*CurveToSurfaceJoint(cvsf_name, "cvsf_label", body_1,

body_2,

curve,

surface,

ref_marker_1,

ref_marker_2,

[icm_1],

[icm_2])

Example:

*CurveToSurfaceJoint(aj_cvsf, "Curve to Surface Joint", b_sb1, B_Ground, crv_cvsf, sur_cvsf, m_b1crv, m_b2srf, MODEL.m_b1crv, MODEL.m_b2srf)

To understand the complete syntax of the MDL statement please refer to the *CurveToSurfaceJoint topic.

The *SetJointIC statement can be used for specifying initial conditions for the Curve to Surface joint.

Syntax:

*SetJointICFlag(joint_name, true|false, true|false)

*SetJointIC(joint_name, crv_ic_x_disp, crv_ic_y_disp, crv_ic_z_disp, srf_ic_x_disp, srf_ic_y_disp, srf_ic_z_disp)

Example:

*SetJointICFlag( aj_cvsf, true, true )

*SetJointIC( aj_cvsf, 1, 16, 0, 150, 250, 150 )

To understand the complete syntax of this MDL statement please refer to the *SetJointICFlag and *SetJointIC topics.

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

hmtoggle_plus1Curve to Surface Joint in XML Format

The CVSF Joint when exported to the MotionSolve XML format is defined as a Constraint_CVSF statement.

Syntax:

<Constraint_CVSF

id= "integer"

label= “Name of Constraint_CVSF element”

i_marker_id=  "integer"

[

i_disp_xo= "real"

i_disp_yo = "real"

i_disp_zo ="real"

]

curve_id = "integer"

j_marker_id=  "integer"

[

j_disp_xo=  "real"

j_disp_yo=  "real"

j_disp_zo=  "real"

]

surface_id =  "integer" >

/>

In case of the CVSF Joint the model statement will be as shown below:

<Constraint_CVSF

id                  = "301001"

label               = "Curve to Surface Joint"

  i_marker_id         = "30103022"

  j_marker_id         = "30101081"

  i_disp_x0           = "1."

  i_disp_y0           = "16."

  i_disp_z0           = "0."

  j_disp_x0           = "150."

  j_disp_y0           = "250."

  j_disp_z0           = "150."

  curve_id            = "301001"

  surface_id          = "301001"

/>

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_CVSF XML model statement, please refer to the MotionSolve Reference Guide Page for Constraint_CVSF.

Creating and Editing Curve to Surface Joints 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 advjoint CurveToSurfaceJoint aj_cvsf "\"Curve to Surface Joint\"" b_sb1 B_Ground crv_cvsf sur_cvsf m_b1crv m_b2srf MODEL.m_b1crv MODEL.m_b2srf;

hmtoggle_arrow1InterpretSet

The initial conditions for the Curve to Surface Joint can be specified using the InterpretSet TCL command.

Syntax:

mdlmodel_handle InterpretSet keyword tokens

Example:

mdlmodel_handle InterpretSet SetJointICFlag aj_cvsf "true" "true";

mdlmodel_handle InterpretSet SetJointIC aj_cvsf 1 16 0 150 250 150;

The InterpretEntity command  is used to add entities to the model and the command InterpretSet is used to set the entity properties.  So in the case of the Curve to Surface Joint, 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.

See Also:

Advanced Joints Panel

Adding and Removing Entities

*CurveToSurfaceJoint (MDL Model Statement)

*SetJointIC (MDL Model Statement)

*Curve (MDL Model Statement)

*Surface (MDL Model Statement)

Constraint_CVSF (XML Command)

InterpretEntity (Tcl Command)

InterpretSet (Tcl Command)