--- 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 - в случае успешного завершения. ```