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