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