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

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


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

Сплайн на поверхности.
Иерархия:
IDispatch
IKompasAPIObject
IModelObject
ISplineOnSurface
Примечание:
Интерфейс можно получить у коллекции сплайнов по поверхностям с помощью свойства ISplinesOnSurfaces::SplineOnSurface и метода ISplinesOnSurfaces::Add.


## AddPoint - Создание новой вершины

Синтаксис Automation:
```
BOOL AddPoint( long IndexAt, double X, double Y, double Z, double W, IModelObject * AssociationObject );
```
Синтаксис COM:
```
HRESULT AddPoint( long IndexAt, double X, double Y, double Z, double W, IModelObject * AssociationObject, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
IndexAt    - индекс вершины,
X    - координата по X,
Y    - координата по Y,
Z    - координата по Z
W    - вес,
AssociationObject    - ассоциативная вершина.
```


## AddVertex - Создание новой вершины

Синтаксис Automation:
```
BOOL AddVertex( long IndexAt,
double U,
double V,
double W,
IModelObject * AssociationObject );
```
Синтаксис COM:
```
HRESULT AddVertex( long IndexAt,
double U,
double V,
double W,
IModelObject * AssociationObject,
BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
IndexAt    - индекс вершины, перед которой нужно добавить новую,
U    - координата по U в %,
V    - координата по V в %,
W    - вес,
AssociationObject    - ассоциативная вершина.
```


## AssociationObject - Установить опорный объект для вершины

Тип данных: Указатель на интерфейс IModelObject
Синтаксис Automation:
```
AssociationObject = Object.AssociationObject( Index )    Получить свойство (* )
Object.AssociationObject( Index ) = AssociationObject    Установить свойство (* )
AssociationObject = Object.GetAssociationObject( Index )    Получить свойство (**)
Object.SetAssociationObject( Index, AssociationObject )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_AssociationObject( Index, &AssociationObject )    Получить свойство
Object.put_AssociationObject( Index, AssociationObject )    Установить свойство
Входные параметры:
long Index - индекс вершины.
```


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

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


## ClearTangentParameters - Удалить параметры управления во всех точках

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


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

Тип данных: BOOL
Синтаксис Automation:
```
Closed = Object.Closed    Получить свойство (* )
Object.Closed = Closed    Установить свойство (* )
Closed = Object.GetClosed()    Получить свойство (**)
Object.SetClosed( Closed )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Closed( &Closed )    Получить свойство
Object.put_Closed( Closed )    Установить свойство
```


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

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


## GetPoint - Получить координаты и вес вершины

Синтаксис Automation:
```
BOOL GetPoint( long Index, double * X, double * Y, double * Z, double * W );
```
Синтаксис COM:
```
HRESULT GetPoint( long Index, double * X, double * Y, double * Z, double * W, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Index    - индекс вершины.
Выходные параметры:
X    - координата по X,
Y    - координата по Y,
Z    - координата по Z,
W    - вес.
```


## GetTangentVector - Получить направление касательного вектора

Синтаксис Automation:
```
BOOL GetTangentVector( long Index, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetTangentVector( long Index, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Index    - индекс вершины.
Выходные параметры:
X    - координата по X,
Y    - координата по Y,
Z    - координата по Z.
```


## GetVertex - Получить координаты UV и вес вершины

Синтаксис Automation:
```
BOOL GetVertex( long Index, double * U, double * V, double * W );
```
Синтаксис COM:
```
HRESULT GetVertex( long Index, double * U, double * V, double * W, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Index    - индекс вершины.
Выходные параметры:
U    - координата по U в %,
V    - координата по V в %,
W    - вес.
```


## GetVertexParams - Массив параметров UV и весов вершин в виде SAFEARRAY double - VT_ARRAY | VT_R8

Синтаксис Automation:
```
BOOL GetVertexParams( VARIANT * UV, VARIANT * Points, VARIANT * Weights );
```
Синтаксис COM:
```
HRESULT GetVertexParams( VARIANT * UV, VARIANT * Points, VARIANT * Weights, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Выходные параметры:
UV    - массив VT_ARRAY    VT_R8 параметров UV,
Points    - массив VT_ARRAY    VT_R8 координат вершин,
Weights    - массив VT_ARRAY    VT_R8 весов вершин.
```


## Invert - Сменить направление касательного вектора на обратное

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


## Reverse - Противоположное направление

Тип данных: BOOL
Синтаксис Automation:
```
Reverse = Object.Reverse( Index )    Получить свойство (* )
Object.Reverse( Index ) = Reverse    Установить свойство (* )
Reverse = Object.GetReverse( Index )    Получить свойство (**)
Object.SetReverse( Index, Reverse )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Reverse( Index, &Reverse )    Получить свойство
Object.put_Reverset( Index, Reverse )    Установить свойство
Входные параметры:
long Index - индекс вершины.
Свойство позволяет устанавливать и получать признак того, что направление изменено на противоположное.
```


## SetPoint - Установить координаты и вес вершины

Синтаксис Automation:
```
BOOL SetPoint( long Index, double X, double Y, double Z, double W );
```
Синтаксис COM:
```
HRESULT SetPoint( long Index, double X, double Y, double Z, double W, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
X    - координата по X,
Y    - координата по Y,
Z    - координата по Z,
W    - вес.
```


## SetTangentVector - Установить направление касательного вектора

Синтаксис Automation:
```
BOOL SetTangentVector( long Index, double X, double Y, double Z );
```
Синтаксис COM:
```
HRESULT SetTangentVector( long Index, double X, double Y, double Z, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Index    - индекс вершины,
X    - координата по X,
Y    - координата по Y,
Z    - координата по Z.
```


## SetVertex - Установить координаты UV и вес вершины

Синтаксис Automation:
```
BOOL SetVertex( long Index, double U, double V, double W );
```
Синтаксис COM:
```
HRESULT SetVertex( long Index, double U, double V, double W, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Index    - индекс вершины,
U    - координата по U в %,
V    - координата по V в %,
W    - вес.
```


## SplineOnPoles - Тип построения

Тип данных: BOOL
Синтаксис Automation:
```
SplineOnPoles = Object.SplineOnPoles    Получить свойство (* )
Object.SplineOnPoles = SplineOnPoles    Установить свойство (* )
SplineOnPoles = Object.GetSplineOnPoles()    Получить свойство (**)
Object.SetSplineOnPoles( SplineOnPoles )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_SplineOnPoles( &SplineOnPoles )    Получить свойство
Object.put_SplineOnPoles( SplineOnPoles )    Установить свойство
TRUE - по полюсам
FALSE - по точкам.
```


## SplineOrder - Порядок сплайна

Тип данных: long
Синтаксис Automation:
```
SplineOrder = Object.SplineOrder    Получить свойство (* )
Object.SplineOrder = SplineOrder    Установить свойство (* )
SplineOrder = Object.GetSplineOrder()    Получить свойство (**)
Object.SetSplineOrder( SplineOrder )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_SplineOrder( &SplineOrder )    Получить свойство
Object.put_SplineOrder( SplineOrder )    Установить свойство
```


## SplineTangent - Тип касательного вектора в вершине

Тип данных: из перечисления ksSplineTangentEnum
Синтаксис Automation:
```
SplineTangent = Object.SplineTangent( Index )    Получить свойство (* )
Object.SplineTangent( Index ) = SplineTangent    Установить свойство (* )
SplineTangent = Object.GetSplineTangent( Index )    Получить свойство (**)
Object.SetSplineTangent( Index, SplineTangent )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_SplineTangent( Index, &SplineTangent )    Получить свойство
Object.put_SplineTangent( Index, SplineTangent )    Установить свойство
Входные параметры:
long Index - индекс вершины.
```


## SurfaceObject - Установить поверхность

Тип данных: Указатель на интерфейс IModelObject
Синтаксис Automation:
```
SurfaceObject = Object.SurfaceObject    Получить свойство (* )
Object.SurfaceObject = SurfaceObject    Установить свойство (* )
SurfaceObject = Object.GetSurfaceObject()    Получить свойство (**)
Object.SetSurfaceObject( SurfaceObject )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_SurfaceObject( &SurfaceObject )    Получить свойство
Object.put_SurfaceObject( SurfaceObject )    Установить свойство
```


## TangentCurve - Касательная кривая

Тип данных: Указатель на интерфейс IModelObject
Синтаксис Automation:
```
TangentCurve = Object.TangentCurve( Index )    Получить свойство (* )
Object.TangentCurve( Index ) = TangentCurve    Установить свойство (* )
TangentCurve = Object.GetTangentCurve( Index )    Получить свойство (**)
Object.SetTangentCurve( Index, TangentCurve )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_TangentCurve( Index, &TangentCurve )    Получить свойство
Object.put_TangentCurve( Index, TangentCurve )    Установить свойство
Входные параметры:
long Index - индекс вершины.
```


## VectorLenght - Длина вектора

Тип данных: double
Синтаксис Automation:
```
VectorLenght = Object.VectorLenght( Index )    Получить свойство (* )
Object.VectorLenght( Index ) = VectorLenght    Установить свойство (* )
VectorLenght = Object.GetVectorLenght( Index )    Получить свойство (**)
Object.SetVectorLenght( Index, VectorLenght )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_VectorLenght( Index, &VectorLenght )    Получить свойство
Object.put_VectorLenght( Index, VectorLenght )    Установить свойство
Входные параметры:
long Index - индекс вершины.
```


## VertexCount - Получить количество вершин

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