Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/imeshpointssurface.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

536 lines
21 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.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 - вес точки.
Метод позволяет установить параметры точки.
```