*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.
Data type: varname
ptcv_label
The label of the point-to-curve joint.
Data type: label
body_1
The first body constrained by the point-to-curve joint.
Data type: Body
body_2
The second body constrained by the point-to-curve joint.
Data type: Body
point
The point on body_1 that is constrained to the curve on body_2.
Data type: Point
curve
The curve on body_2 to which the point on body_1 is constrained.
Data type: Curve
ref_marker
Reference marker to which the curve points are defined.
Data type: Marker
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.
Data type: 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

*BeginMdl()

*DefineAnalysis()

*DefineSystem()

Properties

Table 1.
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.