---
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.
