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>
756 lines
36 KiB
Markdown
756 lines
36 KiB
Markdown
---
|
||
title: "Интерфейсы ksSurface, ISurface"
|
||
type: interface
|
||
api: [api7]
|
||
domain: [assembly]
|
||
tags: [interface, api7, assembly, kssurface]
|
||
sources:
|
||
- kssurface.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D ) > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart > Математическая поверхность в трехмерном пространстве *
|
||
|
||
|
||
## Интерфейсы ksSurface, ISurface
|
||
|
||
Интерфейс математической поверхности в трехмерном пространстве.
|
||
| ksSurface | - интерфейс Automation |
|
||
| --- | --- |
|
||
| ISurface | - интерфейс COM |
|
||
Примечание:
|
||
Данный интерфейс может быть получен с использованием методов интерфейсов ksPlaneAngleDefinition::GetSurface, ksPlaneMiddleDefinition::GetSurface, ksPlaneLineToPlaneDefinition::GetSurface, ksPlaneNormalToSurfaceDefinition::GetSurface, ksPlane3PointsDefinition::GetSurface ksPlanePerpendicularDefinition::GetSurface, ksPlaneTangentToSurfaceDefinition::GetSurface, ksSketchDefinition::GetSurface, ksPlaneEdgePointDefinition::GetSurface, ksPlaneLineToEdgeDefinition::GetSurface, ksPlaneParallelDefinition::GetSurface, ksPlaneOffsetDefinition::GetSurface, IDefaultObject::GetSurface, ksFaceDefinition::GetSurface.
|
||
Триангуляция (аппроксимирующая поверхность грани), Интерфейсы ksTessellation, ITessellation
|
||
Параметры сферы (Интерфейсы ksSphereParam, ISphereParam)
|
||
Параметры конической поверхности (Интерфейсы ksConeParam, IConeParam)
|
||
Параметры тора (Интерфейсы ksTorusParam, ITorusParam)
|
||
Параметры плоскости (Интерфейсы ksPlaneParam, IPlaneParam)
|
||
Параметры цилиндрической поверхности (Интерфейсы ksCylinderParam, ICylinderParam)
|
||
Параметры NURBS-поверхности (Интерфейсы ksNurbsSurfaceParam, INurbsSurfaceParam)
|
||
Параметры точки для трехмерных NURBS (Интерфейсы ksNurbsPoint3dCollCollection, INurbsPoint3dCollCollection)
|
||
Параметры точки для трехмерных NURBS(Интерфейсы ksNurbsPoint3dParam, INurbsPoint3dParam)
|
||
Параметры элемента вращения (Интерфейсы ksRotatedParam, IRotatedParam)
|
||
|
||
|
||
## BoundaryCount - Количество контуров, задающих границу поверхности
|
||
|
||
Тип данных: long
|
||
Синтаксис Automation:
|
||
```
|
||
BoundaryCount = Object.BoundaryCount Получить свойство (* )
|
||
BoundaryCount = Object.GetBoundaryCount() Получить свойство (**)
|
||
```
|
||
Примечание:
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## CurveIntersection - Рассчитать пересечения с кривой
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL CurveIntersection( LPDISPATCH curve, LPDISPATCH points, BOOL extSurf, BOOL extCurve );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL CurveIntersection( LPCURVE3D curve, LPCOORDINATE3DCOLLECTION points, BOOL extSurf, BOOL extCurve );
|
||
Входные параметры:
|
||
curve - указатель на интерфейс 3D кривой ksCurve3D,
|
||
extSurf - TRUE - учитывать продолжение поверхности, - FALSE - не учитывать продолжение поверхности,
|
||
extCurve - TRUE - учитывать продолжение кривой, - FALSE - не учитывать продолжение кривой.
|
||
Выходные параметры:
|
||
points - Коллекция координат точек пересечений ksCoordinate3dCollection.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успеха,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
1. Координаты точек сортируются по параметру кривой t.
|
||
2. Параметр points является необязательным.
|
||
3. Заполняются только присланные коллекции.
|
||
4. Интерфейсы коллекций координат точек ksCoordinate3dCollection нужно получить с помощью функций ksDocument3D::GetInterface с параметром o3dType = o3d_coordinate3dCollection.
|
||
|
||
|
||
## GetArea - Получить площадь поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
double GetArea (long bitVector);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
double GetArea (unsigned long bitVector);
|
||
Входные параметры:
|
||
bitVector - единицы измерения в интервале [ST_MIX_MM..ST_MIX_M].
|
||
Возвращаемое значение:
|
||
площадь поверхности - в случае успешного завершения,
|
||
0 - в случае неудачи.
|
||
```
|
||
|
||
|
||
## GetAreaEx - Получить площадь грани (ST_MIX_MM..ST_MIX_M - единицы измерения)
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
double GetAreaEx( long bitVector, double angleTolerance );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
double GetAreaEx (unsigned long bitVector, double angleTolerance );
|
||
Входные параметры:
|
||
bitVector - единицы измерения в интервале [ST_MIX_MM..ST_MIX_M],
|
||
angleTolerance - ограничение углового отклонения при аппроксимации оболочки треугольными пластинами
|
||
Возвращаемое значение:
|
||
площадь грани - в случае успешного завершения,
|
||
0 - в случае неудачи.
|
||
Версия Компас v21
|
||
```
|
||
|
||
|
||
## GetBoundaryUVNurbs - Получить параметры NURBS-представления границы поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetBoundaryUVNurbs( BOOL uv,
|
||
BOOL unclamped,
|
||
long loopIndex,
|
||
long * degree,
|
||
long edgeIndex,
|
||
VARIANT * points,
|
||
VARIANT * weights,
|
||
VARIANT * knots,
|
||
double * tMin,
|
||
double * tMax );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetBoundaryUVNurbs( BOOL uv,
|
||
BOOL unclamped,
|
||
long loopIndex,
|
||
long edgeIndex,
|
||
long * degree,
|
||
VARIANT * points,
|
||
VARIANT * weights,
|
||
VARIANT * knots,
|
||
double * tMin,
|
||
double * tMax );
|
||
Входные параметры:
|
||
uv - TRUE - получить параметры границы поверхности в UV- параметрическом представлении исходной поверхности, - FALSE - получить параметры границы поверхности в 3D координатах,
|
||
unclamped - TRUE - сомкнуть, если граница разомкнутая - FALSE - разомкнуть, если граница замкнутая,
|
||
loopIndex - индекс цикла,
|
||
edgeIndex индекс ребра в цикле (совпадает с индексом ребра в коллекции ориентированных ребер).
|
||
Выходные параметры:
|
||
degree - порядок NURBS (степень полинома + 1), от 3 до 10,
|
||
points - массив параметров UV или координат вершин - массив SafeArray вещественных чисел VT_ARRAY VT_R8,
|
||
weights - веса точек - массив SafeArray вещественных чисел VT_ARRAY VT_R8,
|
||
knots - узлы точек - массив SafeArray вещественных чисел VT_ARRAY VT_R8,
|
||
tMin, tMax - минимальный и максимальный параметры.
|
||
```
|
||
Примечание:
|
||
Если признак UV равен TRUE, то в массиве points возвращаются параметры UV для Nurbs-представления границы. Параметры в массиве лежат в следующей последовательности:
|
||
u0, v0, u1, v1, ... ui, vi.
|
||
Если признак UV равен FALSE, то в массиве points возвращаются координаты вершин Nurbs-представления границы. Координаты точек в полученном массиве лежат в следующей последовательности:
|
||
x0, y0, z0, x1, y1, z1, ...xi, yi, zi.
|
||
•Если индекс ребра равен -1, формируется Nurbs-представление контура границы.
|
||
•Если индекс >= 0, то формируется Nurbs-представление ребра, входящего в цикл, параметр unclamped при этом игнорируется.
|
||
|
||
|
||
## GetDerivativeU - Получить первую производную по U
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeU (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeU (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - первая производная по U.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetDerivativeUU - Получить вторую производную по UU
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeUU (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeUU (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - вторая производная по UU.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetDerivativeUUU - Получить третью производную по UUU
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeUUU (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeUUU (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - третья производная по UUU.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetDerivativeUUV - Получить третью производную по UUV
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeUUV (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeUUV (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - третья производная по UUV.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetDerivativeUV - Получить вторую производную по UV
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeUV (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeUV (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - вторая производная по UV.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetDerivativeUVV - Получить третью производную по UVV
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeUVV (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeUVV (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - третья производная по UVV.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetDerivativeV - Получить первую производную по V
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeV (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeV (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - первая производная по V.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetDerivativeVV - Получить вторую производную по VV
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeVV (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeVV (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - вторая производная по VV.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetDerivativeVVV - Получить третью производную по VVV
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetDerivativeVVV (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetDerivativeVVV (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - третья производная по VVV.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetEdgesCount - Количество ребер в цикле
|
||
|
||
Количество ребер в цикле.
|
||
Синтаксис Automation:
|
||
```
|
||
long GetEdgesCount( long loopIndex );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
long GetEdgesCount( long loopIndex );
|
||
```
|
||
|
||
|
||
## GetGabarit - Получить габаритный параллелепипед поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetGabarit (double * x1, double *y1, double *z1, double * x2, double *y2, double *z2);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetGabarit (double * x1, double *y1, double *z1, double * x2, double *y2, double *z2);
|
||
Выходные параметры:
|
||
x1, y1, z1, x2, y2, z2 - координаты вершин габаритного параллелепипеда.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Координаты вершин параллелепипеда возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetNormal - Получить направление нормали
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetNormal (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetNormal (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - вектор нормали.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetNurbsSurfaceParam - Получить NURBS-представление поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH GetNurbsSurfaceParam();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPNURBS3DPARAM GetNurbsSurfaceParam();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс ksNurbsSurfaceParam или INurbsSurfaceParam.
|
||
```
|
||
Примечание:
|
||
Метод позволяет получить параметры поверхности в NURBS-представлении. Для получения параметров поверхности в NURBS-представлении создается математическая Nurbs-поверхность, аналогичная заданной. Если заданная кривая является NURBS-поверхности, то возвращаются ее параметры без создания NURBS-представления.
|
||
|
||
|
||
## GetParamUMax - Получить конечное значение параметра U в параметрическом представлении поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
double GetParamUMax();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
double GetParamUMax();
|
||
Возвращаемое значение:
|
||
Значение параметра U - в случае успеха,
|
||
0 - в случае неудачи.
|
||
```
|
||
|
||
|
||
## GetParamUMin - Получить начальное значение параметра U в параметрическом представлении поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
double GetParamUMin();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
double GetParamUMin();
|
||
Возвращаемое значение:
|
||
Значение параметра U. - в случае успеха,
|
||
0 - в случае неудачи.
|
||
```
|
||
|
||
|
||
## GetParamVMax - Получить конечное значение параметра V в параметрическом представлении поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
double GetParamVMax();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
double GetParamVMax();
|
||
Возвращаемое значение:
|
||
Значение параметра V - в случае успеха,
|
||
0 - в случае неудачи.
|
||
```
|
||
|
||
|
||
## GetParamVMin - Получить начальное значение параметра V в параметрическом представлении поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
double GetParamVMin();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
double GetParamVMin();
|
||
Возвращаемое значение:
|
||
Значение параметра V - в случае успеха,
|
||
0 - в случае неудачи.
|
||
```
|
||
|
||
|
||
## GetPoint - Получить координаты точки на поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetPoint (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetPoint (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - координаты точки на поверхности.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetSurfaceParam - Получить параметры плоскости, конуса, цилиндра, тора, сферы, NURBS или NULL
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH GetSurfaceParam();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPDISPATCH GetSurfaceParam();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс параметра поверхности.
|
||
```
|
||
Примечание:
|
||
В соответствии с типом объекта метод вернет указатель на интерфейс параметра:
|
||
| - плоскости | ksPlaneParam или IPlaneParam, |
|
||
| --- | --- |
|
||
| - конуса | ksConeParam или IConeParam, |
|
||
| - цилиндра | ksCylinderParam или ICylinderParam, |
|
||
| - тора | ksTorusParam или ITorusParam, |
|
||
| - сферы | ksSphereParam или ISphereParam, |
|
||
| - NURBS- поверхности | ksNurbsSurfaceParam или INurbsSurfaceParam. |
|
||
Зная тип объекта, можно базовый интерфейс привести к конечному (IDispatch или IUnknown). Для определения типа объекта можно воспользоваться методами IsPlane,
|
||
IsCone, IsCylinder, IsTorus, IsSphere, IsNurbsSurface.
|
||
|
||
|
||
## GetTangentVectorU - Получить направление касательного вектора по U
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetTangentVectorU (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetTangentVectorU (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - касательный вектор по U.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetTangentVectorV - Получить направление касательного вектора по V
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetTangentVectorV (double paramU, double paramV, double * x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetTangentVectorV (double paramU, double paramV, double * x, double *y, double *z);
|
||
Входные параметры:
|
||
paramU, paramV - значения параметров U и V в параметрическом представлении поверхности.
|
||
Выходные параметры:
|
||
x, y, z - касательный вектор по V.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.
|
||
|
||
|
||
## IsClosedU - Определить, является ли поверхность замкнутой по U
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsClosedU();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsClosedU();
|
||
Возвращаемое значение:
|
||
TRUE - кривая замкнута,
|
||
FALSE - кривая разомкнута.
|
||
```
|
||
|
||
|
||
## IsClosedV - Определить, является ли поверхность замкнутой по V
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsClosedV();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsClosedV();
|
||
Возвращаемое значение:
|
||
TRUE - кривая замкнута,
|
||
FALSE - кривая разомкнута.
|
||
```
|
||
|
||
|
||
## IsCone - Определить, является ли поверхность конической
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsCone();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsCone();
|
||
Возвращаемое значение:
|
||
TRUE - поверхность является конической,
|
||
FALSE - поверхность не является конической.
|
||
```
|
||
Примечание:
|
||
Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра конуса ksConeParam или IConeParam.
|
||
|
||
|
||
## IsCylinder - Определить, является ли поверхность цилиндрической
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsCylinder();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsCylinder();
|
||
Возвращаемое значение:
|
||
TRUE - поверхность является цилиндрической,
|
||
FALSE - поверхность не является цилиндрической.
|
||
```
|
||
Примечание:
|
||
Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра цилиндра ksCylinderParam или IPlaneCylinder.
|
||
|
||
|
||
## IsNurbsSurface - Определить, является ли поверхность NURBS
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsNurbsSurface();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsNurbsSurface();
|
||
Возвращаемое значение:
|
||
TRUE - поверхность является NURBS,
|
||
FALSE - поверхность не является NURBS.
|
||
```
|
||
Примечание:
|
||
Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра NURBS ksNurbsSurfaceParam или INurbsSurfaceParam.
|
||
|
||
|
||
## IsPlane - Определить, является ли грань плоской
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsPlane();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsPlane();
|
||
Возвращаемое значение:
|
||
TRUE - поверхность является плоской,
|
||
FALSE - поверхность не является плоской.
|
||
```
|
||
Примечание:
|
||
Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра плоскости ksPlaneParam или IPlaneParam.
|
||
|
||
|
||
## IsRevolved - Определить, является ли поверхность поверхностью вращения
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsRevolved();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsRevolved();
|
||
Возвращаемое значение:
|
||
TRUE - поверхность является поверхностью вращения,
|
||
FALSE - поверхность не является поверхностью вращения.
|
||
```
|
||
|
||
|
||
## IsSphere - Определить, является ли поверхность сферой
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsSphere();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsSphere();
|
||
Возвращаемое значение:
|
||
TRUE - поверхность является сферической,
|
||
FALSE - поверхность не является сферической.
|
||
```
|
||
Примечание:
|
||
Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра сферы ksSphereParam или ISphereParam.
|
||
|
||
|
||
## IsSwept - Определить, является ли поверхность поверхностью по траектории
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsSwept();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsSwept();
|
||
Возвращаемое значение:
|
||
TRUE - поверхность является поверхностью по траектории,
|
||
FALSE - поверхность не является поверхностью по траектории.
|
||
```
|
||
|
||
|
||
## IsTorus - Определить, является ли поверхность тором
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsTorus();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsTorus();
|
||
Возвращаемое значение:
|
||
TRUE - поверхность является тороидальной,
|
||
FALSE - поверхность не является тороидальной.
|
||
```
|
||
Примечание:
|
||
Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра тора ksTorusParam или ITorusParam.
|
||
|
||
|
||
## NearPointProjection - Получить ближайшую проекцию точки на поверхность
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL NearPointProjection (double x, double y, double z, double * u, double * v, BOOL ext);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL NearPointProjection (double x, double y, double z, double * u, double * v, BOOL ext);
|
||
Входные параметры:
|
||
x, y, z - координаты исходной пространственной точки,
|
||
ext - если проекция точки вне поверхности: - TRUE проецировать на продолжение поверхности, - FALSE найти ближайшую граничную точку поверхности. Если проекция точки внутри поверхности, значение этого параметра не учитывается.
|
||
Выходные параметры:
|
||
u, v - параметрические координаты точки на поверхности.
|
||
Возвращаемое значение:
|
||
TRUE - если проекция точки попала на саму поверхность или если ext равен TRUE,
|
||
FALSE - если проекция точки не попала на саму поверхность.
|
||
```
|
||
|
||
|
||
## Tessellation - Получить указатель на интерфейс триангуляции
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH GetTessellation();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPTESSELLATION GetTessellation();
|
||
Возвращаемое значение:
|
||
- Указатель на интерфейс ksTessellation или ITessellation.
|
||
```
|