---
title: "Интерфейс IPolyLine"
type: interface
api: [api7]
tags: [interface, api7, ipolyline]
sources:
  - ipolyline.html
---

*API интерфейсов. Версия 7 > Документ 3D  > Вспомогательные объекты, 3D-кривые и элементы тела  > 3D-кривые и элементы тела  > Интерфейс IModelObjects  > IModelObjects - свойства *


## Интерфейс IPolyLine

Интерфейс пространственной ломаной.
Иерархия:
IKompasAPIObject
IModelObject
IPolyLine
ILocalCSObject
Примечание:
1. Интерфейс можно получить у коллекции пространственных ломаных, используя свойство IPolyLines::PolyLine или метод IPolyLines::Add.
2. После задания параметров объекта требуется вызвать метод IModelObject::Update.
3. С помощью метода IUnknown::QueryInterface у интерфейса можно получить интерфейс подчиненного объекта ЛСК ILocalCSObject.


## AddVertex - Создать новую вершину

Синтаксис Automation:
```
LPDISPATCH AddVertex( long Index );
```
Синтаксис COM:
```
HRESULT AddVertex( [in] long Index,
[out, retval] ICurveVertexParam ** Result);
Возвращаемое значение:
ICurveVertexParam    - указатель на интерфейс параметров вершины ломаной.
```


## Closed - Замкнутость

Тип данных: BOOL
Значения свойства:
| TRUE | - пространственная ломаная замкнута, |
| --- | --- |
| FALSE | - пространственная ломаная разомкнута. |
Синтаксис Automation:
```
Closed = iObject.Closed;    Получить свойство (* )
iObject.Closed = Closed;    Установить свойство (* )
Closed = iObject.GetClosed();    Получить свойство (**)
iObject.SetClosed(Closed);    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Closed (&Closed)    Получить свойство
iObject->put_Closed (Closed)    Установить свойство
Примечание.
Свойство позволяет получить/установить разомкнутую или замкнутую ломаную.
```


## DeleteVertex - Удалить вершину с указанным индексом

Синтаксис Automation:
```
BOOL DeleteVertex( long Index );
```
Синтаксис COM:
```
HRESULT DeleteVertex([in] long Index,
[out, retval] VARIANT_BOOL * Result );
Входные параметры:
Index    - индекс вершины.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```


## Edges - Массив ребер 3D ломаной

Тип данных: VARIANT
Синтаксис Automation:
```
Edges = iObject.Edges;    Получить свойство (* )
iObject.Edges = Edges;    Установить свойство (* )
Edges = iObject.GetEdges();    Получить свойство (**)
iObject.SetEdges( Edges );    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Edges( &Edges );    Получить свойство
iObject->put_Edges( Edges );    Установить свойство
Примечание.
Свойство позволяет получать массив ребер 3D ломаной. Массив возвращается в виде массива SAFEARRAY рёбер LPDISPATCH (VT_ARRAY | VT_DISPATCH).
```


## ErrorIndexes - Массив не скругленных вершин SAFEARRAY - VT_ARRAY | VT_I4

Тип данных: VARIANT
Синтаксис Automation:
```
ErrorIndexes = Object.ErrorIndexes;    Получить свойство (* )
ErrorIndexes = Object.GetErrorIndexes();    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ErrorIndexes( &ErrorIndexes )    Получить свойство
Примечание.
Свойство доступно только для чтения.
```


## Flush - Очистить массив вершин

Синтаксис Automation:
```
BOOL Flush();
```
Синтаксис COM:
```
HRESULT Flush([out, retval] VARIANT_BOOL * Result);
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```


## GetVertexCoordinatesArray - Получить массив координат и радиусов вершин в виде SAFEARRAY double - VT_ARRAY | VT_R8

Синтаксис Automation:
```
BOOL GetVertexCoordinatesArray( VARIANT * Coordinates,
VARIANT * Radiuses );
```
Синтаксис COM:
```
HRESULT GetVertexCoordinatesArray([out] VARIANT * Coordinates,
[out] VARIANT * Radiuses,
[out, retval] VARIANT_BOOL * Result);
Входные параметры:
Coordinates    - массив SafeArray типа VT_ARRAY    VT_R8 координат точек всех вершин,
Radiuses    - массив SafeArray типа VT_ARRAY    VT_R8 радиусов при вершинах кривой.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
Примечание.
1. Параметры Coordinates и Radiuses не являются обязательными. В функцию достаточно передать один из указателей на VARIANT.
2. Массивы являются согласованными:
Координаты точек в массиве Coordinates лежат в следующей последовательности:
x0, y0, z0, x1, y1, z1 ...xi, yi, zi,
Радиусы при вершинах кривой в массиве Radiuses лежат в последовательности:
radius0, radius1, ...radiusi.
```


## ReadFromFile - Прочитать параметры вершин из текстового файла

Синтаксис Automation:
```
BOOL ReadFromFile( BSTR fileName );
```
Синтаксис COM:
```
HRESULT ReadFromFile( [in] BSTR fileName,
[out, retval] VARIANT_BOOL * Result);
Входные параметры:
fileName    - имя файла.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
Примечание.
См. также IPolyLine::WriteToFile.
```


## VertexCount - Количество вершин

Тип данных: long
Синтаксис Automation:
```
VertexCount = iObject.VertexCount;    Получить свойство (* )
VertexCount = iObject.GetVertexCount( );    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_VertexCount( &VertexCount )    Получить свойство
Примечание.
Свойство доступно только для чтения.
```


## VertexParams - Параметры вершины ломаной

Тип данных: указатель на интерфейс параметров вершины ломанной ICurveVertexParam
Синтаксис Automation:
```
VertexParams = iObject.VertexParams( Index );    Получить свойство (* )
VertexParams = iObject.GetVertexParams( Index );    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_VertexParams( Index, &VertexParams )    Получить свойство
Входные параметры:
Index    - индекс вершины.
Примечание.
Свойство доступно только для чтения.
```


## VertexParamsArray - Массив параметров вершин в виде SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH

Тип данных: VARIANT
Значения свойства:
| Массив SafeArray типа VT_ARRAY | VT_DISPATCH. | |
| --- | --- |
Синтаксис Automation:
```
VertexParamsArray = iObject.VertexParamsArray;    Получить свойство (* )
VertexParamsArray = iObject.GetVertexParamsArray();    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_VertexParamsArray( &VertexParamsArray )    Получить свойство
Примечание.
1. Свойство доступно только для чтения.
2. Свойство позволяет получить массив SAFEARRAY параметров всех вершин. Массив VT_DISPATCH, которые можно преобразовать в интерфейсы ICurveVertexParam.
```


## VertexVisible - Видимость свободных вершин 3D ломаной

Тип данных: BOOL
Значения свойства:
| TRUE | - вершины видимые, |
| --- | --- |
| FALSE | - вершины невидимые. |
Синтаксис Automation:
```
VertexVisible = iObject.VertexVisible;    Получить свойство (* )
iObject.VertexVisible = VertexVisible;    Установить свойство (* )
VertexVisible = iObject.GetVertexVisible();    Получить свойство (**)
iObject.SetVertexVisible(VertexVisible);    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_VertexVisible (&VertexVisible)    Получить свойство
iObject->put_VertexVisible (VertexVisible)    Установить свойство
Примечание.
Свойство позволяет получить/установить видимость свободных вершин 3D ломаной.
```


## WriteToFile - Записать параметры вершин в текстовый файл

Синтаксис Automation:
```
BOOL WriteToFile( BSTR fileName );
```
Синтаксис COM:
```
HRESULT WriteToFile( [in] BSTR fileName,
[out, retval] VARIANT_BOOL * Result);
Входные параметры:
fileName    - имя файла.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
Примечание.
См. также IPolyLine::ReadFromFile.
```
