*CurveToCurveJoint()
Creates a curve-to-curve high-pair joint with two rotational degrees of freedom and one translational degree of freedom.
Syntax
*CurveToCurveJoint(cvcv_name,"cvcv_label",body_1, body_2, curve_1, curve_2, ref_marker_1, ref_marker_2, [icm_1], [icm_2], [ALLOW_COMPLIANCE])
Arguments
- cvcv_name
- The variable name of the curve-to-curve joint.
- cvcv_label
- The label of the curve-to-curve joint.
- body_1
- The first body constrained by the curve-to-curve joint.
- body_2
- The second body constrained by the curve-to-curve joint.
- curve_1
- The curve on body_1 that is constrained to the curve on body_2 .
- curve_2
- The curve on body_2 that is constrained to the curve on body_1 .
- ref_marker_1
- The reference marker to which the curve_1 data is defined.
- ref_marker_2
- The reference marker to which the curve_2 data is defined.
- icm_1
- An optional argument for the reference marker of the initial condition information for curve_1. If not used, the initial condition information will be with respect to the reference marker_1 .
- icm_2
- An optional argument for the reference marker of the initial condition information for curve_2. If not used, initial condition information will be with respect to the reference marker_2 .
- ALLOW_COMPLIANCE
- An optional argument that indicates that the joint can be made compliant.
Example
*BeginMDL(the_model, "Example CurveToCurveJoint")
*Marker(mrk_0, "Ref marker for curve 1")
*Marker(mrk_1, "Ref marker for curve 2")
*Marker(mrk_2, "ICM marker 1")
*Marker(mrk_3, "ICM marker 2")
*Body(bd_0, "First Body")
*Body(bd_1, "Second Body")
*Curve(crv_0, "Curve on body 1", WRITE, CURVE_POINTS, CLOSED)
*Curve(crv_1, "Curve on body 2", WRITE, CURVE_POINTS, CLOSED)
*CurveToCurveJoint( cvcv_0, "cvcv", bd_0, bd_1, crv_0, crv_1, mrk_0, mrk_1 )
*EndMDL()
Context
Properties
Property | Returns Data Type | Description |
---|---|---|
b1 | Body | The first body constrained by the curve-to-curve joint. |
b2 | Body | The second body constrained by the curve-to-curve joint. |
crv_1 | Curve | The curve on b1 which is constrained to body 2. |
crv_2 | Curve | The curve on b2 which is constrained to body 1. |
i | Marker | The "i" marker in the case of a compliant joint. |
icm_1 | Marker | The optional reference marker for the initial conditions of the joint on curve 1. |
icm_2 | Marker | The optional reference marker for the initial conditions of the joint on curve 2. |
ic_use_vel_1 | boolean | Denotes if the velocity initial conditions are to be used for the contact point on body_1 ^(TRUE or FALSE). |
ic_use_vel_2 | boolean | Denotes if the velocity initial conditions are to be used for the contact point on body_2 ^(TRUE or FALSE). |
ic_use_xyz_1 | boolean | Denotes if the displacement initial conditions are to be used for the contact point on body_1 ^(TRUE or FALSE). |
ic_use_xyz_2 | boolean | Denotes if the displacement initial conditions are to be used for the contact point on body_2 ^(TRUE or FALSE). |
ic_x_disp_1 | real | The value of the initial displacement of the contact point in the icm_1 x direction. This is applied during the assembly phase of the solver. |
ic_x_disp_2 | real | The value of the initial displacement of the contact point in the icm_2 x direction. This is applied during the assembly phase of the solver. |
ic_y_disp_1 | real | The value of the initial displacement of the contact point in the icm_1 y direction. This is applied during the assembly phase of the solver. |
ic_y_disp_2 | real | The value of the initial displacement of the contact point in the icm_2 y direction. This is applied during the assembly phase of the solver. |
ic_z_disp_1 | real | The value of the initial displacement of the contact point in the icm_1 z direction. This is applied during the assembly phase of the solver. |
ic_z_disp_2 | real | The value of the initial displacement of the contact point in the icm_2 z direction. This is applied during the assembly phase of the solver. |
ic_vel_1 | real | The value of the initial velocity of the point of contact. This is applied during the assembly phase of the solver. |
id | integer | Solver input deck identification number. |
id_string | string | The ID represented as a string. |
ifloat | Marker | The floating marker on body one. |
isbush | boolean | See ^Comments^ below. |
label | string | The descriptive label of the curve-to-curve joint. |
j | Marker | The "j" marker in the case of a compliant joint. |
jfloat | Marker | The floating marker on body two. |
joint_i | Marker | The "i" marker for the non-compliant joint. |
joint_j | Marker | The "j" marker for the non-compliant joint. |
note | string | The note on the entity. |
num | integer | The unique identification number within MDL. |
origin | point | The point on body one which is constrained to body two. |
rm | Marker | The reference marker of the curve. |
state | boolean | Control state (TRUE or FALSE). This parameter is read only and cannot be directly changed by the user (see ^_user_state^). |
type | string | The unique joint type. |
user_state | boolean | The state that can be set by the user ^(TRUE or FALSE). |
varname | string | The variable name of the curve-to-curve joint. |
Comments
The curve-to-curve joint provides three degrees of freedom (DOF): two rotational DOF at the instantaneous point of contact and one translational DOF along the defined path (curve). The curve that is referenced by this joint can be planar or non-planar. Some solvers require that the curve be planar.
The ALLOW_COMPLIANCE argument is optional. When it is included, it indicates that the joint can be made compliant. In compliant mode, such a joint acts as a bushing.
The "isbush" property is valid only for joints that can be made compliant. When "isbush" is set to FALSE, the joint acts like a kinematic joint in a noncompliant mode. When "isbush" is set to TRUE, the joint acts like a bushing in a compliant mode.
When the compliant option in a system is switched to "non-compliant", all the joints in the system act as kinematic joints. However, when the system option is switched to "compliant", only the joints that are created with an ALLOW_COMPLIANCE flag act as bushings. The rest of the joints continue to behave as kinematic joints.