---
title: "Сплайн (Интерфейсы ksSplineDefinition и ISplineDefinition)"
type: interface
api: [api7]
domain: [2d]
tags: [interface, api7, 2d, kssplinedefinition]
sources:
  - kssplinedefinition.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Объект модели (Интерфейсы ksEntity и IEntity)  > Интерфейсы ksEntity и iEntity - Интерфейс элемента модели (оси, плоскости, формообразующего элемента)  > Интерфейсы пространственных кривых *


## Сплайн (Интерфейсы ksSplineDefinition и ISplineDefinition)

Интерфейс параметров сплайна.
| ksSplineDefinition | - интерфейс Automation |
| --- | --- |
| ISplineDefinition | - интерфейс COM |
Примечание:
Интерфейс может быть получен от интерфейса ksEntity или IEntity с помощью метода ksEntity::GetDefinition или IEntity::GetDefinition и последующим приведением объекта типа IDispatch или IUnknown к интерфейсу типа ksSplineDefinition или ISplineDefinition соответственно.


## AddVertex - Добавить вершину

Синтаксис Automation:
```
BOOL AddVertex (double x,
double y,
double z,
double weight);
```
Синтаксис COM:
```
BOOL AddVertex (double x,
double y,
double z,
double weight);
Входные параметры:
x    - x координата вершины,
y    - y координата вершины,
z    - z координата вершины,
weight    - вес вершины.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## AddVertexAndAssociation - Добавить вершину по опорному объекту

Синтаксис Automation:
```
BOOL AddVertexAndAssociation (long index, LPDISPATCH obj, double weight);
```
Синтаксис COM:
```
BOOL AddVertexAndAssociation (long index, LPENTITY obj, double weight);
Входные параметры:
index    - индекс, с которым добавляется вершина,
obj    - указатель на интерфейс точки ksEntity или IEntity,
weight    - вес вершины.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Метод позволяет добавить в пространственную кривую новую вершину. Координаты новой вершины будут равны координатам опорного объекта obj. Вес вершины равен weight.
2. Объект (точка) obj становится опорным.
3. Если index = -1 или значение index превышает количество вершин, то новая вершина добавляется после последней.


## AttachAssociation - Задать опорную точку по индексу

Синтаксис Automation:
```
BOOL AttachAssociation (long index, LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL AttachAssociation (long index, LPENTITY obj);
Входные параметры:
index    - индекс вершины в массиве,
obj    - указатель на интерфейс точки ksEntity или IEntity,
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет задать опорный объект для существующей вершины с номером index пространственной кривой. Если объект уже был задан, он будет заменен новым.


## cls - Признак замкнутости сплайна

Тип данных: BOOL
Значения свойства:
| TRUE | - замкнутый сплайн, |
| --- | --- |
| FALSE | - разомкнутый сплайн. |
Синтаксис Automation:
```
cls = iSpline.cls    Получить свойство (* )
iSpline.cls = cls    Установить свойство (* )
cls = iSpline.GetClosed()    Получить свойство (**)
iSpline.SetClosed(cls)    Установить свойство (**)
```


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

Тип данных: long
Синтаксис Automation:
```
degree = iSpline.degree    Получить свойство (* )
iSpline.degree = degree    Установить свойство (* )
degree = iSpline.GetDegree()    Получить свойство (**)
iSpline.SetDegree(degree)    Установить свойство (**)
```


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

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


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

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


## GetAssociation - Получить указатель на опорную точку по индексу

Синтаксис Automation:
```
LPDISPATCH GetAssociation(long index);
```
Синтаксис COM:
```
LPENTITY GetAssociation(long index);
Входные параметры:
index    - индекс вершины в массиве.
Возвращаемое значение:
- указатель на интерфейс точки ksEntity или IEntity,    - в случае успешного завершения,
- FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет получить опорный объект для существующей вершины с номером index пространственной кривой, если он был задан.


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

Синтаксис Automation:
```
long GetCountVertex();
```
Синтаксис COM:
```
long GetCountVertex();
Возвращаемое значение:
- количество вершин.
```


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

Синтаксис Automation:
```
BOOL GetParamVertex (long index,
double* x,
double* y,
double* z,
double* weight);
```
Синтаксис COM:
```
BOOL GetParamVertex (long index,
double* x,
double* y,
double* z,
double* weight);
Входной параметр:
index    - индекс вершины в массиве.
Выходные параметры:
x    - x координата вершины,
y    - y координата вершины,
z    - z координата вершины,
weight    - вес вершины.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## InsertVertex - Вставить вершину перед указанной

Синтаксис Automation:
```
BOOL InsertVertex (long index,
double x,
double y,
double z,
double weight);
```
Синтаксис COM:
```
BOOL InsertVertex (long index,
double x,
double y,
double z,
double weight);
Входные параметры:
index    - индекс вершины в массиве,
x    - x координата вершины,
y    - y координата вершины,
z    - z координата вершины,
weight    - вес вершины.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


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

Синтаксис Automation:
```
BOOL ReadFromFile (BSTR fileName);
```
Синтаксис COM:
```
BOOL ReadFromFile (LPOLESTR fileName);
Входной параметр:
fileName    - имя файла.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
Примечание. См. также WriteToFile.
```


## SetAssociation - Задать опорную точку по индексу

Синтаксис Automation:
```
BOOL SetAssociation(long index,
LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL SetAssociation(long index,
LPENTITY obj);
Входные параметры:
index    - индекс вершины,
obj    - указатель на интерфейс IEntity или ksEntity.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## splineOnPoles - Признак способа построения сплайна

Тип данных: BOOL
Значения свойства:
| TRUE | - по полюсам, |
| --- | --- |
| FALSE | - по вершинам. |
Синтаксис Automation:
```
splineOnPoles = iSpline.splineOnPoles    Получить свойство (* )
iSpline.splineOnPoles = splineOnPoles    Установить свойство (* )
splineOnPoles = iSpline.GetSplineOnPoles()    Получить свойство (**)
splineOnPoles = iSpline.GetSplineOnPoles()    Установить свойство (**)
```


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

Синтаксис Automation:
```
BOOL WriteToFile (LPCTSTR fileName);
```
Синтаксис COM:
```
BOOL WriteToFile (LPOLESTR fileName);
Входные параметр:
fileName    - имя файла.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
Примечание. См. также ReadFromFile.
```
