*SurfaceToSurfaceJoint()

Creates a surface-to-surface high-pair joint with three rotational degrees of freedom and two translational degrees of freedom.

Syntax

*SurfaceToSurfaceJoint(sfsf_name, "sfsf_label", 
                                             body_1, 
                                             body_2, 
                                             surface_1, 
                                             surface_2, 
                                             ref_marker_1, 
                                             ref_marker_2, 
                                             [icm_1], 
                                             [icm_2], 
                                             [ALLOW_COMPLIANCE])

Arguments

sfsf_name
The variable name of the surface-to-surface joint.
Data type: varname
sfsf_label
The label of the surface-to-surface joint.
Data type: label
body_1
The first body constrained by the surface-to-surface joint.
Data type: Body
body_2
The second body constrained by the surface-to-surface joint.
Data type: Body
surface_1
The surface on body_1 that is constrained to the surface on body_2.
Data type: Surface
surface_2
The surface on body_2 which is constrained to the point on body_1.
Data type: Surface
ref_marker_1
Reference marker to which surface 1 data is defined.
Data type: Marker
ref_marker_2
Reference marker to which surface 2 data is defined.
Data type: Marker
icm_1
An optional argument for the reference marker of the initial condition information for the point of contact on the surface of body 1. If not used, the initial condition information is with respect to the reference marker.
Data type: Marker
icm_2
An optional argument for the reference marker of the initial condition information for the point of contact on the surface of body 2. If not used, initial condition information is 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 SurfaceToSurfaceJoint" )
 *Marker( mrk_0, "Ref marker for surface 1" )
 *Marker( mrk_1, "Ref marker for surface 2" )
 *Marker( mrk_2, "ICM marker 1" )
 *Marker( mrk_3, "ICM marker 2" )
 *Body( bd_0, "First Body" )
 *Body( bd_1, "Second Body" )
 *Surface( surf_1, "Surface on body 1", UOPEN, VOPEN )
 *Surface( surf_2, "Surface on body 2", UOPEN, VOPEN )
 
 *SurfaceToSurfaceJoint( sfsf_0, "sfsf", bd_0, bd_1, surf_1, surf_2, mrk_0, mrk_1, mrk_2, mrk_3 )
*EndMDL()

Context

*BeginMdl()

*DefineAnalysis()

*DefineSystem()

Properties

Table 1.
Property Returns Data Type Description
b1 Body The first body constrained by the surface-to-surface joint.
b2 Body The second body constrained by the surface-to-surface joint.
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 surface 1.
icm_2 Marker The optional reference marker for the initial conditions of the point of contact on surface 2.
ic_use_xyz_1 boolean Denotes if the displacement initial conditions are to be used for the point of contact on surface 1 (TRUE or FALSE).
ic_use_xyz_2 boolean Denotes if the displacement initial conditions are to be used for the point of contact on surface 2 (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 surface 1. 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 surface 2. 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 surface 1. 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 surface 2. 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 surface 1. 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 surface 2. This is applied during the assembly phase of the solver.
id integer The 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 surface-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.
rm1 Marker The reference marker of surface 1.
rm2 Marker The reference marker of surface 2.
state boolean Control state (TRUE or FALSE). This parameter is read only and cannot be directly changed by the user (see ^_user_state^).
surf1 Surface The surface on body_1 which is constrained to body_2.
surf2 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 surface-to-surface joint.

Comments

The surface-to-surface joint provides five degrees of freedom: three rotational at the instantaneous point of contact and two translational DOFs.

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.