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"
     radius         =     "real"
   |     
     type           =     "DIS_POI_ POI"
     dist           =     "real"
   |     
     type           =     "DIS_POI_SPH"
     dist           =     "real"     
     radius         =     "real"
   |     
     type           =     "DIS_SPH_SPH"
     dist           =     "real"     
     iradius        =     "real"     
     jradius        =     "real"
   |     
     type           =     "TAN_SPH_SPH"
     iradius        =     "real"     
     jradius        =     "real"
   |     
     type           =     "COI_POI_CYL"
     radius         =     "real"
   |     
     type           =     "DIS_POI_LIN"
     dist           =     "real"
   |     
     type           =     "DIS_POI_CYL"
     dist           =     "real"     
     radius         =     "real"
   |     
     type           =     "DIS_SPH_LIN"
     dist           =     "real"     
     radius         =     "real"
   |     
     type           =     "DIS_SPH_CYL"
     dist           =     "real"     
     iradius        =     "real"     
     jradius        =     "real"
   |     
     type           =     "TAN_SPH_LIN"
     radius         =     "real"
   |     
     type           =     "TAN_SPH_CYL"
     iradius        =     "real"     
     jradius        =     "real"
   |     
     type           =     "COI_LIN_CYL"
     radius         =     "real"
   |     
     type           =     "DIS_LIN_LIN"
     dist           =     "real"
   |     
     type           =     "DIS_LIN_CYL"
     dist           =     "real"     
     radius         =     "real"
   |     
     type           =     "DIS_CYL_CYL"
     dist           =     "real"     
     iradius        =     "real"     
     jradius        =     "real"
   |     
     type           =     "TAN_LIN_CYL"
     radius         =     "real"
   |     
     type           =     "TAN_CYL_CYL"
     iradius        =     "real"     
     jradius        =     "real"
   |     
     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"     
     radius         =     "real"
   |     
     type           =     "TAN_PLA_CYL"
     radius         =     "real"
   |     
     type           =     "DIS_SPH_PLA"
     dist           =     "real"     
     radius         =     "real"
   |     
     type           =     "TAN_SPH_PLA"
     radius         =     "real"
   |     
     type           =     "COI_POI_CON"
     radius         =     "real"     
     height         =     "real"
   |     
     type           =     "DIS_SPH_CON"
     dist           =     "real"     
     iradius        =     "real"     
     jradius        =     "real"     
     height         =     "real"
   |     
     type           =     "TAN_SPH_CON"
     iradius        =     "real"     
     jradius        =     "real"     
     height         =     "real"
   |     
     type           =     "DIS_PLA_CON"
     dist           =     "real"     
     radius         =     "real"     
     height         =     "real"
   |     
     type           =     "TAN_PLA_CON"
     radius         =     "real"     
     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

The parameter is required. See Comments for more information about these mate types.

dist
Distance between the two parts constrained by the DIS_mate constraint. This option is mate constraint specific.
radius
Radius of the circle/sphere specified in the mate constraint. This option is mate constraint specific.
i radius
Radius of the I part circle/sphere specified in the mate constraint. This option is mate constraint specific.
j radius
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"
     radius              = "600."
     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)
<Constraint_Mate
     id            = "1"
     type          = "TAN_PLA_CYL"
     i_marker_id   = "6"
     j_marker_id   = "5"
     radius        = "0.035"
  />

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"
     radius      = "60."
   />
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.


Figure 1.

Comments

  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.