# Constraint: Mate

Model ElementConstraint_MATE is used to specify general mating constraints between geometric primitives.

## Description

Constraint_MATE differs from Constraint_Joint and Constraint_Jprim in that it specifies more general constraints based on distance, tangency, and coincidence relations between mating geometries.

## Format

<Constraint_Mate
id             =     "integer"
[ label          =     "string" ]
i_marker_id    =     "integer"
j_marker_id    =     "integer"
{
type           =     "COI_POI_SPH"
|
type           =     "DIS_POI_ POI"
dist           =     "real"
|
type           =     "DIS_POI_SPH"
dist           =     "real"
|
type           =     "DIS_SPH_SPH"
dist           =     "real"
|
type           =     "TAN_SPH_SPH"
|
type           =     "COI_POI_CYL"
|
type           =     "DIS_POI_LIN"
dist           =     "real"
|
type           =     "DIS_POI_CYL"
dist           =     "real"
|
type           =     "DIS_SPH_LIN"
dist           =     "real"
|
type           =     "DIS_SPH_CYL"
dist           =     "real"
|
type           =     "TAN_SPH_LIN"
|
type           =     "TAN_SPH_CYL"
|
type           =     "COI_LIN_CYL"
|
type           =     "DIS_LIN_LIN"
dist           =     "real"
|
type           =     "DIS_LIN_CYL"
dist           =     "real"
|
type           =     "DIS_CYL_CYL"
dist           =     "real"
|
type           =     "TAN_LIN_CYL"
|
type           =     "TAN_CYL_CYL"
|
type           =     "COI_LIN_PLA"
|
type           =     "COI_POI_POI"
|
type           =     "COI_POI_LIN"
|
type           =     "COI_LIN_LIN"
|
type           =     "DIS_LIN_PLA"
dist           =     "real"
|
type           =     "DIS_PLA_CYL"
dist           =     "real"
|
type           =     "TAN_PLA_CYL"
|
type           =     "DIS_SPH_PLA"
dist           =     "real"
|
type           =     "TAN_SPH_PLA"
|
type           =     "COI_POI_CON"
height         =     "real"
|
type           =     "DIS_SPH_CON"
dist           =     "real"
height         =     "real"
|
type           =     "TAN_SPH_CON"
height         =     "real"
|
type           =     "DIS_PLA_CON"
dist           =     "real"
height         =     "real"
|
type           =     "TAN_PLA_CON"
height         =     "real"
}
[ is_virtual     =    {"FALSE" | "TRUE"} ]
</Constraint_Mate>

## Attributes

id
Element identification number, (integer>0). This is a number that is unique among all Constraint_MATE elements.
label
The name of the Constraint_MATE element.
i_marker_id
Specifies a Reference_Marker that defines the connection on the first body. The body may be a rigid body, a flexible body, or a point body. The parameter is required.
j_marker_id
Specifies a Reference_Marker that defines the connection on the second body. The body may be a rigid body, a flexible body, or a point body.
type
Specifies the type of mate between i_marker_id and j_marker_id.
type may be one of the following:
Type
#Constraints
COI_POI_SPH
1
DIS_POI_POI
1
DIS_POI_SPH
1
DIS_SPH_SPH
1
TAN_SPH_SPH
1
COI_POI_CYL
1
DIS_POI_LIN
1
DIS_POI_CYL
1
DIS_SPH_LIN
1
DIS_SPH_CYL
1
TAN_SPH_LIN
1
TAN_SPH_CYL
1
COI_LIN_CYL
3
DIS_LIN_LIN
2
DIS_LIN_CYL
2
DIS_CYL_CYL
2
TAN_LIN_CYL
2
TAN_CYL_CYL
2
COI_LIN_PLA
2
COI_POI_POI
3
COI_POI_LIN
2
COI_LIN_LIN
4
DIS_LIN_PLA
2
DIS_PLA_CYL
2
TAN_PLA_CYL
2
DIS_SPH_PLA
1
TAN_SPH_PLA
1
COI_POI_CON
1
DIS_SPH_CON
1
TAN_SPH_CON
1
DIS_PLA_CON
3
TAN_PLA_CON
3

dist
Distance between the two parts constrained by the DIS_mate constraint. This option is mate constraint specific.
Radius of the circle/sphere specified in the mate constraint. This option is mate constraint specific.
Radius of the I part circle/sphere specified in the mate constraint. This option is mate constraint specific.
Radius of the J part circle/sphere specified in the mate constraint. This option is mate constraint specific.
height
Height of the part specified in the mate constraint. This option is mate constraint specific.
is_virtual
Defines whether the constraint is virtual or regular. If is_virtual is set to TRUE, the constraint is implemented as a virtual constraint. If is_virtual is set to FALSE, the constraint is implemented as a regular, algebraic constraint. This parameter is optional. The default is FALSE. See Comment 22 in Constraint: Joint for more information about virtual joints.

## Example 1

Below is an implementation of a Constraint_Mate of type TAN_PLA_CON:

<Constraint_Mate
id                  = "301002"
type                = "TAN_PLA_CON"
i_marker_id         = "30103071"
j_marker_id         = "30102030"
height              = "800."
/>

The I marker is associated with the plane and the J marker is associated with the cone.

## Example 2

The table below shows how one Constraint_Mate element can be used to implement the same constraint as two ADAMS GCON elements:

 GCON/1 , I = 5 , FUNCTION = DZ(5,6,6)-0.035000 GCON/2 , I = 5 , FUNCTION = UVZ(5)*UVZ(6) 

Alternatively, you may modify the ADM file by commenting out the GCON elements and inserting the MATE element as shown below.

 GCON/1 , I = 5 , FUNCTION = DZ(5,6,6)-0.035000 GCON/2 , I = 5 , FUNCTION = UVZ(5)*UVZ(6) MATE/1 , TAN_PLA_CYL , I = 6 , J = 5 , RADIUS = 0.035

Note that the MATE element is not supported by ADAMS.

## Example 3

Following is an example of a mate of type TAN_PLA_CYL:

<Constraint_Mate
id          = "301002"
type        = "TAN_PLA_CYL"
i_marker_id = "1"
j_marker_id = "2"
/>
The figure below shows the model configuration. Reference_Marker 1 is on the plane, and has its Z axis perpendicular to the plane. Reference_Marker 2 has its origin on the cylinder base and its Z axis along the cylinder axis.

1. The Constraint_MATE types are written as AAA_BBB_CCC. AAA can be of the following types:
1. DIS - Distance
2. TAN - Tangent
3. COI - Coincident
BBB and CCC can be of the following types:
1. SPH - Sphere
2. PLA - Plane
3. CYL - Cylinder
4. LIN - Straight line
5. CON - Cone
6. POI - Point
2. The Reference_Marker elements with IDs i_marker_id and j_marker_id belong to the bodies to which BBB and CCC graphics are attached, respectively.
3. For POI and SPH, the Reference_Marker element has origin at the point and sphere center. The orientation of the Reference_Marker does not make any difference.

For PLA, the Reference_Marker origin lies in the plane, and the Z axis is perpendicular to the plane.

For LIN, the Reference_Marker origin lies on the line, and the Z axis is along the line.

For CYL, the Reference_Marker origin is at the center of one end of the cylinder, and its Z axis is along the cylinder axis, pointing at the other end of the cylinder.

For CON, the Reference_Marker origin is at the center of the base of the cone and its Z axis is along the axis, pointing at the other end of the cone.

4. Setting the DIST argument to zero turns a DIS type Constraint_Mate into a TAN type Constraint_Mate.
5. It is important to note that the solver treats the graphic primitives involved in Constraint_Mate as having infinite dimensions, although the graphics themselves may have finite dimensions.
6. The Constraint_Mate element can be used to implement some of the ADAMS GCON element functionality. See the Examples section.