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>
13 KiB
title, type, api, tags, sources
| title | type | api | tags | sources | |||||
|---|---|---|---|---|---|---|---|---|---|
| Интерфейс INurbsSurface | interface |
|
|
|
*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).