MV-1027: Model a Point-to-Deformable-Curve (PTdCV) Higher-Pair Constraint

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

A PTdCV joint is a higher pair constraint. This constraint restricts a specified point on a body to move along a specified deformable 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 a point mass. For this, you define a deformable curve on a beam supported at its ends by revolute joints. A mass is constrained to move along the curve with a PTdCV constraint.

Create Points

In this step you will create the points for the PTdCV model.

Before you begin, copy the file KG_N_MM_S_50elems2.h3d, located in the mbd_modeling\interactive folder, to your <working directory>.
  1. Start a new MotionView session.
  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 PointbeamInterface1. Accept the default Variable name.
  4. Click OK.
  5. Click the Properties tab and specify the the coordinates as X = 152.4, Y = 0.0, and Z = 0.0.
  6. Repeat steps 2 through 5 for the points specified in Table 1.
    Table 1.
    Point X Y Z
    PointbeamInterface2 460.80 0.0 0.0
    Point0 183.24 0.0 0.0
    Point1 214.08 0.0 0.0
    Point2 244.92 0.0 0.0
    Point3 275.76 0.0 0.0
    Point4 306.60 0.0 0.0
    Point5 337.44 0.0 0.0
    Point6 368.28 0.0 0.0
    Point7 399.12 0.0 0.0
    Point8 429.96 0.0 0.0

Create Bodies

In this step you will create the bodies for the PTdCV model.

We will have two bodies apart from the ground body in our model visualization: the beam and the ball. Pre-specified inertia properties will be used to define the ball.
  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. In the dialog, for Label enter Beam. Accept the default Variable name.
    Note: For the remainder of the tutorial, accept all default variable names.
  3. From the Properties tab, click the Flex Body (CMS) check box.
  4. Click the (Graphic file browser) icon and select KG_N_MM_S_50elems2.h3d from the <working directory>.
    Note: The same file path with automatically populate the H3D file field.
  5. Repeat step 1. In the dialog, for Label enter Ball.
  6. From the Properties tab, specify the information provided in Table 2.
    Table 2.
    Mass Ixx Iyy Izz Ixy Iyz Izx
    100 1e6 1e6 1e6 0.0 0.0 0.0
  7. Under the CM Coordinates tab, check the Use center of mass coordinate system box.
  8. Double click .
  9. From the dialog, select Point4 and click OK. Accept defaults for axes orientation properties.
  10. In the Initial Conditions tab, under Translational velocity check the Vx box.
  11. In the text box, enter a value of 100. Accept all other default values.
    This sets a value of 100 for the translational velocity of the ball in the X-direction. A somewhat high value of Vx is introduced to make the motion of the ball clearly visible in the animation.

Create Markers

In this step you will define the markers required for the beam.

A total of define eleven markers will be defined at equal distances along the span of the beam.
  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. In the dialog, for Label enter Marker0 and click OK.
  3. In the Properties tab, double-click .
  4. In the dialog, choose Beam and click OK.
  5. Double-click .
  6. In the dialog, choose PointbeamInterface1 and click OK.
    Accept the default for axes orientation.
  7. Repeat steps 1 through 6 for the points specified in Table 3.
    Table 3.
    Name Body Point
    Marker0 Beam PointbeamInterface1
    Marker1 Beam Point0
    Marker2 Beam Point1
    Marker3 Beam Point2
    Marker4 Beam Point3
    Marker5 Beam Point4
    Marker6 Beam Point5
    Marker7 Beam Point6
    Marker8 Beam Point7
    Marker9 Beam Point8
    Marker10 Beam Pointbeaminterface2

Create Joints

In this step you will define the fixed joints necessary for the model.

We will define all the necessary joints except for the PTdCV joint, which will be defined as an advanced joint later. We require two joints for the model, both of them being fixed joints between the beam and ground body.
  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. In the dialog, for Label enter Joint0.
  3. In the drop-down-menu, select Fixed Joint and click OK.
  4. In the panel, double-click .
  5. In the dialog, choose Beam and click OK.
  6. Double-click .
  7. In the dialog, select Ground Body and click OK.
  8. Double-click .
  9. In the dialog, select PointbeamInterface1 and click OK.
  10. Repeat steps 1 through 9 to create a second fixed joint.
    1. For Label, enter Joint1.
    2. For , choose PointbeamInterface2.
    3. For all other steps, use the same inputs as you did for Joint0.

Create Deformable Curves

In this step you will define a deformable curve on the surface of the beam.

The ball is constrained to move along this curve.
  1. Open the Add DeformableCurve dialog by doing one of the following:
    • From the Project Browser, right-click on Model and select Add > Reference Entity > Deformable Curve.
    • On the Model-Reference toolbar, click the (Deformable Curve) icon.
  2. In the dialog, for Label enter DeformableCurve0.
  3. Click OK.
  4. In the Properties tab, specify the properties of the deformable curve.
    1. For Data type, select Marker.
    2. For Left end type and Right end type, select NATURAL.
    3. Click the check box next to .
      The Add button will change to an Insert button.
    4. In the text box next to Insert, enter 10. Then click Insert.
      Eleven collectors will display in the panel.
    5. Double-click on each individually.
    6. In each dialog, select each marker you created in the Create Markers step, starting with Marker 0 and ending with Marker 10.

Create the PTdCV Joint

In this step you will create the advanced PTdCV 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, for Label enter AdvancedJoint 0.
  3. In the Connectivity tab, specify the connections shown below.
    PointToDeformableCurveJoint, Ball for Body, Point4 for Point, and DeformableCurve 0 for DeformableCurve.

Create Graphics

In this step, you will create a graphic for the ball.

  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. In the dialog, for Label enter Graphic0.
  3. In the Type drop-down menu, choose Sphere. Then click OK.
  4. In the Connectivity tab, double-click .
  5. In the dialog, select Ball and click OK.
  6. Double-click on .
  7. In the dialog, select Point4 and click OK.
  8. In the Properties tab, under Radius enter 2.0.
  9. In the Visualization tab, choose a color for the graphic.

Find Nodes

In this step, you will return to the Bodies Panel and find the Nodes on the beam.

  1. In the Project Browser, click on the Beam body.
  2. On the reference toolbar, click the (Bodies) icon.
  3. In the panel, click the Nodes button.
  4. In the dialog, uncheck the Only search interface nodes box.
  5. Click the Find All button.
  6. Close the dialog.
    Your model should resemble the example shown in Figure 1.


    Figure 1.

Run the Model

In this step you will run the model with the PTdCV joint constraint.

Important: This type of constraint does not ensure that the contact point will stay within the range of data specified for the curve. Additional forces at the end need to be defined by the user to satisfy this requirement. If the contact point goes out of range of the data specified for this curve, the solver encounters an error (unless additional forces are defined to satisfy this). In that case, you must change the initial velocities for the ball, increase the range of data specified for the curve, or run the simulation for a shorter interval of time.
  1. On the toolbar, click (Run).
  2. In the Run panel, specify the values shown in Figure 2.


    Figure 2.
  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. On the Model Check toolbar, 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 plot the Z position of the center of mass of the ball.

  1. Click on the (Add Page) icon.
  2. In the Select application drop-down menu, change the client from MotionSolve to HyperGraph 2D .
  3. On the Curves toolbar, click (Build Plots).
  4. Click the (file browser) and open the results.abf file.
  5. Configure the Plots panel as show in Figure 3.


    Figure 3.
  6. Click OK.
    This will plot the Z-displacement of the ball. The plot should look like the example given in Figure 4.


    Figure 4.