---
title: "Триангуляция (аппроксимирующая поверхность грани), Интерфейсы ksTessellation, ITessellation"
type: interface
api: [api7]
tags: [interface, api7, kstessellation]
sources:
  - kstessellation.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Математическая поверхность в трехмерном пространстве  > Интерфейсы ksSurface, ISurface *


## Триангуляция (аппроксимирующая поверхность грани), Интерфейсы ksTessellation, ITessellation

Интерфейс триангуляции (аппроксимирующей поверхности грани).
| ksTessellation | - интерфейс Automation |
| --- | --- |
| ITessellation | - интерфейс COM |
Описание:
Существуют два вида триангуляции:
•обычная, которая рассчитывается для отображения;
•для производства прочностных расчетов.
По умолчанию выдается обычная триангуляция - рассчитанная аппроксимирующая поверхность для отображения. Если необходима триангуляция для расчетов, то следует указать ограничение размера ребра триангуляционной пластины.
1. Триангуляционная сетка может быть построена с учетом нескольких параметров:
•Установить ограничение размера ребра для триангуляциооной пластины ksTessellation::SetFacetSize.
•Установить ограничение прогиба поверхности триангуляциооной пластины ksTessellation::SetFacetSag.
•Установить ограничение углового отклонения поверхности ksTessellation::SetFacetAngle.
Если ни один из параметров не задан (равны 0), возвращаются параметры рассчитанной в модели сетки.
2. В Компас при расчете триангуляции ограничение размера ребра рассчитывается в зависимости от габаритов модели.
Получить значение рассчитанной величины ограничения размера ребра можно с помощью функции IPart7::GetMaxSag.
Для расчетов рекомендуемое значение шага ребра составляет до 2% от максимального значения габарита. Для визуализации должно быть задано расстояние от аппроксимирующей хорды до кривой. Это значение должно составлять 0,04% от максимального габарита детали.
Примечание:
Данный интерфейс можно получить от следующих интерфейсов:
•Интерфейс свойств грани ksFaceDefinition или ksFaceDefinition.
•Интерфейс математической поверхности в трехмерном пространстве ksSurface или ISurface.
Триангуляционная пластина (Интерфейсы ksFacet, IFacet)


## GetFacet - Получить интерфейс триангуляционной пластины

Синтаксис Automation:
```
LPDISPATCH GetFacet();
```
Синтаксис COM:
```
LPFACET GetFacet();
Возвращаемое значение:
- указатель на интерфейс ksFacet или IFacet.
```


## GetFacetAngle - Получить ограничение углового отклонения поверхности

Синтаксис Automation:
```
double GetFacetAngle();
```
Синтаксис COM:
```
double GetFacetAngle();
```


## GetFacetData - Получить данные триангуляционной пластины по индексу в массиве триангуляционных пластин

Синтаксис Automation:
```
BOOL GetFacetData (long index, LPDISPATCH facet);
```
Синтаксис COM:
```
BOOL GetFacetData (int index, LPFACET facet);
Входные параметры:
index    - индекс триангуляционной пластины в массиве,
facet    - указатель на интерфейс ksFacet или IFacet.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
Указатель на интерфейс триангуляционной пластины не должен быть равен 0.


## GetFacetNormals - Получить параметры нормалей вершин триангуляционной сетки

Синтаксис Automation:
```
BOOL GetFacetNormals (VARIANT * normals);
```
Синтаксис COM:
```
BOOL GetFacetNormals (VARIANT * normals);
Выходные параметры:
normals    - массив SafeArray вещественных чисел - нормалей вершин триангуляционной сетки.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
1. В массиве нормалей вершин триангуляционной сетки координаты нормалей лежат в последовательности x, y, z нормаль для первой точки, x, y, z нормаль второй точки и т.д.
2. Функция используется совместно с GetFacetPoints.


## GetFacetParams - Получить параметрические координаты вершин триангуляционных сетки

Синтаксис Automation:
```
BOOL GetFacetParams( VARIANT * params );
```
Синтаксис COM:
```
BOOL GetFacetParams( VARIANT * params );
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
Выходной параметр:
params    - SafeArray - массив вещественных чисел - параметрических координат вершин триангуляционных сетки. Для формирование параметрических координат триангуляционной сетки требуется установить признак ksTessellation::SetNeedParams.
```
Примечание:
В массиве параметрические координаты вершин лежат в последовательности:
u, v для первой точки, u, v второй точки и т.д.


## GetFacetPoints - Получить параметры вершин триангуляционной сетки

Синтаксис Automation:
```
BOOL GetFacetPoints (VARIANT * points, VARIANT * indexes);
```
Синтаксис COM:
```
BOOL GetFacetPoints (VARIANT * points, VARIANT * indexes);
Выходные параметры:
points    - массив SafeArray вещественных чисел - координат вершин триангуляционной сетки,
indexes    - массив SafeArray целых чисел - индексов вершин триангуляционной сетки.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
1. В массиве индексов вершин триангуляционной сетки хранятся индексы точек из массива координат точек points. Для получения параметров вершины триангуляционной сетки нужно получить индекс точки из массива indexes.
2. Координаты точек в массиве points лежат в последовательности x, y, z первой точки, x, y, z второй точки и т.д.


## GetFacetSag - Получить ограничение прогиба поверхности триангуляционной пластины

Синтаксис Automation:
```
double GetFacetSag();
```
Синтаксис COM:
```
double GetFacetSag();
```


## GetFacetsCount - Получить количество триангуляционных пластин

Синтаксис Automation:
```
long GetFacetsCount();
```
Синтаксис COM:
```
long GetFacetsCount();
Возвращаемое значение:
Количество триангуляционных пластин    - в случае успеха,
-1    - в случае неудачи.
```


## GetFacetSize - Получить ограничение размера ребра для триангуляционной пластины

Синтаксис Automation:
```
double GetFacetSize();
```
Синтаксис COM:
```
double GetFacetSize();
Возвращаемое значение:
- ограничение размера ребра для триангуляционной пластины.
```


## GetNeedParams - Получить признак необходимости заполнения параметров вершин

Синтаксис Automation:
```
BOOL GetNeedParams();
```
Синтаксис COM:
```
BOOL GetNeedParams();
```


## GetNormal - Получить координаты нормали триангуляционной сетки

Синтаксис Automation:
```
BOOL GetNormal (long index, double * x, double * y, double * z);
```
Синтаксис COM:
```
BOOL GetNormal (int index, float * x, float * y, float * z);
Входные параметры:
index    - индекс вершины в пластине.
Выходные параметры:
x, y, z    - координаты нормали.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```


## GetPoint - Получить координаты вершины триангуляционной сетки

Синтаксис Automation:
```
BOOL GetPoint (long index, double * x, double * y, double * z);
```
Синтаксис COM:
```
BOOL GetPoint (int index, float * x, float * y, float * z);
Входные параметры:
index    - индекс вершины в массиве вершин.
Выходные параметры:
x, y, z    - координаты вершины.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```


## GetPointsCount - Получить указатель на интерфейс последнего объекта в массиве

Синтаксис Automation:
```
long GetPointsCount();
```
Синтаксис COM:
```
long GetPointsCount();
Возвращаемое значение:
Количество вершин триангуляционной сетки    - в случае успеха,
-1    - в случае неудачи.
```


## Refresh - Обновить триангуляцию если изменилась геометрия

Синтаксис Automation:
```
BOOL Refresh();
```
Синтаксис COM:
```
BOOL Refresh();
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```


## SetFacetAngle - Задать ограничение углового отклонения триангуляционной пластины

Синтаксис Automation:
```
BOOL SetFacetAngle( double angle );
```
Синтаксис COM:
```
BOOL SetFacetAngle( double angle );
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
Выходной параметр:
angle    - величина углового отклонения.
```
Примечание:
1. Триангуляционная сетка может быть построена с учетом нескольких параметров:
•Установить ограничение размера ребра для триангуляциооной пластины ksTessellation::SetFacetSize.
•Установить ограничение прогиба поверхности триангуляциооной пластины ksTessellation::SetFacetSag.
•Установить ограничение углового отклонения поверхности ksTessellation::SetFacetAngle.
Если ни один из параметров не задан (равны 0), возвращаются параметры рассчитанной в модели сетки.
2. В Компас при расчете триангуляции ограничение размера ребра рассчитывается в зависимости от габаритов модели.
Получить значение рассчитанной величины ограничения размера ребра можно с помощью метода IPart7::GetMaxSag.


## SetFacetSag - Задать ограничение прогиба поверхности триангуляционной пластины ( Если 0, обычная триангуляция)

Синтаксис Automation:
```
BOOL SetFacetSag( double sag );
```
Синтаксис COM:
```
BOOL SetFacetSag( double sag );
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
Выходной параметр:
sag    - величина максимально допустимого прогиба на расстоянии шага.
```
Примечание:
1. Триангуляционная сетка может быть построена с учетом нескольких параметров:
•Установить ограничение размера ребра для триангуляционной пластины ksTessellation::SetFacetSize.
•Установить ограничение прогиба поверхности триангуляционной пластины ksTessellation::SetFacetSag.
•Установить ограничение углового отклонения поверхности ksTessellation::SetFacetAngle.
Если ни один из параметров не задан (равны 0), возвращаются параметры рассчитанной в модели сетки.
2. В Компас при расчете триангуляции ограничение размера ребра рассчитывается в зависимости от габаритов модели.
Получить значение рассчитанной величины ограничения размера ребра можно с помощью метода IPart7::GetMaxSag.


## SetFacetSize - Изменить ограничение размера ребра для триангуляционной пластины

Синтаксис Automation:
```
BOOL SetFacetSize (double sag);
```
Синтаксис COM:
```
BOOL SetFacetSize (double sag);
Входные параметры:
sag    0    - обычная триангуляция (для отображения),
sag    >0    - триангуляция для прочностных расчетов.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
1. Триангуляционная сетка может быть построена с учетом нескольких параметров:
•Установить ограничение размера ребра для триангуляционной пластины ksTessellation::SetFacetSize.
•Установить ограничение прогиба поверхности триангуляционной пластины ksTessellation::SetFacetSag.
•Установить ограничение углового отклонения поверхности ksTessellation::SetFacetAngle.
Если ни один из параметров не задан (равны 0), возвращаются параметры рассчитанной в модели сетки.
2. В Компас при расчете триангуляции ограничение размера ребра рассчитывается в зависимости от габаритов модели.
Получить значение рассчитанной величины ограничения размера ребра можно с помощью метода IPart7::GetMaxSag.
3. Рекомендуемое значение шага ребра для расчетов - до 2% от максимального значения габарита.


## SetNeedParams - Задать необходимость заполнения параметров вершин

Синтаксис Automation:
```
BOOL SetNeedParams( BOOL need );
```
Синтаксис COM:
```
BOOL SetNeedParams( BOOL need );
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
