MV-1025: Model Point-to-Curve (PTCV) Higher-Pair Constraint

In this tutorial you will learn how to model a PTCV (point-to-curve) joint.

A PTCV (point-to-curve) joint is a higher pair constraint. This constraint restricts a specified point on a body to move along a specified curve on another body. The curve may be open or closed, planar or in 3-d space. The point may belong to a rigid, flexible or point body. This constraint can help avoid modeling contact in some systems. It may prove advantageous since proper contact modeling (refer to MV-1010: 3D Mesh to Mesh Contact Simulation) in many cases involves fine-tuning of contact parameters. One good example for such a system is a knife-edge cam follower mechanism. You can avoid modeling the contact between the cam and follower by defining a PTCV joint: the curve being the cam profile and the point being the tip of the follower.


Figure 1. A Knife-edge Cam Follower Mechanism
In this tutorial, you will model a knife-edge cam follower mechanism with the help of a PTCV joint.

Create Points

In this step you will create points for the model.

Copy all the files from the mbd_modeling\interactive folder to your <working directory>.
  1. Start a new MotionView session.
    We will work with the default units (kg, mm, s, N).
  2. Open the Add Point or PointPair dialog in one of the following ways:
    • From the Project Browser right-click on Model and select Add Reference Entity > Point.
    • On the Model-Reference toolbar, right-click the (Point) icon.
  3. For Label, enter PivotPoint. Accept the default Variable name.
  4. Click OK.
  5. Click the Properties tab and specify the X, Y, and Z coordinates as 0.0.
  6. Repeat steps 2 through 5 to create the points specified in Table 1.
    Table 1.
    Point X Y Z
    FollowerCM 0.0 65.557 0.0
    FollowerPoint 0.0 25.0 0.0
    FollowerJoint 0.0 85.0 0.0
    CamCM 0.0 -14.1604 0.0

Create Bodies

In this step you will create the Cam and Follower bodies.

You will use pre-specified inertia properties to define the bodies.
  1. Open the Add Body or BodyPair dialog in one of the following ways:
    • From the Project Browser right-click on Model and select Add Reference Entity > Body.
    • On the Model-Reference toolbar, right-click on the (Body) icon.
  2. Add the Cam and Follower bodies.
    1. For the first Label, enter Cam.
    2. Click Apply.
    3. For the second Label, enter Follower.
    4. Click OK to close the Add Body or BodyPair dialog.
      The bodies you created will appear in the Model Tree under the Bodies folder.
  3. In the Properties panel for each body, specify the information given in Table 2.
    Table 2.
    Body Mass Ixx Iyy Izz Ixy Iyz Izx
    Cam 0.174526 60.3623 63.699 123.276 0.0 0.0 0.0
    Follower 0.0228149 7.10381 0.219116 7.22026 0.0 0.0 0.0
  4. Specify the CM Coordinate tab settings for the Cam body.
    1. Check the Use center of mass coordinate system box.
    2. Double-click .
    3. In the Select a Point dialog, choose CamCM.
    4. Click OK.
    5. Accept the defaults for axes orientation properties.
  5. Specify the CM Coordinate tab settings for the Follower body.
    1. Check the Use CM Coordsys box.
    2. Double-click .
    3. In the Select a Point dialog, choose FollowerCM.
    4. Click OK.
    5. Accept the defaults for axes orientation properties.

Create Joints

In this step you will define the revolute joint and the translational joint needed for the model.

The revolute joint is between the Cam and Ground Body. The translational joint is between the Follower and the Ground Body. You will define the PTCV joint in a different step.
  1. Open the Add Joint or JointPair dialog in one of the following ways:
    • From the Project Browser, right-click on Model and select Add > Constraint > Joint.
    • On the Model-Constraints toolbar, click the (Joints) icon.
  2. Create the CamPivot joint.
    1. In the Add Joint or JointPair, for Label enter CamPivot.
    2. For Type, select Revolute Joint.
    3. Click OK.
    4. In the Connectivity tab, double click on and resolve it to Cam.
    5. Resolve to Ground Body and click OK.
    6. In the Connectivity tab, double click and resolve it to PivotPoint.
    7. Change the Alignment Axis to . Resolve Vector to Global Z.
  3. Create the FollowerJoint.
    1. In the Add Joint or JointPair, for Label enter FollowerJoint.
    2. For Type, select Translational Joint.
    3. Click OK.
    4. In the Connectivity tab, double click on and resolve it to Follower.
    5. Resolve to Ground Body and click OK.
    6. In the Connectivity tab, double click and resolve it to FollowerJoint.
    7. Change the Alignment Axis to . Resolve Vector to Global Y and click OK.

Create Markers

In this step you will define markers required for defining the PTCV joint.

You need a marker associated with the Cam (for the curve) and one associated with the Follower (for the point).
  1. Open the Add Marker or MarkerPair dialog in one of the following ways:
    • From the Project Browser, right-click on Model and select Add > Reference Entity > Marker.
    • On the Model-Reference toolbar, click the (Marker) icon.
  2. Create the CamMarker.
    1. In the Add Marker or MarkerPair dialog, for Label enter CamMarker.
    2. Click OK.
    3. In the Properties tab, double click on and resolve it to Cam and click OK.
    4. In the Properties tab, double-click and resolve it to PivotPoint.
    5. Click OK. Accept the defaults for axes orientation.
  3. Create the FollowerMarker.
    1. In the Add Marker or MarkerPair dialog, for Label enter FollowerMarker.
    2. Click OK.
    3. In the Properties tab, double click on and resolve it to Follower and click OK.
    4. In the Properties tab, double-click and resolve it to FollowerPoint.
    5. Click OK. Accept the defaults for axes orientation.

Create Graphics

In this step you will load graphics for the Cam and Follower and create graphics for the joints in the model.

Graphics for the cam and follower have been provided as h3d files. We need to associate the h3ds with bodies defined in our model.
  1. Open the Add Graphics or GraphicPair dialog in one of the following ways:
    • From the Project Browser, right-click on Model and select Add > Reference Entity > Graphics.
    • On the Model-Reference toolbar, click the (Graphics) icon.
  2. From the dialog, for Label, enter Cam.
  3. From the drop-down menu, click File.


    Figure 2.
  4. Click the (File Browser) icon and open the CamProfile.h3d from the model folder.
  5. Click OK.
  6. In the Connectivity tab, double-click on and resolve the graphic to the Cam body.
  7. Repeat step 1 to create another graphic. For Label, enter Follower.
  8. From the drop-down menu, click File.
  9. Click the (File Browser) icon and open the FollowerProfile.h3d from the model folder.
  10. Click OK.
  11. In the Connectivity tab, double-click on and resolve the graphic to the Follower body.
  12. Create cylinder graphics for the Cam pivot in your model using the specifications listed in Table 3.
    Table 3.
    Label Type Direction ()
    PivotGraphicOne Cylinder Ground Body PivotPoint Global Z
    PivotGraphicTwo Cylinder Cam PivotPoint Global Z
  13. In the Project Browser, click PivotGraphicOne.
  14. In the Properties tab, specify the values listed in Table 4:
    Table 4.
    Property Value
    Length 7.5
    Offset -3.75
    Radius 1 4.000
    Radius 2 4.000
  15. For Cap properties, choose Cap Both Ends.
  16. In the Project Browser, click PivotGraphicTwo.
  17. In the Properties tab, specify the values listed in Table 5:
    Table 5.
    Property Value
    Length 7.6
    Offset -3.8
    Radius 1 2.000
    Radius 2 2.000
  18. For Cap properties, choose Cap Both Ends.
  19. Create a box graphic for the Follower translational joint with the specifications in Table 6 and the Properties listen in Table 7.
    Table 6.
    Label Type Z-Axis () XZ Plane ()
    FollowerJointGraphic Center (choose this option in the Connectivity tab) Ground Body FollowerJoint Global Z Global X
    Table 7.
    Property Value
    Length X 15
    Length Y 10
    Length Z 10
    Your model should look like the example in Figure 3.
    Figure 3. A Knife-edge Cam Follower Mechanism in MotionView

Create the Curve

In this step you will create the curve that defines the profile of the Cam.

You will use data provided in .csv format to define the curve.
  1. Open the Add Curve dialog by doing one of the following:
    • From the Project Browser, right-click on Model and select Add > Reference Entity > Curve.
    • On the Model-Reference toolbar, click the (Curves) icon.
  2. For Label, enter CamProfile and click OK.
  3. In the Properties tab, click the first drop-down menu and change the curve from 2D Cartesian to 3D Cartesian.
  4. Click the fourth drop-down menu and set the curve type to Closed curve.
  5. Click the x radio button.
  6. Click and open CamProfile.csv.
  7. Choose the properties of the curve given in Figure 4.
    Figure 4.
  8. Click the y radio button. Change the Component to Column 2.


    Figure 5.
  9. Click the z radio button. Change the Component to Column 3.


    Figure 6.

Create the PTCV Joint

In this step, you will create the PTCV joint.

  1. Open the Add AdvJoint dialog by doing one of the following:
    • From the Project Browser, right-click on Model and select Add > Constraint > Advanced Joint.
    • On the Model-Reference toolbar, click the (Advanced Joint) icon.
  2. In the dialog, enter the Label PTCV.
  3. From the drop-down menu, choose PointToCurveJoint and click OK.
  4. Configure the Connectivity tab for the PTCV joint.
    1. Double click . In the dialog, choose Follower and click OK.
    2. Double click . In the dialog, choose FollowerPoint and click OK.
    3. Double click . In the dialog, choose CamProfile and click OK.
    4. Double click . In the dialog, choose CamMarker and click OK.

Specify the Cam Motion

In this step, you will specify a motion for the cam using an expression.

  1. Open the Add Motion or MotionPair dialog by doing one of the following:
    • From the Project Browser, right-click on Model and select Add > Constraint > Motion.
    • On the Model-Reference toolbar, click the (Motion) icon.
  2. In the dialog, enter the Label CamMotion and click OK.
  3. In the Connectivity tab, double-click . Choose CamPivot and click OK.
  4. in the Properties tab, in the drop-down menu define the motion by Expression.
  5. Enter `10*TIME` in the Expression field.


    Figure 7.

Specify Gravity

In this step you will specify the gravity in the negative Y direction.

  1. In the Project Browser, click to expand Misc. > Forms.
  2. In the Forms folder, click Gravity. In the panel, specify the following values:
    • X Component = 0
    • Y Component = -9810
    • Z Component = 0

Specify Output Requests

In this step you will specify the output requests in order to monitor the reaction on the PTCV joint.

  1. Open the Add Output dialog by doing one of the following:
    • From the Project Browser, right-click on Model and select Add > General MDL Entity > Output.
    • On the General toolbar, click the (Outputs) icon.
  2. In the dialog, for Label enter PTCV Reaction and click OK.
  3. In the Properties tab, from the drop-down menu define the output by Expression.
  4. Click in the F2 field to activate the button.
  5. Click the button.
  6. In the Expression Builder, populate the expression as 'PTCV({aj_0.idstring},0,2,0)'.


    Figure 8.
  7. Click OK.
  8. Repeat steps 4 through 6 for F3, F4, F6, F7, and F8 by changing the third parameter in the expression to 3, 4, 6, 7, and 8 accordingly.
    The PTCV (id, jflag, comp, ref_marker) function returns the reaction on the PTCV joint:
    • id ID of the PTCV joint
    • jflag 0 gives reaction on the I-marker and 1 on J-marker
    • comp component of the reaction
    • ref_marker reference marker (0 implies Global Frame)

Run the Model

In this step you will run the knife-edge cam follower model.

The model is now defined completely and is ready to run.
  1. On the toolbar, click (Run).
  2. In the Run panel, specify the values shown in Figure 9.


    Figure 9.
  3. Click the Save and run current model radio button.
  4. Click the (browser icon) and specify a name for the solver file.
  5. Click Save.
  6. Click the (Check Model) button to check the model for errors.
  7. To invoke the solver, click the Run button.
  8. Once the solver has finished, click the (Start/Pause Animation) button to view the animation.

View the Results

In this step you will learn how to view the animation and plot the Y displacement of the follower.

  1. Once the solver has finished, the Animate button will be active. Click on Animate.
    Click the (Start/Pause Animation) button to view the animation.

    One would also like to inspect the displacement profile of the follower in this mechanism. For this, you will plot the Y position of the center of mass of the follower.

  2. From the Page Controls toolbar, click > . Click in the window on the lower right to make it the active window.
  3. In the Select application drop-down menu, change the client from MotionView to HyperGraph 2D .
  4. On the Curves toolbar, click (Build Plots).
  5. Click the (file browser) and open the results.abf file.
  6. Configure the Plots panel as show in Figure 10.


    Figure 10.
  7. Click Apply. This will plot the Y profile of the center of mass of the follower.
    The profile for the Y-displacement of the follower should look like the one in Figure 11.
    Figure 11.
    If you set the x-axis properties to zoom in on the cycle, the profile looks as shown in Figure 12.
    Figure 12.

Check the Model for Potential Lift-Off

In this step, you will check the knife-edge cam follower mechanism for potential lift-off by plotting the Y-reaction on the follower.

In some cases, the dynamics of the system may cause the follower to lose contact with the cam. This is called ‘lift-off’. In such cases, modeling the system with a PTCV will give you incorrect results because the joint constrains the follower point to always be on the curve (and hence cannot model lift-offs). For such cases, you must use contact modeling (refer to MV-1010: 3D Mesh to Mesh Contact Simulation). However, you will want to start with a PTCV model since it is a lot easier than modeling contact. Given this scenario, model the system using a PTCV joint and monitor the PTCV joint reaction. If the reaction on the follower is a ‘pulling’ reaction, this indicates lift-off would have occurred and you must switch to a contact model. Otherwise, the contact model is unnecessary. Now, you will check the model you used in the tutorial. The follower is moving along the Y-axis, so any negative reaction along the Y-axis is a 'pulling' reaction.
  1. Click (Add Page) to add a new page to the session.
  2. Switch the client to HyperGraph 2D .
  3. Click on (Build Plots).
  4. Click on (browser icon) and load the results.abf file.
  5. Configure the Plot panel as shown in Figure 13.


    Figure 13.
  6. Click Apply.
    The profile should look like the one shown in Figure 14.


    Figure 14.
  7. Scale the x-axis to view one cycle on the profile.


    Figure 15.
    As shown in Figure 15, the Y component of the PTCV reaction on the follower is always positive. There is no pulling reaction, so the PTCV model is acceptable for this mechanism.