---
title: "Массив сопряжений (Интерфейсы ksMateConstraintCollection, IMateConstraintCollection)"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, ksmateconstraintcollection]
sources:
  - ksmateconstraintcollection.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Запрос к сиcтеме (Интерфейсы ksRequestInfo3D, IRequestInfo) *


## Массив сопряжений (Интерфейсы ksMateConstraintCollection, IMateConstraintCollection)

Интерфейс параметров массива сопряжений компонента сборки.
| ksMateConstraintCollection | - интерфейс Automation |
| --- | --- |
| IMateConstraintCollection | - интерфейс COM |
Примечание:
Данный интерфейс может быть получен с использованием метода интерфейса ksRequestInfo3D::GetMateConstraintCollection.
Интерфейсы структуры параметров сопряжения (Интерфейсы ksMateConstraint, IMateConstraint)


## AddMateConstraint - Добавить сопряжение в массив

Синтаксис Automation:
```
BOOL AddMateConstraint (LPDISPATCH mate);
```
Синтаксис COM:
```
BOOL AddMateConstraint (LPMATECONSTRAINT mate);
Входные параметры:
mate    - указатель на интерфейс ksMateConstraint или IMateConstraint.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## Clear - Очистить массив сопряжений

Синтаксис Automation:
```
BOOL Clear();
```
Синтаксис COM:
```
BOOL Clear();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Объекты удаляются только из массива, в модель изменения не передаются.


## FindIt - Получить индекс элемента в массиве

Синтаксис Automation:
```
long FindIt (LPDISPATCH entity);
Возвращаемое значение:
индекс элемента    - если элемент найден в массиве,
-1    - если элемент не найден.
```
Синтаксис COM:
```
unsigned long FindIt (LPMATECONSTRAINT entity);
Возвращаемое значение:
индекс элемента    - если элемент найден в массиве,
SYS_MAX_UINT    - если элемент не найден.
Входные параметры:
entity    - указатель на интерфейс ksMateConstraint или IMateConstraint.
```


## First - Получить указатель на интерфейс первого объекта в массиве сопряжений

Синтаксис Automation:
```
LPDISPATCH First();
```
Синтаксис COM:
```
LPMATECONSTRAINT First();
Возвращаемое значение:
- указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.
```


## GetByIndex - Получить указатель на интерфейс объекта с указанным индексом в массиве сопряжений

Синтаксис Automation:
```
LPDISPATCH GetByIndex (long index);
```
Синтаксис COM:
```
LPMATECONSTRAINT GetByIndex (long index);
Входной параметр:
index    - индекс сопряжения в массиве.
Возвращаемое значение:
- указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.
```


## GetCount - Получить количество элементов в массиве сопряжений

Синтаксис Automation:
```
long GetCount();
```
Синтаксис COM:
```
unsigned long GetCount();
Возвращаемое значение:
- количество элементов в массиве сопряжений.
```


## GetSafeArrayByObj - Сформировать массив SAFEARRAY параметров сопряжений по объекту

Синтаксис Automation:
```
BOOL GetSafeArrayByObj( LPDISPATCH obj, VARIANT * pArray );
```
Синтаксис COM:
```
BOOL GetSafeArrayByObj( LPUNKNOWN obj, VARIANT * pArray );
Входные параметры:
obj    - указатель на объект.
Выходные параметры:
pArray    - указатель на массив параметров сопряжений.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Тип выходного массива VT_ARRAY | VT_UNKNOWN. Элемент, лежащий в массиве, IMateConstraint.
2. Входной объект либо компонент IPart, тогда будет сформирован массив всех сопряжений для этого компонента, либо объект модели, который может фигурировать в сопряжениях.


## Last - Получить указатель на интерфейс последнего объекта в массиве сопряжений

Синтаксис Automation:
```
LPDISPATCH Last();
```
Синтаксис COM:
```
LPMATECONSTRAINT Last();
Возвращаемое значение:
- указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.
```


## Next - Получить указатель на интерфейс следующего объекта в массиве сопряжений

Синтаксис Automation:
```
LPDISPATCH Next();
```
Синтаксис COM:
```
LPMATECONSTRAINT Next();
Возвращаемое значение:
- указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.
```


## Prev - Получить указатель на интерфейс предыдущего объекта в массиве сопряжений

Синтаксис Automation:
```
LPDISPATCH Prev();
```
Синтаксис COM:
```
LPMATECONSTRAINT Prev();
Возвращаемое значение:
- указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.
```


## Refresh - Обновить массив сопряжений

Синтаксис Automation:
```
BOOL Refresh();
```
Синтаксис COM:
```
BOOL Refresh();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод не работает для временного массива (полученного от ksRequestInfo3D::GetMateConstraintCollection).


## RemoveMateConstraint - Удалить сопряжение из массива

Синтаксис Automation:
```
BOOL RemoveMateConstraint (LPDISPATCH mate);
```
Синтаксис COM:
```
BOOL RemoveMateConstraint (LPMATECONSTRAINT mate);
Входные параметры:
mate    - указатель на интерфейс ksMateConstraint или IMateConstraint.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
