---
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    - вес точки.
Метод позволяет установить параметры точки.
```
