Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/inurbssurface.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK
и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало
docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор
tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается.

- .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным
  (safety-net на случай повторной локальной выгрузки).
- CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 20:00:05 +03:00

226 lines
13 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Интерфейс INurbsSurface"
type: interface
api: [api7]
tags: [interface, api7, inurbssurface]
sources:
- inurbssurface.html
---
*API интерфейсов. Версия 7 > Документ 3D  > Поверхности  > Интерфейс ISurfaceContainer  > ISurfaceContainer - свойства *
## Интерфейс INurbsSurface
Интерфейс Nurbs-поверхности.
Иерархия:
IKompasAPIObject
IModelObject
INurbsSurface
Описание:
Интерфейс позволяет создать NURBS-поверхность по заданной поверхности или по параметрам NURBS-поверхности. Есть возможность ограничить поверхность набором контуров.
Примечание:
Интерфейс можно получить с помощью свойства INurbsSurfaces::NurbsSurface и метода INurbsSurfaces::Add.
## AddBoundary - Добавить границу для NURBS-поверхности
Синтаксис Automation:
```
BOOL AddBoundary( BOOL UV, BOOL Closed, long Degree, VARIANT Points, VARIANT Weights, VARIANT Knots, double TMin, double TMax );
```
Синтаксис COM:
```
HRESULT AddBoundary( BOOL UV, BOOL Closed, long Degree, VARIANT Points, VARIANT Weights, VARIANT Knots, double TMin, double TMax, BOOL * Res );
Выходные параметры:
UV - TRUE параметры кривой заданы в UV координатах поверхности (2D-Nurbs), - FALSE параметры заданы 3D координатами (3D-Nurbs). При создании границы выполняется проецирование 3D кривой на поверхность,
Closed - TRUE замкнутое представление - FALSE - разомкнутое представление,
Degree - порядок NURBS (степень полинома + 1), от 3 до 10,
Points - массив SafeArray точек VT_ARRAY VT_R8,
Weights - веса,
Knots - массив SafeArray узлов точек VT_ARRAY VT_R8,
TMin, TMax - минимальный и максимальный параметры кривой.
Возвращаемое значение:
TRUE - в случае удачи.
```
Примечание:
Позволяет добавить границу для поверхности.
Граница не должна пересекаться с другими границами данной поверхности.
## BoundaryCount - Количество циклов
Тип данных:long
Синтаксис Automation:
```
BoundaryCount = Object.BoundaryCount Получить свойство (* )
BoundaryCount = Object.GetBoundaryCount() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_BoundaryCount Получить свойство
Свойство позволяет устанавливать и получать количество циклов.
```
## ClosedU - Признак замкнутости поверхности по U
Тип данных: BOOL
Синтаксис Automation:
```
ClosedU = Object.ClosedU Получить свойство (* )
Object.ClosedU = ClosedU Установить свойство (* )
ClosedU = Object.GetClosedU() Получить свойство (**)
Object.SetClosedU( ClosedU ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_ClosedU( &ClosedU ) Получить свойство
Object.put_ClosedU( ClosedU ) Установить свойство
```
Примечание:
Свойство позволяет получить признак замкнутости поверхности по U.
Свойство позволяет также преобразовать представление поверхности из замкнутого по U представления в разомкнутое по U и наоборот, из разомкнутого представления в замкнутое. См также INurbsSurface::ClosedV.
## ClosedV - Признак замкнутости поверхности по V
Тип данных: BOOL
Синтаксис Automation:
```
ClosedV = Object.ClosedV Получить свойство (* )
Object.ClosedV = ClosedV Установить свойство (* )
ClosedV = Object.GetClosedV() Получить свойство (**)
Object.SetClosedV( ClosedV ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_ClosedV( &ClosedV ) Получить свойство
Object.put_ClosedV( ClosedV ) Установить свойство
```
Примечание:
Свойство позволяет получить признак замкнутости поверхности по V.
Свойство позволяет также преобразовать представление поверхности из замкнутого по V представления в разомкнутое по V и наоборот, из разомкнутого представления в замкнутое. См. также INurbsSurface::ClosedU.
## DeleteBoundary - Удалить границу
Синтаксис Automation:
```
BOOL DeleteBoundary( long BoundaryIndex )
```
Синтаксис COM:
```
HRESULT DeleteBoundary( long BoundaryIndex, BOOL * Res );
Выходные параметры:
BoundaryIndex - индекс цикла (индекс контура).
Возвращаемое значение:
TRUE - в случае удачи.
```
## GetBoundary - Получить параметры NURBS-представления границы
Синтаксис Automation:
```
BOOL GetBoundary( BOOL UV, BOOL Closed, long BoundaryIndex, long * Degree,
VARIANT * Points, VARIANT * Weights, VARIANT * Knots,
double * TMin, double * TMax );
```
Синтаксис COM:
```
HRESULT GetBoundary( BOOL UV, BOOL Closed, long BoundaryIndex, long * Degree,
VARIANT * Points, VARIANT * Weights, VARIANT * Knots,
double * TMin, double * TMax, BOOL * Res );
Входные параметры:
UV - TRUE параметры кривой заданы в UV координатах поверхности (2D-Nurbs), - FALSE параметры заданы 3D координатами (3D-Nurbs). При создании границы выполняется проецирование 3D кривой на поверхность.
Closed - TRUE замкнутое представление, - FALSE - разомкнутое представление,
BoundaryIndex - индекс цикла (индекс контура).
Выходные параметры:
Degree - порядок NURBS (степень полинома + 1), от 3 до 10,
Points - массив SafeArray точек VT_ARRAY VT_R8,
Weights - веса,
Knots - массив SafeArray узлов точек VT_ARRAY VT_R8,
TMin, TMax - минимальный и максимальный параметры кривой.
Возвращаемое значение:
TRUE - в случае удачи.
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
```
## GetNurbsParams - Получить параметры NURBS-поверхности
Синтаксис Automation:
```
BOOL GetNurbsParams( BOOL ClosedV, BOOL ClosedU,
long * DegreeV, long * DegreeU, long * NPV, long * NPU,
VARIANT * Points, VARIANT * Weights, VARIANT * KnotsV, VARIANT * KnotsU );
```
Синтаксис COM:
```
HRESULT GetNurbsParams( BOOL ClosedV, BOOL ClosedU,
long * DegreeV, long * DegreeU, long * NPV, long * NPU,
VARIANT * Points, VARIANT * Weights, VARIANT * KnotsV, VARIANT * KnotsU, BOOL * Res );
Входные параметры:
ClosedV - TRUE - получение параметров для замкнутого по V представления, - FALSE - получение параметров для разомкнутого по V представления,
ClosedU - TRUE - получение параметров для замкнутого по U представления, - FALSE - получение параметров для разомкнутого по U представления.
Выходные параметры:
DegreeV - порядок NURBS по V (степень полинома + 1), от 3 до 10,
DegreeU - порядок NURBS по U (степень полинома + 1), от 3 до 10,
NPV - количество точек по V,
NPU - количество точек по U,
Points - массив SafeArray точек VT_ARRAY VT_R8,
Weights - веса,
KnotsV - массив SafeArray узлов точек по V VT_ARRAY VT_R8,
KnotsU - массив SafeArray узлов точек по U VT_ARRAY VT_R8.
Возвращаемое значение:
TRUE - в случае удачи.
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
```
## InitParamByFace - Создать по объекту
Синтаксис Automation:
```
BOOL InitParamByFace( LPDISPATCH Face );
```
Синтаксис COM:
```
HRESULT InitParamByFace( IModelObject * Face, BOOL * Res );
Выходные параметры:
Face - указатель на грань IModelObject.
Возвращаемое значение:
TRUE - в случае удачи.
```
## SetNurbsParams - Установить параметры NURBS-поверхности
Синтаксис Automation:
```
BOOL SetNurbsParams( BOOL ClosedV, BOOL ClosedU,
long DegreeV, long DegreeU, long NPV, long NPU,
VARIANT Points, VARIANT Weights, VARIANT KnotsV, VARIANT KnotsU );
```
Синтаксис COM:
```
HRESULT SetNurbsParams( BOOL ClosedV, BOOL ClosedU,
long DegreeV, long DegreeU, long NPV, long NPU,
VARIANT Points, VARIANT Weights, VARIANT KnotsV, VARIANT KnotsU, BOOL * Res );
Входные параметры:
ClosedV - признак замкнутости поверхности по V
ClosedU - признак замкнутости поверхности по U
DegreeV - порядок NURBS по V (степень полинома + 1), от 3 до 10,
DegreeU - порядок NURBS по U (степень полинома + 1), от 3 до 10,
NPV - количество точек по V,
NPU - количество точек по U,
Points - массив SafeArray точек VT_ARRAY VT_R8,
Weights - веса,
KnotsV - массив SafeArray узлов точек по V VT_ARRAY VT_R8,
KnotsU - массив SafeArray узлов точек по U VT_ARRAY VT_R8.
Возвращаемое значение:
TRUE - в случае удачи.
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
```