---
title: "Параметры NURBS-поверхности (Интерфейсы ksNurbsSurfaceParam, INurbsSurfaceParam)"
type: interface
api: [api7]
tags: [interface, api7, ksnurbssurfaceparam]
sources:
  - ksnurbssurfaceparam.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Математическая поверхность в трехмерном пространстве  > Интерфейсы ksSurface, ISurface *


## Параметры NURBS-поверхности (Интерфейсы ksNurbsSurfaceParam, INurbsSurfaceParam)

Интерфейс параметров NURBS-поверхности.
| ksNurbsSurfaceParam | - интерфейс Automation |
| --- | --- |
| INurbsSurfaceParam | - интерфейс COM |
Примечание:
Данный интерфейс может быть получен с использованием метода интерфейса ksSurface::GetSurfaceParam.


## BoundaryCount - Количество контуров, образующих границу поверхности

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


## GetBoundaryUVNurbs - Получить параметры NURBS-представления границы поверхности

Синтаксис Automation:
```
BOOL GetBoundaryUVNurbs (BOOL uv,
BOOL closed,
long loopIndex,
long * degree,
long edgeIndex,
VARIANT * points,
VARIANT * weights,
VARIANT * knots,
double * tMin,
double * tMax)
```
Синтаксис COM:
```
BOOL GetBoundaryUVNurbs (BOOL uv,
BOOL closed,
long loopIndex,
long edgeIndex,
long * degree,
VARIANT * points,
VARIANT * weights,
VARIANT * knots,
double * tMin,
double * tMax)
Входные параметры:
Uv    - TRUE - получить параметры границы поверхности в UV- параметрическом представлении исходной поверхности, - FALSE - получить параметры границы поверхности в 3D координатах,
Closed    - TRUE - сомкнуть, если граница разомкнутая, - FALSE - разомкнуть, если граница замкнутая,
loopIndex    - индекс цикла,
edgeIndex    - индекс ребра в цикле (совпадает с индексом ребра в коллекции ориентированных ребер).
Выходные параметры:
degree    - порядок NURBS (степень полинома + 1), от 3 до 10,
points    - массив параметров UV или координат вершин - массив SafeArray вещественных чисел VT_ARRAY    VT_R8,
weights    - веса точек - массив SafeArray вещественных чисел VT_ARRAY    VT_R8,
knots    - узлы точек - массив SafeArray вещественных чисел VT_ARRAY    VT_R8,
tMin, tMax    - минимальный и максимальный параметры.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
•Если признак UV равен TRUE, то в массиве points возвращаются параметры UV для Nurbs-представления границы. Параметры в массиве лежат в следующей последовательности:
u0, v0, u1, v1, ... ui, vi.
•Если признак UV равен FALSE, то в массиве points возвращаются координаты вершин Nurbs-представления границы. Координаты точек в полученном массиве лежат в следующей последовательности:
x0, y0, z0, x1, y1, z1, ...xi, yi, zi.
•Если индекс ребра равен -1, формируется Nurbs-представление контура границы.
•Если индекс >= 0, то формируется Nurbs-представление ребра, входящего в цикл; параметр unclamped при этом игнорируется.


## GetClose - Получить тип замыкания сплайна

Синтаксис Automation:
```
BOOL GetClose (BOOL paramU);
```
Синтаксис COM:
```
BOOL GetClose (BOOL paramU);
Входные параметры:
paramU    TRUE    - для параметра U,
paramU    FALSE    - для параметра V.
Возвращаемое значение:
TRUE    - сплайн замкнутый,
FALSE    - сплайн разомкнутый.
```
Примечание:
Значение paramU позволяет выбрать параметр представления поверхности U или V, для которого выполняется метод.


## GetDegree - Получить степень сплайна

Синтаксис Automation:
```
short GetDegree (BOOL paramU);
```
Синтаксис COM:
```
short GetDegree (BOOL paramU);
Входные параметры:
paramU    TRUE    - для параметра U,
paramU    FALSE    - для параметра V.
Возвращаемое значение:
- порядок NURBS (степень полинома + 1), от 3 до 10.
```
Примечание:
Значение paramU позволяет выбрать параметр представления поверхности U или V, для которого выполняется метод.


## GetEdgesCount - Количество ребер в цикле

Синтаксис Automation:
```
long GetEdgesCount (long loopIndex)
```
Синтаксис COM:
```
long GetEdgesCount (long loopIndex)
Входные параметры:
loopIndex    - номер цикла.
Возвращаемое значение:
- количество ребер в цикле.
```
Примечание:
Свойство доступно только для чтения.


## GetMinMaxParameters - Получить параметры поверхности

Синтаксис Automation:
```
BOOL GetMinMaxParameters (BOOL closedV, BOOL closedU, double * uMin, double * uMax, double * vMin, double * vMax)
```
Синтаксис COM:
```
BOOL GetMinMaxParameters (BOOL closedV, BOOL closedU, double * uMin, double * uMax, double * vMin, double * vMax)
Входные параметры:
closedV    - TRUE - получение параметров для замкнутого по V представления, - FALSE - получение параметров для разомкнутого по V представления,
closedU    - TRUE - получение параметров для замкнутого по U представления, - FALSE - получение параметров для разомкнутого по V представления.
Выходные параметры:
uMin    - значение минимального параметра по U,
uMax    - значение максимального параметра по U,
vMin    - значение минимального параметра по V,
vMax    - значение максимального параметра по V.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## GetNurbsParams - Получить параметры NURBS-поверхности

Синтаксис Automation:
```
BOOL GetNurbsParams( BOOL unClampedV,
BOOL unClampedU,
long * degreeV,
long * degreeU,
long * nPV, long * nPU,
VARIANT * points,
VARIANT * weights,
VARIANT * knotsV,
VARIANT * knotsU );
```
Синтаксис COM:
```
BOOL GetNurbsParams( BOOL unClampedV,
BOOL unClampedU,
long * degreeV,
long * degreeU
long * nPV,
long * nPU,
VARIANT * points,
VARIANT * weights,
VARIANT * knotsV,
VARIANT * knotsU );
Входные параметры:
unClampedV    - TRUE - вернуть параметры для замкнутого по V представления, - FALSE - вернуть параметры для разомкнутого по V представления,
unClampedU    - TRUE вернуть параметры для замкнутого по U представления, - FALSE вернуть параметры для разомкнутого по U представления.
Выходные параметры:
degreeV, degreeU    - порядок NURBS (степень полинома + 1) по V и U, от 3 до 10,
nPV, nPU    - количество точек по V и U,
points    - массив координат вершин - массив SafeArray вещественных чисел VT_ARRAY    VT_R8,
weights    - веса в вершинах - массив SafeArray вещественных чисел VT_ARRAY    VT_R8,
knotsV, knotsU    - узлы точек - массив SafeArray вещественных чисел VT_ARRAY    VT_R8.
```


## GetPeriodic - Получить периодичность сплайна

Синтаксис Automation:
```
BOOL GetPeriodic (BOOL paramU);
```
Синтаксис COM:
```
BOOL GetPeriodic (BOOL paramU);
Входные параметры:
paramU    TRUE    - для параметра U,
paramU    FALSE    - для параметра V.
Возвращаемое значение:
TRUE    - сплайн периодический,
FALSE    - сплайн непериодический.
```
Примечание:
Значение paramU позволяет выбрать параметр представления поверхности U или V, для которого выполняется метод.


## NurbsKnotCollection - Получить указатель на интерфейс массива узлов для NURBS-поверхности

Синтаксис Automation:
```
LPDISPATCH GetKnotCollection (BOOL paramU);
```
Синтаксис COM:
```
LPNURBSKNOTCOLLECTION GetKnotCollection (BOOL paramU);
Входные параметры:
paramU    TRUE    - для параметра U,
paramU    FALSE    - для параметра V.
Возвращаемое значение:
- указатель на интерфейс ksNurbsKnotCollection или INurbsKnotCollection.
```
Примечание:
Значение paramU позволяет выбрать параметр представления поверхности U или V, для которого выполняется метод.


## NurbsPoint3DCollCollection - Получить указатель на интерфейс массива массивов точек для NURBS-поверхности

Синтаксис Automation:
```
LPDISPATCH GetPointCollection();
```
Синтаксис COM:
```
LPNURBSPOINT3DCOLLCOLLECTION GetPointCollection();
Возвращаемое значение:
- указатель на интерфейс ksNurbsPoint3DCollCollection или INurbsPoint3DCollCollection.
```
