*CurveToSurfaceJoint()
Creates a curve-to-surface high-pair joint with three rotational degrees of freedom and two translational degrees of freedom.
Syntax
*CurveToSurfaceJoint(cvsf_name,"cvsf_label",body_1, body_2, curve, surface, ref_marker_1, ref_marker_2, [icm_1], [icm_2], [ALLOW_COMPLIANCE])
Arguments
- cvsf_name
- The variable name of the curve-to-surface joint.
- cvsf_label
- The label of the curve-to-surface joint.
- body_1
- The first body constrained by the curve-to-surface joint.
- body_2
- The second body constrained by the curve-to-surface joint.
- curve
- The curve on body_1 that is constrained to the surface on body_2 .
- surface
- The surface on body_2 that is constrained to the point on body_1 .
- ref_marker_1
- Reference marker to which the curve data is defined.
- ref_marker_2
- Reference marker to which the surface data is defined.
- icm_1
- An optional argument for the reference marker of the initial condition information for the point of contact on the curve. If not used, the initial condition information is defined with respect to the reference marker.
- icm_2
- An optional argument for the reference marker of the initial condition information for the point of contact on the surface. If not used, the initial condition information is defined with respect to the reference marker.
- ALLOW_COMPLIANCE
- An optional argument that indicates the joint can be made compliant.
Example
*BeginMDL(the_model, "Example CurveToSurfaceJoint")
*Marker(mrk_0, "Ref marker for the curve")
*Marker(mrk_1, "Ref marker for the surface")
*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)
*Surface(surf_1, "Surface on body 2", UOPEN, VOPEN)
*CurveToSurfaceJoint(cvsf_0, "cvsf", bd_0, bd_1, crv_0, surf_1, mrk_0, mrk_1, mrk_2, mrk_3)
*EndMDL()
Context
Properties
Property | Returns Data Type | Description |
---|---|---|
b1 | Body | The first body constrained by the curve-to-surface joint. |
b2 | Body | The second body constrained by the curve-to-surface joint. |
crv | Curve | The curve on b1 that is constrained to b2. |
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 point of contact on the curve. |
icm_2 | Marker | The optional reference marker for the initial conditions of the point of contact on the surface. |
ic_use_xyz_1 | boolean | Denotes if the displacement initial conditions are to be used for the point of contact on the curve (TRUE or FALSE). |
ic_use_xyz_2 | boolean | Denotes if the displacement initial conditions are to be used for the point of contact on the surface (TRUE or FALSE). |
ic_x_disp_1 | real | The value of the initial displacement of the point of contact in the icm x direction on the curve. This is applied during the assembly phase of the solver. |
ic_x_disp_2 | real | The value of the initial displacement of the point of contact in the icm x direction on the surface. This is applied during the assembly phase of the solver. |
ic_y_disp_1 | real | The value of the initial displacement of the point of contact in the icm y direction on the curve. This is applied during the assembly phase of the solver. |
ic_y_disp_2 | real | The value of the initial displacement of the point of contact in the icm y direction on the surface. This is applied during the assembly phase of the solver. |
ic_z_disp_1 | real | The value of the initial displacement of the point of contact in the icm z direction on the curve. This is applied during the assembly phase of the solver. |
ic_z_disp_2 | real | The value of the initial displacement of the point of contact in the icm z direction on the surface. 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. |
isbush | boolean | See ^Comments^ below. |
label | string | The descriptive label of the curve-to-surface joint. |
j | Marker | The "j" marker in the case of a compliant joint. |
jfloat | Marker | The floating marker on b2. |
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. |
rm1 | Marker | The reference marker of the curve. |
rm2 | Marker | The reference marker of the surface. |
state | boolean | Control state (TRUE or FALSE). This parameter is read only and cannot be directly changed by the user (see ^user_state^). |
surf | Surface | The surface on b2 which is constrained to b1. |
type | string | The unique joint type. |
user_state | boolean | The state that can be set by the user (TRUE, FALSE). |
varname | string | The variable name of the curve-to-surface joint. |
Comments
The curve-to-surface joint provides five degrees of freedom: three rotational at the instantaneous point of contact and two translational DOF.
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 non-compliant mode). When "isbush" is set to TRUE, the joint acts like a bushing (in 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.