*PointToSurfaceJoint()
Creates a point-to-surface high-pair joint with three rotational degrees of freedom and two translational degrees of freedom.
Syntax
*PointToSurfaceJoint(ptsf_name,"ptsf_label",body_1, body_2, point, surface, ref_marker, [icm], [ALLOW_COMPLIANCE])
Arguments
- ptsf_name
- The variable name of the point-to-surface joint.
- ptsf_label
- The label of the point-to-surface joint.
- body_1
- The first body constrained by the point-to-surface joint.
- body_2
- The second body constrained by the point-to-surface joint.
- point
- The point on body_1 that is constrained to the surface on body_2.
- surface
- The surface on body_2 which is constrained to the point on body_1.
- ref_marker
- Reference marker to which the surface points are defined.
- icm
- An optional argument for the reference marker of the initial condition information for the contact point. 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 PointToSurfaceJoint")
*Marker(mrk_0, "Ref marker for the point")
*Marker(mrk_1, "Ref marker for the surface")
*Marker(mrk_2, "ICM marker 1")
*Body(bd_0, "First Body")
*Body(bd_1, "Second Body")
*Point(p_0, "Point on body 1")
*Surface(surf_1, "Surface on body 2", UOPEN, VOPEN)
*PointToSurfaceJoint(ptsf_0, "ptsf", bd_0, bd_1, p_0, surf_1, mrk_0, mrk_1)
*EndMDL()
Context
Properties
Property | Returns Data Type | Description |
---|---|---|
b1 | Body | The first body constrained by the point-to-surface joint. |
b2 | Body | The second body constrained by the point-to-surface joint. |
i | Marker | The "i" marker in the case of a compliant joint. |
icm | Marker | The optional reference marker for the initial conditions of the point of contact. |
ic_use_xyz | boolean | Denotes if the displacement initial conditions are to be used for the point of contact on body_1 (TRUE or FALSE). |
ic_x_disp | real | The value of the initial displacement of the point of contact 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 the point of contact 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 the point of contact in the icm z direction. 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-surface 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 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 body 2 which is constrained to body 1. |
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-surface joint. |
Comments
The point-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 noncompliant 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.