---
title: "3D-кривые и элементы тела"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, bc2014000]
sources:
  - bc2014000.html
  - imodelobjects.html
  - icurvevertexparam.html
  - imodelcurve3d.html
---

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




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

Базовый интерфейс для всех коллекций модельных объектов.
Иерархия:
IKompasAPIObject
IKompasCollection
IModelObjects
Примечание:
1. Данный интерфейс является базовым для коллекций модельных объектов.
2. Интерфейс может быть получен с помощью метода IUnknown QueryInterface от коллекций модельных объектов, например, IParts7.


## Item - Объект, заданный по индексу или по имени

Тип данных: указатель на интерфейс IModelObject
Синтаксис Automation:
```
Item = iObject.Item ( Index)    Получить свойство (* )
Item = iObject.GetItem ( Index)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Item( Index, &Item )    Получить свойство
Входные параметры:
Index ( Variant)    - VT_BSTR - имя объекта, VT_I4 - индекс объекта.
```
Примечание:
Свойство доступно только для чтения.


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

Интерфейс параметров вершины кривой.
Иерархия:
IKompasAPIObject
ICurveVertexParam
Указатель на интерфейс можно получить у сплайнов или ломаных, используя свойство ISpline3D::VertexParams, ISpline3D::VertexParamsArray и метод ISpline3D::AddVertex.


## AssociationVertex - Ассоциативная вершина

Тип данных: Указатель на интерфейс модельного объекта IModelObject
Синтаксис Automation:
```
AssociationVertex = iObject.AssociationVertex;    Получить свойство (* )
iObject.AssociationVertex = AssociationVertex;    Установить свойство (* )
AssociationVertex = iObject.GetAssociationVertex();    Получить свойство (**)
iObject.SetAssociationVertex(AssociationVertex);    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_AssociationVertex (&AssociationVertex)    Получить свойство
iObject->put_AssociationVertex (AssociationVertex)    Установить свойство
```


## BuildingObject - Объект, относительно которого ведется построение

Тип данных: Указатель на интерфейс модельного объекта IModelObject
Синтаксис Automation:
```
BuildingObject = iObject.BuildingObject;    Получить свойство (* )
iObject.BuildingObject = BuildingObject;    Установить свойство (* )
BuildingObject = iObject.GetBuildingObject();    Получить свойство (**)
iObject.SetBuildingObject(BuildingObject);    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_BuildingObject (&BuildingObject)    Получить свойство
iObject->put_BuildingObject (BuildingObject)    Установить свойство
```
Примечание:
Задать объект, относительно которого ведется построение, можно для типа построения ksLineBuildingType, равного ksLBTParallel и ksLBTPerpendicular.


## BuildingType - Способ построения сегмента кривой

Тип данных: из перечисления ksLineBuildingType
Синтаксис Automation:
```
BuildingType = iObject.BuildingType;    Получить свойство (* )
iObject.BuildingType = BuildingType;    Установить свойство (* )
BuildingType = iObject.GetBuildingType();    Получить свойство (**)
iObject.SetBuildingType(BuildingType);    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_BuildingType (&BuildingType)    Получить свойство
iObject->put_BuildingType (BuildingType)    Установить свойство
```
Примечание:
1. Для сплайна используются только константы ksLBTByPoint и ksLBTByPoint3DParams.
2. В случае задания ksLBTByPoint3DParams начинают работать свойства PointType и PointParameters.


## GetParamByDistance - Получить расстояние и радиус (для ломаной) или вес (для сплайна)

Синтаксис Automation:
```
BOOL GetParamByDistance( double * Distance,
double * Value );
```
Синтаксис Automation:
```
HRESULT GetParamByDistance( [out] double * Distance,
[out] double * Value,
[out, retval] VARIANT_BOOL * PVal );
Выходные параметры:
Distance    - расстояние до предыдущей вершины,
value    - радиус для точки ломаной и вес для сплайна.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Для вершины с индексом 0 расстояние выдается до вершины с индексом 1. Для остальных вершин расстояние выдается до вершины с индексом на 1 меньше, чем у данной вершины.
2. Получить расстояние можно для любого типа построения.
3. Установить расстояние можно, если тип построения ksLineBuildingType не равен ksLBTByPoint и не равен ksLBTByPoint3DParams.


## GetParamVertex - Получить параметры вершины

Синтаксис Automation:
```
BOOL GetParamVertex( double * x,
double * y,
double * z,
double * value );
```
Синтаксис Automation:
```
HRESULT GetParamVertex( [out] double * x,
[out] double * y,
[out] double * z,
[out] double * value,
[out, retval] VARIANT_BOOL * PVal );
Выходные параметры:
x, y, z    - пространственные координаты вершины,
value    - радиус для точки ломаной и вес для сплайна.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```


## Index - Индекс вершины в массиве вершин кривой

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


## PointParameters - Интерфейс параметров точки

Тип данных: Указатель на интерфейс параметров вершины ломанной IKompasAPIObject
Синтаксис Automation:
```
PointParameters = iObject.PointParameters( Index );    Получить свойство (* )
PointParameters = iObject.GetPointParameters( Index );    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_PointParameters( Index, &PointParameters )    Получить свойство
Входные параметры:
Index    - индекс вершины.
```
Примечание:
1. Свойство доступно только для чтения.
2. В зависимости от типа PointType интерфейс параметров должен приводится к одному из следующих вариантов:
•ksPDisplace - IPoint3DParamDisplace - Интерфейс параметров пространственной точки, заданной по смещению от опорного объекта.
•ksPIntersect - IPoint3DParamIntersect - Интерфейс параметров пространственной точки, заданной на пересечении опорных объектов.
•ksPCenter - IPoint3DParamCenter - Интерфейс параметров пространственной точки, заданной в центре опорного объекта,
•ksPCurve - IPoint3DParamCurve - Интерфейс параметров пространственной точки, заданной на кривой со смещением.
•ksPSurface - IPoint3DparamSurface - Интерфейс параметров пространственной точки, заданной на поверхности.
•ksPProjection - IPoint3DParamProjection Интерфейс параметров пространственной точки, заданной проецированием.


## PointType - Способ построения точки

Тип данных: Из перечисления ksPoint3DTypeEnum
Синтаксис Automation:
```
PointType = iObject.PointType;    Получить свойство (* )
iObject.PointType = PointType;    Установить свойство (* )
PointType = iObject.GetPointType();    Получить свойство (**)
iObject.SetPointType(PointType);    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_PointType (&PointType)    Получить свойство
iObject->put_PointType (PointType)    Установить свойство
```


## SetParamByDistance - Установить расстояние, радиус (ломаная) или вес (сплайн)

Синтаксис Automation:
```
double Distance,
double Value );
HRESULT SetParamByDistance( [in] double Distance,
double Value,
[out, retval] VARIANT_BOOL * PVal );
Distance    - расстояние до предыдущей вершины,
value    - радиус для точки ломаной и вес для сплайна.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
Примечание.
1. Нельзя установить расстояние для вершины с индексом 0.
2. Установить расстояние можно, если тип построения ksLineBuildingType не равен ksLBTByPoint и не равен ksLBTByPoint3DParams.
```


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

Синтаксис Automation:
```
BOOL SetParamByVertex( LPDISPATCH Obj,
double Value );
```
Синтаксис Automation:
```
HRESULT SetParamByVertex( [in] IModelObject * Obj,
[in] double Value,
[out, retval] VARIANT_BOOL * PVal );
Входные параметры:
obj    - указатель на вершину,
value    - радиус для точки ломаной и вес для сплайна.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
FALSE    - в случае неудачи.
```


## SetParamVertex - Установить параметры вершины

Синтаксис Automation:
```
BOOL SetParamVertex( double x,
double y,
double z,
double value );
```
Синтаксис Automation:
```
HRESULT SetParamVertex( [in] double x,
[in] double y,
[in] double z,
[in] double value,
[out, retval] VARIANT_BOOL * PVal );
Входные параметры:
x, y, z    - пространственные координаты вершины,
value    - радиус для точки ломаной и вес для сплайна.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
FALSE    - в случае неудачи.
```


## Update - Обновить параметры вершин кривой, начиная с этой

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


## Vector3D - Получить параметры вектора

Тип данных: указатель на интерфейс IVector3D
Синтаксис Automation:
```
Vector3D = Object.Vector3D    Получить свойство (* )
Vector3D = Object.GetVector3D()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Vector3D( &Vector3D )    Получить свойство
```
Примечание:
1. Свойство позволяет получить интерфейс вектора, задающего направление построения сегмента ломаной или сплайна.
2. Свойство доступно только для чтения.


## Vertex - Вершина кривой

Тип данных: указатель на интерфейс модельного объекта IModelObject.
Синтаксис Automation:
```
Vertex = iObject.Vertex;    Получить свойство (* )
Vertex = iObject.GetVertex();    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Vertex    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


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

Объект 3D-кривая.
Иерархия:
IDispatch
IModelCurve3D
Описание:
Позволяет получить и изменить общие свойства для 3D-кривых.
Является дополнительным интерфейсом для IModelObject.
Интерфейс IMathCurve3D


## EdgesStyle - Стиль линии

Тип данных: из перечисления ksCurveStyleEnum
Синтаксис Automation:
```
EdgesStyle = Object.EdgesStyle    Получить свойство (* )
Object.EdgesStyle = EdgesStyle    Установить свойство (* )
EdgesStyle = Object.GetEdgesStyle()    Получить свойство (**)
Object.SetEdgesStyle( EdgesStyle )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_EdgesStyle( &EdgesStyle )    Получить свойство
Object.put_EdgesStyle( EdgesStyle )    Установить свойство
Свойство позволяет устанавливать и получать стиль линии.
```


## GetVerticesParams - Получить параметры вершин кривой

Синтаксис Automation:
```
VARIANT GetVerticesParams();
```
Синтаксис COM:
```
HRESULT GetVerticesParams( VARIANT * Result );
Возвращаемое значение:
- массив параметров вершин - SafeArray вещественных чисел VT_ARRAY    VT_R8.
```


## VertexStyle - Стиль вершин

Тип данных: из перечисления ksAnnotationSymbolEnum
Синтаксис Automation:
```
VertexStyle = Object.VertexStyle    Получить свойство (* )
Object.VertexStyle = VertexStyle    Установить свойство (* )
VertexStyle = Object.GetVertexStyle()    Получить свойство (**)
Object.SetVertexStyle( VertexStyle )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_VertexStyle( &VertexStyle )    Получить свойство
Object.put_VertexStyle( VertexStyle )    Установить свойство
Свойство позволяет устанавливать и получать стиль вершин.
```


## VertexVisible - Признак отображения вершин

Тип данных: BOOL
Синтаксис Automation:
```
VertexVisible = Object.VertexVisible    Получить свойство (* )
Object.VertexVisible = VertexVisible    Установить свойство (* )
VertexVisible = Object.GetVertexVisible()    Получить свойство (**)
Object.SetVertexVisible( VertexVisible )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_VertexVisible( &EdgesCheck )    Получить свойство
Object.put_VertexVisible( EdgesCheck )    Установить свойство
Свойство позволяет устанавливать и получать признак отображения вершин.
```
