e1337e4016
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>
226 lines
13 KiB
Markdown
226 lines
13 KiB
Markdown
---
|
||
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).
|
||
```
|