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