CVCV

The CVCV statement defines a curve-to-curve constraint that restricts a planar curve on one part that is to be in contact with, and tangent to, a planar curve on a second part. The curves must lie in the same plane, but the parts to which they are attached may undergo three-dimensional motion.

Format

Arguments

 
ICURVE=id
Specifies the identifier of a CURVE statement from which Adams Solver constructs the first curve. The IRM marker specifies the coordinate system in which the x, y, z coordinates of ICURVE are specified. The curve is attached rigidly to the part containing the IRM marker. The z component of the curve must be zero. As a result, the curve lies in the x-y plane of the IRM marker.
IDISP=x,y,z
Specifies the initial point of contact on the first curve. Adams Solver (FORTRAN) uses a point on the curve nearest to that specified if the point specified is not exactly on the curve. By default, the contact point is specified in the IRM marker coordinate system. You may supply the IICM argument and enter IDISP in IICM marker coordinates if another coordinate system is more convenient.

Adams Solver (FORTRAN) assembles the system with the contact at the specified point on the curve if you supply IDISP. Adams Solver (FORTRAN) assumes the initial contact is at the point on the first curve closest to the second curve at the input configuration if you do not supply IDISP. In this case, Adams Solver (FORTRAN) may adjust that contact point to maintain other part or constraint initial conditions.
IFLOAT=id
Specifies the identifier of a floating marker. Adams Solver (FORTRAN) positions the origin of the IFLOAT marker to be at the instantaneous point of contact on the first curve, which is also the global position of the JFLOAT marker on the second curve. Adams Solver (FORTRAN) orients the IFLOAT marker so that its x-axis is along the tangent at the instantaneous contact point, its y-axis is along the instantaneous normal, and its z-axis along the resultant binormal. For a CVCV constraint, the binormal of ICURVE is always parallel to the z-axis of the IRM marker. The IFLOAT and IRM markers must lie on the same part.
IICM=id
Specifies the identifier of a fixed marker defining the coordinate system in which the values for IDISP are defined. The IICM marker must be on the same part as the IRM marker.

Default: IRM marker
IRM=id
Specifies the identifier of a fixed marker on the part containing ICURVE. The IRM marker identifies not only the part that the ICURVE is attached to, but also identifies the coordinate system in which the coordinates of ICURVE are specified. Adams Solver (FORTRAN) constructs the ICURVE in the x-y plane of the IRM marker coordinate system. The IFLOAT and IRM markers must lie on the same part.
IVEL=r
Specifies the magnitude of the initial velocity of the contact point relative to the part containing ICURVE. This is the speed at which the contact point is initially moving tangent to the curve. IVEL is negative if the contact point is moving towards the start of the curve, positive if the contact point is moving toward the end of the curve, or zero if the contact point is stationary on the curve.

Adams Solver (FORTRAN) gives the contact point the specified initial speed along the first curve if you supply IVEL. Adams Solver (FORTRAN) assumes the initial velocity is zero if you do not supply IVEL, but may adjust the velocity to maintain other part or constraint initial conditions.

Default: 0
JCURVE=id
Specifies the identifier of a CURVE statement from which Adams Solver (FORTRAN) constructs the second curve. The JRM marker specifies the coordinate system in which the x, y, z coordinates of JCURVE are specified. The curve is attached rigidly to the part containing the JRM marker. The z component of the CURVE must be zero. As a result, the curve lies in the x-y plane of the JRM marker.
JDISP=x,y,z
Specifies the initial point of contact on the second curve. Adams Solver (FORTRAN) uses a point on the curve nearest to that specified if the point specified is not exactly on the curve. By default, the contact point is specified in the JRM marker coordinate system. You may supply the JICM argument and enter JDISP in JICM marker coordinates if another coordinate system is more convenient.

Adams Solver (FORTRAN) assembles the system with the contact at the specified point on the curve if you supply JDISP. Adams Solver (FORTRAN) assumes the initial contact is at a point on the second curve closest to ICURVE in the input configuration if you do not supply JDISP. In this case, Adams Solver (FORTRAN) may adjust that contact point to maintain other part or constraint initial conditions.

Default: Closest point to ICURVE in the input configuration
JFLOAT=id
Specifies the identifier of a floating marker. Adams Solver (FORTRAN) positions the origin of the JFLOAT marker at the instantaneous point of contact on the second curve, which is also the position of the IFLOAT marker on the first curve. Adams Solver (FORTRAN) orients the JFLOAT marker so that its x-axis is along the tangent at the instantaneous contact point, its y-axis is along the instantaneous normal, and its z-axis along the resultant bi-normal. For a CVCV constraint, the bi-normal of JCURVE is always parallel to the z-axis of the JRM marker. The JFLOAT and JRM markers must lie on the same part.
JICM=id
Specifies the identifier of a fixed marker defining the coordinate system in which the values for JDISP are defined. The JICM marker must be on the same part as the JRM marker.

Default: JRM marker
JRM=id
Specifies the identifier of a fixed marker on the part containing JCURVE. The JRM marker identifies not only the part the JCURVE is attached to, but also the coordinate system in which the coordinates of JCURVE are specified. Adams Solver (FORTRAN) constructs JCURVE in the x-y plane of the JRM marker coordinate system. The JFLOAT and JRM markers must lie on the same part.
JVEL=r
Specifies the magnitude of the initial velocity of the contact point relative to the part containing JCURVE. This is the speed at which the contact point is initially moving tangent to the curve. JVEL is negative if the contact point is moving towards the start of the curve, positive if the contact point is moving toward the end of the curve, and zero if the contact point is stationary on the curve.

Adams Solver (FORTRAN) gives the contact point the specified initial speed along the second curve if you supply JVEL. Adams Solver (FORTRAN) assumes the initial velocity is zero if you do not supply JVEL, but may adjust that velocity to maintain other part or constraint initial conditions.

Default: 0

Extended Definition

The CVCV statement defines a curve-to-curve constraint that restricts a planar curve on one part to be in contact with, and tangent to, a planar curve on a second part. The curves must lie in parallel planes.
Adams Solver (FORTRAN) constructs the first curve from the ICURVE curve and IRM marker, and the second curve from the JCURVE curve and JRM marker. In both cases, the CURVE statement (ICURVE or JCURVE) defines x and y coordinates along the curve as a function of an independent parameter (u). The z coordinates of the curves must be zero. The reference marker (IRM or JRM) defines the part on which the constraining curve is attached and the coordinate system in which Adams Solver (FORTRAN) applies the coordinates from the CURVE statement.
Both ICURVE and JCURVE may be open or closed curves, defined analytically or as a set of discrete data points. Figure 1 below shows a curve-to-curve constraint.
A CVCV statement removes two degrees-of-freedom from the system. Adams Solver restricts the motion of the parts such that the curves are always in contact and the curves are tangent at the contact point. The first curve may slide or roll on the second, but may not move perpendicular to the curve tangents at the contact.
Figure 1 Curve-To-Curve Constraint
 
Tip:  
More than one CVCV statement can reference the same CURVE statement. You can enter one CURVE statement if the mechanism contains several similar contacts and use it with several CVCV constraints, each with a different IRM and JRM marker.
 
Caution:  
Adams Solver (FORTRAN) requires that the curves lie in the same plane, however, this is not enforced by the CVCV statement. The CVCV statement simply enforces that the two curves remain in contact. You must build the model so that the curves are held in the same plane.
IVEL and JVEL are specified relative to the body coordinate system (BCS) of the part containing the IRM or JRM marker, respectively. In other words, IVEL is the speed of the contact point relative to the part containing the first curve. This means if the contact point is not moving relative to part, but the first curve is moving relative to the ground, then IVEL is still nonzero.
Adams Solver (FORTRAN) applies a force to prevent the contact point from moving of the end of an open curve. For this reason, you may want to specify an open curve that extends beyond the range of actual curve travel on both ends of the curve.
The initial conditions arguments, IDISP, JDISP, IVEL, and JVEL, impose constraints that are active only during an initial conditions analysis. Adams Solver (FORTRAN) does not impose these initial conditions during subsequent analyses.
For a kinematic analysis, the initial conditions are redundant. Do not use the IDISP, JDISP, IVEL, or JVEL arguments on the CVCV statements for systems with zero degrees of freedom. Adams Solver (FORTRAN) requires that there be a unique contact point in the vicinity of the IFLOAT and JFLOAT markers during simulation. If there is more than one contact point, Adams Solver may be unable to find the correct contact point or may even jump from one contact point to the next.

One way to ensure that contact points are unique is to specify curve shapes that are convex. Figure 2 below depicts two curves, the first is convex and the second nonconvex. Note that for a convex curve, any line segment connecting two arbitrary points on the curve lies in the domain of the curve (that is, it does not intersect the curve). The same is not true for the nonconvex curve.
It is easy to accidently over-constrain a system using the CVCV constraint. For instance, in a cam-follower configuration, the cam should usually be rotating on a cylindrical joint, not a revolute joint. If the follower is held by a translational joint and the cam by a cylindrical joint, the CVCV constraint between the follower and cam prevents the cam from translating along the axis of rotation (that is, the axis of the cylindrical joint). A revolute joint would add a redundant constraint in that direction.
Figure 2 Convex and Nonconvex Curves

Examples

CVCV/20, IFLOAT=402, ICURVE=11, IRM=401, JFLOAT=502,
, JCURVE=12, JRM=501
This statement creates a curve-curve constraint between a curve on the part containing Markers 401 and 402 and a curve on the part containing Markers 501 and 502. CURVE/11 defines the first curve in the coordinate system of Marker 401. CURVE/12 defines the second curve in the coordinate system of Marker 501.

Applications

The CVCV statement models one curve rolling or slipping along another, such as in a cam-follower mechanism. Figure 3 illustrates a cam follower.
Adams Solver (FORTRAN) automatically moves the contact across the closure as needed when a closed curve is specified in the CURVE statement. This means that the cam may rotate as many times as needed during the simulation.
A point-to-curve constraint, PTCV statement, can be used if the follower is small and sharp enough to be considered a point.
The curves always maintain contact, even when the dynamics of the system would actually lift one curve off the other, because CVCV is a geometric spatial constraint. You can examine the constraint forces to determine if lift-off should have occurred. If an accurate simulation of intermittent contact is required, you should model the contact forces directly using a VFORCE.
The CVCV statement models only one contact. Therefore, if the curves have contact at more than one point you must enter a CVCV statement for each contact, each with a displacement initial condition (IDISP and JDISP) near the appropriate point.
Figure 3 Cam-Follower Mechanism
See other Constraints available.