---
title: "Кривая NURBS (Интерфейс ksNurbsParam)"
type: interface
api: [api7]
tags: [interface, api7, ksnurbsparam]
sources:
  - ksnurbsparam.html
---

*API интерфейсов. Версия 5 > Графический документ (Интерфейсы - ksDocument2D и IDocument2D)  > Интерфейсы параметров графических примитивов  > NURBS *


## Кривая NURBS (Интерфейс ksNurbsParam)

Интерфейс параметров кривой NURBS.
Аналог данных параметров при использовании API экспортных функций - NurbsParam.
Примечание:
Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.
Смотрите также: KompasObject


## close - Признак замыкания сплайна

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


## degree - Порядок NURBS (степень полинома + 1), от 3 до 10

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


## GetPKnot - Получить динамический массив узлов сплайна ksDynamicArray типа DOUBLE_ARR

Синтаксис Automation:
```
LPDISPATCH GetPKnot();
Возвращаемое значение:
- указатель на интерфейс динамического массива ksDynamicArray узлов сплайна типа DOUBLE_ARR.
```
Примечания:
Если для описания NURBS выбран вариант ALLPARAM или SHEET_ALLPARAM, то способ заполнения массива точек определяется значением параметра Close:
•Если Close=0 (NURBS замкнут) - параметры с разжатым узловым вектором,
•Если Close=1 (NURBS разомкнут) - параметры с зажатым узловым вектором.
Если для описания NURBS выбран вариант NURBS_CLAMPED_PARAM или NURBS_CLAMPED_SHEETPARAM, то, вне зависимости от значения параметра Close, возвращаются параметры с зажатым узловым вектором.


## GetPPoint - Получить динамический массив точек сплайна типа NURBS_POINT_ARR

Синтаксис Automation:
```
LPDISPATCH GetPPoint();
Возвращаемое значение:
- указатель на интерфейс динамического массива ksDynamicArray точек сплайна типа NURBS_POINT_ARR.
```
Примечания:
Если для описания NURBS выбран вариант ALLPARAM или SHEET_ALLPARAM, то способ заполнения массива точек определяется значением параметра Close:
•Если Close=0 (NURBS замкнут) - параметры с разжатым узловым вектором,
•Если Close=1 (NURBS разомкнут) - параметры с зажатым узловым вектором.
Если для описания NURBS выбран вариант NURBS_CLAMPED_PARAM или NURBS_CLAMPED_SHEETPARAM, то, вне зависимости от значения параметра Close, возвращаются параметры с зажатым узловым вектором.
Смотрите также: ksNurbsPointParam


## Init - Инициализировать параметры

Синтаксис Automation:
```
BOOL Init();
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```
Примечания:
1. Метод обнуляет все параметры NURBS.
2. Динамические массивы не создаются.


## periodic - Признак периодичности сплайна

Тип данных:BOOL.
Значения свойства:
| FALSE | - непериодический сплайн, |
| --- | --- |
| TRUE | - периодический сплайн. |
Синтаксис Automation:
```
periodic = iNurbsParam.periodic    Получить свойство (* )
periodic = iNurbsParam.GetPeriodic()    Получить свойство (**)
```
Примечания:
1. Свойство используется только для функции ksGetObjParam.
2. Свойство используется только для чтения.


## SetPKnot - Установить динамический массив узлов сплайна ksDynamicArray типа DOUBLE_ARR

Синтаксис Automation:
```
BOOL SetPKnot (LPDISPATCH pKnot);
Входной параметр:
pKnot    - указатель на интерфейс динамического массива ksDynamicArray типа DOUBLE_ARR.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```


## SetPPoint - Установить динамический массив точек сплайна ksDynamicArray типа NURBS_POINT_ARR

Синтаксис Automation:
```
BOOL SetPPoint (LPDISPATCH pPoint);
Входной параметр:
pPoint    - указатель на интерфейс динамического массива ksDynamicArray точек сплайна типа NURBS_POINT_ARR.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
Смотрите также: ksNurbsPointParam
```


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

Тип данных:long.
Синтаксис Automation:
```
style = iNurbsParam.style    Получить свойство (* )
iNurbsParam.style = style    Установить свойство (* )
style = iNurbsParam.GetStyle()    Получить свойство (**)
iNurbsParam.SetStyle( style )    Установить свойство (**)
Системные стили линий...
```
