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>
536 lines
21 KiB
Markdown
536 lines
21 KiB
Markdown
---
|
||
title: "Интерфейс IMeshPointsSurface"
|
||
type: interface
|
||
api: [api7]
|
||
tags: [interface, api7, imeshpointssurface]
|
||
sources:
|
||
- imeshpointssurface.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 7 > Документ 3D > Поверхности > Интерфейс ISurfaceContainer > ISurfaceContainer - свойства *
|
||
|
||
|
||
## Интерфейс IMeshPointsSurface
|
||
|
||
Интерфейс параметров поверхности по сети точек.
|
||
Иерархия:
|
||
IDispatch
|
||
IKompasAPIObject
|
||
IModelObject
|
||
IMeshPointsSurface
|
||
ILocalCSObject
|
||
Интерфейс можно получить у интерфейса коллекции поверхностей по сети точек с помощью свойства IMeshPointsSurfaces::MeshPointsSurface или метода IMeshPointsSurfaces::Add.
|
||
С помощью метода IUnknown::QueryInterface у интерфейса можно получить интерфейс подчиненного объекта ЛСК ILocalCSObject.
|
||
|
||
|
||
## AddPoint - Добавить точку в создаваемый ряд точек
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH AddPoint( double X,
|
||
double Y,
|
||
double Z,
|
||
double Weight,
|
||
ksPoint3DTypeEnum PointType,
|
||
IModelObject * AssociationObject );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT AddPoint( double X,
|
||
double Y,
|
||
double Z,
|
||
double Weight,
|
||
ksPoint3DTypeEnum PointType,
|
||
IModelObject * AssociationObject,
|
||
IKompasAPIObject ** Result );
|
||
Возвращаемое значение:
|
||
Указатель на интерфейс параметров точки
|
||
Входные параметры:
|
||
X, Y, Z - координаты точки,
|
||
Weight - вес точки,
|
||
PointType - тип параметров точки,
|
||
AssociationObject - опорный объект.
|
||
```
|
||
Примечание:
|
||
Метод должен вызываться между вызовами методов IMeshPointsSurface::BeginPointsSeries и IMeshPointsSurface::EndPointsSeries.
|
||
|
||
|
||
## AddPointsSeries - Добавить ряд точек
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL AddPointsSeries( BOOL AddNewRow,
|
||
long IndexAt,
|
||
VARIANT Points,
|
||
VARIANT Weights );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT AddPointsSeries( BOOL AddNewRow,
|
||
long IndexAt,
|
||
VARIANT Points,
|
||
VARIANT Weights,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры:
|
||
AddNewRow - TRUE - добавить ряд, - FALSE - добавить колонку,
|
||
IndexAt - индекс, перед которым нужно добавить ряд,
|
||
Points - массив VT_ARRAY VT_R8 координат точек,
|
||
Weights - массив VT_ARRAY VT_R8 весов точек.
|
||
```
|
||
|
||
|
||
## AssociationObject - Установить опорный объект для вершины
|
||
|
||
Тип данных: Указатель на интерфейс IModelObject
|
||
Синтаксис Automation:
|
||
```
|
||
AssociationObject = Object.AssociationObject( UIndex, VIndex ) Получить свойство (* )
|
||
Object.AssociationObject( UIndex, VIndex ) = AssociationObject Установить свойство (* )
|
||
AssociationObject = Object.GetAssociationObject( UIndex, VIndex ) Получить свойство (**)
|
||
Object.SetAssociationObject( UIndex, VIndex, AssociationObject ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_AssociationObject( UIndex, VIndex, &AssociationObject ) Получить свойство
|
||
Object.put_AssociationObject( UIndex, VIndex, AssociationObject ) Установить свойство
|
||
Входные параметры:
|
||
long UIndex - индекс точки по U,
|
||
long VIndex - индекс точки по V.
|
||
```
|
||
|
||
|
||
## BeginPointsSeries - Начать добавление нового ряда точек
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL BeginPointsSeries( BOOL AddNewRow,
|
||
long IndexAt );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT BeginPointsSeries( BOOLAddNewRow,
|
||
long IndexAt,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры:
|
||
AddNewRow TRUE - добавлять ряд, FALSE - добавлять колонку,
|
||
IndexAt - индекс ряда, перед которым нужно добавить новый ряд.
|
||
```
|
||
|
||
|
||
## BuildingType - Тип поверхности по сети точек
|
||
|
||
Тип данных: из перечисления ksMeshPointsSurfaceBuildingTypeEnum
|
||
Синтаксис Automation:
|
||
```
|
||
BuildingType = Object.BuildingType Получить свойство (* )
|
||
Object.BuildingType = BuildingType Установить свойство (* )
|
||
BuildingType = Object.GetBuildingType() Получить свойство (**)
|
||
Object.SetBuildingType( BuildingType ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_BuildingType( &BuildingType ) Получить свойство
|
||
Object.put_BuildingType( BuildingType ) Установить свойство
|
||
Свойство позволяет устанавливать и получать способ построения поверхности по сети точек.
|
||
```
|
||
|
||
|
||
## CheckSelfIntersection - Проверка самопересечений
|
||
|
||
Тип данных: BOOL
|
||
Синтаксис Automation:
|
||
```
|
||
CheckSelfIntersection = Object.CheckSelfIntersection Получить свойство (* )
|
||
Object.CheckSelfIntersection = CheckSelfIntersection Установить свойство (* )
|
||
CheckSelfIntersection = Object.GetCheckSelfIntersection() Получить свойство (**)
|
||
Object.SetCheckSelfIntersection( CheckSelfIntersection ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_CheckSelfIntersection( &CheckSelfIntersection ) Получить свойство
|
||
Object.put_CheckSelfIntersection( CheckSelfIntersection ) Установить свойство
|
||
Свойство позволяет включать и выключать проверку самопересечений.
|
||
```
|
||
|
||
|
||
## ClearPointsSeries - Очистить список рядов точек
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ClearPointsSeries();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT ClearPointsSeries( BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Метод позволяет удалить все точки поверхности.
|
||
```
|
||
|
||
|
||
## 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.
|
||
```
|
||
Примечание:
|
||
Замыкание по тому или иному направлению возможно, если количество точек в этом направлении - три или больше.
|
||
|
||
|
||
## 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.
|
||
```
|
||
Примечание:
|
||
Замыкание по тому или иному направлению возможно, если количество точек в этом направлении - три или больше.
|
||
|
||
|
||
## ColumnsCount - Количество точек в одном ряду по направлению U
|
||
|
||
Тип данных: long
|
||
Синтаксис Automation:
|
||
```
|
||
ColumnsCount = Object.ColumnsCount Получить свойство (* )
|
||
ColumnsCount = Object.GetColumnsCount() Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_ColumnsCount( &ColumnsCount ) Получить свойство
|
||
```
|
||
Примечание:
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## DegreeU - Порядок сплайна по направлению U
|
||
|
||
Тип данных: long
|
||
Синтаксис Automation:
|
||
```
|
||
DegreeU = Object.DegreeU Получить свойство (* )
|
||
Object.DegreeU = DegreeU Установить свойство (* )
|
||
DegreeU = Object.GetDegreeU() Получить свойство (**)
|
||
Object.SetDegreeU( DegreeU ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_DegreeU( &DegreeU ) Получить свойство
|
||
Object.put_DegreeU( DegreeU ) Установить свойство
|
||
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
|
||
```
|
||
Примечание:
|
||
Свойство позволяет устанавливать и получать порядок поверхности в направлении U.
|
||
|
||
|
||
## DegreeV - Порядок сплайна по направлению V
|
||
|
||
Тип данных: long
|
||
Синтаксис Automation:
|
||
```
|
||
DegreeV = Object.DegreeV Получить свойство (* )
|
||
Object.DegreeV = DegreeV Установить свойство (* )
|
||
DegreeV = Object.GetDegreeV() Получить свойство (**)
|
||
Object.SetDegreeV( DegreeV ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_DegreeV( &DegreeV ) Получить свойство
|
||
Object.put_DegreeV( DegreeV ) Установить свойство
|
||
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
|
||
```
|
||
Примечание:
|
||
Свойство позволяет устанавливать и получать порядок поверхности в направлении V.
|
||
|
||
|
||
## DeletePointsSeries - Удалить ряд точек
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL DeletePointsSeries( BOOL DeleteRow,
|
||
long Index );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT DeletePointsSeries(BOOL DeleteRow,
|
||
long Index,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры:
|
||
DeleteRow - TRUE - удаляется ряд, - FALSE - удаляется колонка,
|
||
Index - индекс удаляемого ряда.
|
||
```
|
||
|
||
|
||
## EndPointsSeries - Завершить создание ряда точек
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL EndPointsSeries();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT EndPointsSeries( BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
|
||
|
||
## GetParams - Получить параметры поверхности
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetParams( BOOL * ClosedV,
|
||
BOOL * ClosedU,
|
||
long * DegreeV,
|
||
long * DegreeU,
|
||
long * PointsVCount,
|
||
long * PointsUCount,
|
||
VARIANT * Points,
|
||
VARIANT * Weights );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT GetParams( BOOL * ClosedV,
|
||
BOOL * ClosedU,
|
||
long * DegreeV,
|
||
long * DegreeU,
|
||
long * PointsVCount,
|
||
long * PointsUCount,
|
||
VARIANT * Points,
|
||
VARIANT * Weights,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Выходные параметры:
|
||
ClosedV признак замкнутости поверхности по V,
|
||
ClosedU признак замкнутости поверхности по U,
|
||
DegreeV порядок сплайна по V,
|
||
DegreeU порядок сплайна по U,
|
||
PointsVCount количество точек по V,
|
||
PointsUCount количество точек по U,
|
||
Points массив VT_ARRAY VT_R8 координат точек,
|
||
Weights массив VT_ARRAY VT_R8 весов точек.
|
||
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
|
||
```
|
||
|
||
|
||
## GetPoint - Параметры точки
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetPoint( long UIndex,
|
||
long VIndex,
|
||
double * X,
|
||
double * Y,
|
||
double * Z,
|
||
double * Weight );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT GetPoint( long UIndex,
|
||
long VIndex,
|
||
double * X,
|
||
double * Y,
|
||
double * Z,
|
||
double * Weight,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры:
|
||
UIndex - индекс точки по U,
|
||
VIndex - индекс точки по V.
|
||
Выходные параметры:
|
||
X, Y, Z - координаты точки,
|
||
Weight - вес точки.
|
||
Метод позволяет получить параметры точки.
|
||
```
|
||
|
||
|
||
## InitParamByFace - Создать по объекту
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL InitParamByFace( IModelObject * Face );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT InitParamByFace( IModelObject * Face, BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры:
|
||
Face - исходная поверхность.
|
||
Метод позволяет создать поверхность по сети точек с помощью сплайновой аппроксимации поверхности.
|
||
```
|
||
|
||
|
||
## PointParameters - Интерфейс параметров точки поверхности
|
||
|
||
Тип данных: указатель на интерфейс IKompasAPIObject
|
||
Синтаксис Automation:
|
||
```
|
||
PointParameters = Object.PointParameters( UIndex, VIndex ) Получить свойство (* )
|
||
PointParameters = Object.GetPointParameters( UIndex, VIndex ) Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_PointParameters( UIndex, VIndex, &PointParameters ) Получить свойство
|
||
Входные параметры:
|
||
long UIndex - индекс точки по U,
|
||
long VIndex - индекс точки по V.
|
||
```
|
||
Примечание:
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## PointType - Тип параметров построения точки поверхности
|
||
|
||
Тип данных: из перечисления ksPoint3DTypeEnum
|
||
Синтаксис Automation:
|
||
```
|
||
PointType = Object.PointType( UIndex, VIndex ) Получить свойство (* )
|
||
Object.PointType( UIndex, VIndex ) = PointType Установить свойство (* )
|
||
PointType = Object.GetPointType( UIndex, VIndex ) Получить свойство (**)
|
||
Object.SetPointType( UIndex, VIndex, PointType ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_PointType( UIndex, VIndex, &PointType ) Получить свойство
|
||
Object.put_PointType( UIndex, VIndex, PointType ) Установить свойство
|
||
Входные параметры:
|
||
long UIndex - индекс точки по U,
|
||
long VIndex - индекс точки по V.
|
||
```
|
||
|
||
|
||
## RowsCount - Количество рядов по направлению V
|
||
|
||
Тип данных: long
|
||
Синтаксис Automation:
|
||
```
|
||
RowsCount = Object.RowsCount Получить свойство (* )
|
||
RowsCount = Object.GetRowsCount() Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_RowsCount( &RowsVCount ) Получить свойство
|
||
```
|
||
Примечание:
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## SetParams - Установить параметры поверхности
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetParams( BOOL ClosedV,
|
||
BOOL ClosedU,
|
||
long DegreeV,
|
||
long DegreeU,
|
||
long PointsVCount,
|
||
long PointsUCount,
|
||
VARIANT Points,
|
||
VARIANT Weights );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT SetParams( BOOL ClosedV,
|
||
BOOL ClosedU,
|
||
long DegreeV,
|
||
long DegreeU,
|
||
long PointsVCount,
|
||
long PointsUCount,
|
||
VARIANT Points,
|
||
VARIANT Weights,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры:
|
||
ClosedV - признак замкнутости поверхности по V,
|
||
ClosedU - признак замкнутости поверхности по U,
|
||
DegreeV - порядок сплайна по V,
|
||
DegreeU - порядок сплайна по U,
|
||
PointsVCount - количество точек по V,
|
||
PointsUCount - количество точек по U,
|
||
Points - массив VT_ARRAY VT_R8 координат точек,
|
||
Weights - массив VT_ARRAY VT_R8 весов точек.
|
||
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
|
||
```
|
||
|
||
|
||
## SetPoint - Параметры точки
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetPoint( long UIndex,
|
||
long VIndex,
|
||
double X,
|
||
double Y,
|
||
double Z,
|
||
double Weight );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT SetPoint( long UIndex,
|
||
long VIndex,
|
||
double X,
|
||
double Y,
|
||
double Z,
|
||
double Weight,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры:
|
||
UIndex - индекс точки по U,
|
||
VIndex - индекс точки по V,
|
||
X, Y, Z - координаты точки,
|
||
Weight - вес точки.
|
||
Метод позволяет установить параметры точки.
|
||
```
|