--- 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 - в случае неудачи. ```