--- title: "Интерфейс ISurfacesIntersectionCurve" type: interface api: [api7] tags: [interface, api7, isurfacesintersectioncurve] sources: - isurfacesintersectioncurve.html --- *API интерфейсов. Версия 7 > Документ 3D  > Вспомогательные объекты, 3D-кривые и элементы тела  > 3D-кривые и элементы тела  > Интерфейс IModelObjects  > IModelObjects - свойства * ## Интерфейс ISurfacesIntersectionCurve Интерфейс кривых пересечений поверхностей. Иерархия: IKompasAPIObject IModelObject ISurfacesIntersectionCurve Описание: Интерфейс позволяет создать кривую пересечения двух поверхностей, или двух наборов поверхностей, или поверхности и набора. Примечание: Интерфейс можно получить с помощью свойства ISurfacesIntersectionCurves::SurfacesIntersectionCurve и метода ISurfacesIntersectionCurves::Add. ## AddObjects - Добавить элемент(ы) в указанный набор Синтаксис Automation: ``` BOOL AddObjects( BOOL ForArray1, VARIANT * Objects ); ``` Синтаксис COM: ``` HRESULT AddObjects( BOOL ForArray1, VARIANT * Objects, BOOL * Res ); Выходные параметры: ForArray1 - TRUE - первый набор, - FALSE - второй набор, Objects - набор граней. Возвращаемое значение: TRUE - в случае удачи. ``` Примечание: Если в набор добавляется одна грань, то ее можно передать как VT_DISPATCH. Если в набор добавляется несколько граней, то нужно передать массив VT_ARRAY | VT_DISPATCH. ## AutoCheck - Включение/выключение автоматического выбора всех массивов ребер Тип данных: BOOL Синтаксис Automation: ``` AutoCheck = Object.AutoCheck Получить свойство (* ) Object.AutoCheck = AutoCheck Установить свойство (* ) AutoCheck = Object.GetAutoCheck() Получить свойство (**) Object.SetAutoCheck( AutoCheck ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_AutoCheck( &AutoCheck ) Получить свойство Object.put_AutoCheck( AutoCheck ) Установить свойство Свойство позволяет включать и отключать автоматический выбор всех массивов ребер. ``` ## Clear - Очистить указанный набор объектов Синтаксис Automation: ``` BOOL Clear( BOOL ForArray1 ); ``` Синтаксис COM: ``` HRESULT Clear( BOOL ForArray1, BOOL * Res ); Выходные параметры: ForArray1 - TRUE - первый набор, - FALSE - второй набор. Возвращаемое значение: TRUE - в случае удачи. ``` ## Edges - Количество массивов ребер в кривой пересечения поверхностей Тип данных: VARIANT Синтаксис Automation: ``` Edges = Object.Edges( EdgesArrayIndex ) Получить свойство (* ) Edges = Object.GetEdges( EdgesArrayIndex ) Получить свойство (**) ``` Синтаксис COM: ``` Object.get_Edges( EdgesArrayIndex, &Edges ) Получить свойство Входные параметры: EdgesArrayIndex - индекс массива ребер ``` Примечание: Свойство доступно только для чтения. В зависимости от количества ребер возвращается: •нет ребер - VT_EMPTY (если указан неправильный индекс или ребра не созданы), •одно ребро - VT_DISPATCH, •более одного ребра - VT_ARRAY | VT_DISPATCH. Индекс должен быть в диапазоне 0...ISurfacesIntersectionCurve::EdgesArraysCount-1. ## EdgesArraysCount - Количество массивов ребер в кривой пересечения поверхностей Тип данных: long Синтаксис Automation: ``` EdgesArraysCount = Object.EdgesArraysCount Получить свойство (* ) EdgesArraysCount = Object.GetEdgesArraysCount() Получить свойство (**) ``` Синтаксис COM: ``` Object.get_EdgesArraysCount( &EdgesArraysCount ) Получить свойство Свойство позволяет получить количество массивов ребер в кривой пересечения поверхностей. ``` Примечание: Свойство доступно только для чтения. ## EdgesCheck - Признак выбора указанного по индексу массива ребер Тип данных: BOOL Синтаксис Automation: ``` EdgesCheck = Object.EdgesCheck( EdgesArrayIndex ) Получить свойство (* ) Object.EdgesCheck( EdgesArrayIndex ) = EdgesCheck Установить свойство (* ) EdgesCheck = Object.GetEdgesCheck( EdgesArrayIndex ) Получить свойство (**) Object.SetEdgesCheck( EdgesArrayIndex, EdgesCheck) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_EdgesCheck( EdgesArrayIndex, &EdgesCheck ) Получить свойство Object.put_EdgesCheck( EdgesArrayIndex, EdgesCheck ) Установить свойство Входные параметры: EdgesArrayIndex - индекс массива ребер. ``` Примечание: Индекс должен быть в диапазоне 0...ISurfacesIntersectionCurve::EdgesArraysCount-1. ## EdgesChecks - Признаки выбора массивов ребер Тип данных: VARIANT типа VT_ARRAY | VT_BOOL Синтаксис Automation: ``` EdgesChecks = Object.EdgesChecks Получить свойство (* ) Object.EdgesChecks = EdgesChecks Установить свойство (* ) EdgesChecks = Object.GetEdgesChecks() Получить свойство (**) Object.SetEdgesChecks( EdgesChecks ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_EdgesChecks( &EdgesChecks ) Получить свойство Object.put_EdgesChecks( EdgesChecks ) Установить свойство Свойство позволяет устанавливать и получать признаки выбора массива ребер. ``` ## EdgesChecksCount - Количество доступных для создания контуров Тип данных: long Синтаксис Automation: ``` EdgesChecksCount = Object.EdgesChecksCount Получить свойство (* ) EdgesChecksCount = Object.GetEdgesChecksCount() Получить свойство (**) ``` Синтаксис COM: ``` Object.get_EdgesChecksCount( &EdgesChecksCount ) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## GetObject - Получить объект из указанного наборапо индексу Синтаксис Automation: ``` LPDISPATCH GetObject( BOOL ForArray1, long Index ); ``` Синтаксис COM: ``` HRESULT GetObject( BOOL ForArray1, long Index, IModelObject **Object ); Выходные параметры: ForArray1 - TRUE - первый набор, - FALSE - второй набор, Index - индекс объекта в наборе. Возвращаемое значение: - указатель на интерфейс IModelObject. ``` ## GetObjects - Получить 1-й и 2-й наборы поверхностей Синтаксис Automation: ``` BOOL GetObjects( VARIANT * ObjectsArray1, VARIANT * ObjectsArray2 ); ``` Синтаксис COM: ``` HRESULT GetObjects( VARIANT * ObjectsArray1, VARIANT * ObjectsArray2, BOOL * Res ); Выходные параметры: ObjectsArray1 - первый набор граней, ObjectsArray2 - первый набор граней. Возвращаемое значение: TRUE - в случае удачи. ``` Примечание: Если в наборе одна грань, то она возвращается как VT_DISPATCH. Если в наборе несколько граней, то возвращается массив VT_ARRAY | VT_DISPATCH. ## ObjectsCount - Получить количество объектов в указанном наборе Тип данных: long Синтаксис Automation: ``` ObjectsCount = Object.ObjectsCount( ForArray1 ) Получить свойство (* ) ObjectsCount = Object.GetObjectsCount( ForArray1 ) Получить свойство (**) ``` Синтаксис COM: ``` Object.get_ObjectsCount( ForArray1, &ObjectsCount ) Получить свойство Входные параметры: ForArray1 - TRUE - первый набор, - FALSE - второй набор. Свойство позволяет получить количество объектов в указанном наборе. ``` Примечание: Свойство доступно только для чтения. ## SetObjects - Задать 1-й и 2-й наборы поверхностей Синтаксис Automation: ``` BOOL SetObjects( VARIANT ObjectsArray1, VARIANT ObjectsArray2 ) ``` Синтаксис COM: ``` HRESULT SetObjects( VARIANT ObjectsArray1, VARIANT ObjectsArray2, BOOL * Res ); Входные параметры: ObjectsArray1 - первый набор граней, ObjectsArray2 - первый набор граней. Возвращаемое значение: TRUE - в случае удачи. ``` Примечание: Если требуется передать одну грань в наборе, ее можно передать как VT_DISPATCH. Если требуется передать несколько граней в наборе, то нужно передать его как массив VT_ARRAY | VT_DISPATCH.