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

357 lines
18 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.
---
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 - в случае неудачи.
```