---
title: "Интерфейсы структуры параметров сопряжения (Интерфейсы ksMateConstraint, IMateConstraint)"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, ksmateconstraint]
sources:
  - ksmateconstraint.html
---

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


## Интерфейсы структуры параметров сопряжения (Интерфейсы ksMateConstraint, IMateConstraint)

Интерфейс параметров сопряжения.
| ksMateConstraint | - интерфейс Automation |
| --- | --- |
| ImateConstraint | - интерфейс COM |
Примечание:
Данный интерфейс может быть получен следующими способами:
•с использованием метода интерфейса ksDocument3D::GetMateConstraint,
•с использованием методов интерфейса ksMateConstraintCollection.


## constraintType - Тип сопряжения

Тип данных: short
Синтаксис Automation:
```
сonstraintType = mateConstraint.сonstraintType    Получить свойство(* )
mateConstraint.сonstraintType = сonstraintType    Установить свойство (* )
сonstraintType = mateConstraint.GetConstraintType()    Получить свойство (**)
mateConstraint.SetConstraintType(сonstraintType)    Установить свойство (**)
```
Синтаксис COM:
```
сonstraintType = mateConstraint.GetConstraintType()    Получить свойство
mateConstraint.SetConstraintType(сonstraintType)    Установить свойство
Типы сопряжений...
```


## Create - Создать временное сопряжение

Синтаксис Automation:
```
BOOL Create();
```
Синтаксис COM:
```
BOOL Create();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Сопряжения бывают постоянными и временными. Временные сопряжения, в отличие от постоянных, существуют только в течении процесса указания местоположения или объектов. Процесс запускается методом ksDocument3D::UserGetPlacementAndEntity. Постоянные сопряжения создаются с помощью метода ksDocument3D::AddMateConstraint.
2. Данный метод необходимо вызвать для создания временного сопряжения в модели после создания интерфейса с помощью метода ksDocument3D::GetMateConstraint и изменения параметров создаваемого сопряжения. Если до вызова данного метода параметры не изменены, сопряжение создается с параметрами, принятыми по умолчанию.
3. Пример использования методов создания временных и постоянных сопряжений приведен в демонстрационной библиотеке построения модели стандартного изделия (шпильки), которая сохранена в файле STUDS3D.rtw.


## direction - Направление

Тип данных: short
Синтаксис Automation:
```
direction = mateConstraint.direction    Получить свойство(* )
mateConstraint.direction = direction    Установить свойство (* )
direction = mateConstraint.GetDirection()    Получить свойство (**)
mateConstraint.SetDirection(direction)    Установить свойство (**)
```
Синтаксис COM:
```
direction = mateConstraint.GetDirection()    Получить свойство
mateConstraint.SetDirection(direction)    Установить свойство
Направления сопряжений...
```


## distance - Расстояние между объектами

Тип данных: double
Синтаксис Automation:
```
distance = mateConstraint.distance    Получить свойство(* )
mateConstraint.distance = distance    Установить свойство (* )
distance = mateConstraint.GetDistance()    Получить свойство (**)
mateConstraint.SetDistance(distance)    Установить свойство (**)
```
Синтаксис COM:
```
distance = mateConstraint.GetDistance()    Получить свойство
mateConstraint.SetDistance(distance)    Установить свойство
```


## fixed - Фиксация

Тип данных: short
Синтаксис Automation:
```
fixed = mateConstraint.fixed    Получить свойство(* )
mateConstraint.fixed = fixed    Установить свойство (* )
fixed = mateConstraint.GetFixed()    Получить свойство (**)
mateConstraint.SetFixed(fixed)    Установить свойство (**)
```
Синтаксис COM:
```
fixed = mateConstraint.GetFixed()    Получить свойство
mateConstraint.SetFixed(fixed)    Установить свойство
Фиксации сопряжений...
```
Примечание:
В настоящее время не используется.


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

Синтаксис Automation:
```
LPDISPATCH GetBaseObj (short number);
```
Синтаксис COM:
```
LPENTITY GetBaseObj (short number);
Входные параметры:
number    - номер объекта для сопряжения (1 или 2).
Возвращаемое значение:
- указатель на интерфейс объекта для сопряжения ksEntity или IEntity.
```


## GetEntityParams - Получить параметры математических обектов, участвующих в сопряжении

Синтаксис Automation:
```
long GetEntityParams (long index, VARIANT * params);
```
Синтаксис COM:
```
int GetEntityParams (int index, VARIANT * params);
Входные параметры:
index    - индекс объекта.
Выходные параметры Automation:
params    - параметры объекта массив SafeArray вещественных чисел.
Выходные параметры COM:
params    - параметры объекта.
Возвращаемое значение:
тип математического объекта, участвующего в сопряжении из ksMateType    - если параметры получены,
ksMateUnknown    - в случае ошибки.
```
Примечание:
1. Параметры возвращаются в системе координат сборки. При необходимости их можно перевести в систему координат нужного компонента с помощью функции IPart::TransformPoint.
2. Геометрический объект для сопряжения описывается набором из 8-ми вещественных чисел, сгруппированных следующим образом:
•три координаты точки Pc, Pc = { pointX, pointY, pointZ },
•три координаты вектора V, V = { vectorI, vectorJ, vectorK },
•две координаты, соответствующие радиусам, V = { vectorI, vectorJ, vectorK }.
Представление математических объектов, участвующих в сопряжении...


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

Синтаксис Automation:
```
LPDISPATCH GetFeature();
```
Синтаксис COM:
```
LPFEATURE GetFeature();
Возвращаемое значение:
- указатель на интерфейс ksFeature или IFeature.
```


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

Синтаксис Automation:
```
BOOL SetBaseObj (short number, LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL SetBaseObj (short number, LPENTITY obj);
Входные параметры:
number    - номер объекта для сопряжения (1 или 2),
obj    - указатель на интерфейс объекта для сопряжения ksEntity или IEntity.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
