*PointToCurveJoint()
Creates a point-to-curve high-pair joint with three rotational degrees of freedom and one translational degree of freedom.
Syntax
*PointToCurveJoint(ptcv_name,"ptcv_label",body_1, body_2, point, curve, ref_marker, [icm], [ALLOW_COMPLIANCE])
Arguments
- ptcv_name
- The variable name of the point-to-curve joint.
- ptcv_label
- The label of the point-to-curve joint.
- body_1
- The first body constrained by the point-to-curve joint.
- body_2
- The second body constrained by the point-to-curve joint.
- point
- The point on body_1 that is constrained to the curve on body_2.
- curve
- The curve on body_2 to which the point on body_1 is constrained.
- ref_marker
- Reference marker to which the curve points are defined.
- icm
- An optional argument for the reference marker of the initial condition information. If not used, 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 PointToCurveJoint")
*Marker(mrk_0, "Main marker")
*Marker(mrk_1, "ICM marker")
*Body(bd_0, "First Body")
*Body(bd_1, "Second Body")
*Point(pt_0, "Point on body 1")
*Curve(crv_0, "Curve on body 2", WRITE, CURVE_POINTS, CLOSED)
*PointToCurveJoint(ptcv_0, "ptcv", bd_0, bd_1, pt_0, crv_0, mrk_0, mrk_1)
*EndMDL()
Context
Properties
Property | Returns Data Type | Description |
---|---|---|
b1 | Body | The first body constrained by the point-to-curve joint. |
b2 | Body | The second body constrained by the point-to-curve joint. |
crv | Curve | The curve on body 2 which is constrained to body 1. |
i | Marker | The "i" marker in the case of a compliant joint. |
icm | Marker | The optional reference marker for the initial conditions of the joint. |
ic_use_vel | boolean | Denotes if the velocity initial conditions should be used (TRUE or FALSE). |
ic_use_xyz | boolean | Denotes if the displacement initial conditions should be used (TRUE or FALSE) |
ic_x_disp | real | The value of the initial displacement of point in the icm x direction. This is applied during the assembly phase of the solver. |
ic_y_disp | real | The value of the initial displacement of point in the icm y direction. This is applied during the assembly phase of the solver. |
ic_z_disp | real | The value of the initial displacement of point in the icm z direction. This is applied during the assembly phase of the solver. |
ic_vel | real | The value of the initial velocity of point. 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 point-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 point-to-curve joint. |
Comments
The point-to-curve joint provides four degrees of freedom: three rotational 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 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.