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

871 lines
35 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Интерфейс IMathSurface3D"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, imathsurface3d]
sources:
- imathsurface3d.html
---
*API интерфейсов. Версия 7 > Документ 3D  > Поверхности *
## Интерфейс IMathSurface3D
Интерфейс математической поверхности в трехмерном пространстве.
Иерархия:
IDispatch
IKompasAPIObject
IMathSurface3D
## BaseSurface3DType - Тип базовой поверхности
Тип данных: из перечисления ksMathSurface3DTypeEnum
Синтаксис Automation:
```
BaseSurface3DType = Object.BaseSurface3DType Получить свойство (* )
BaseSurface3DType = Object.GetBaseSurface3DType() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_BaseSurface3DType( &BaseSurface3DType ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## BoundaryCount - Получить количество границ
Тип данных: long
Синтаксис Automation:
```
BoundaryCount = Object.BoundaryCount Получить свойство (* )
BoundaryCount = Object.GetBoundaryCount() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_BoundaryCount( &BoundaryCount ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## ClosedU - Получить замкнутость кривой по U
Тип данных: BOOL
Синтаксис Automation:
```
ClosedU = Object.ClosedU Получить свойство (* )
ClosedU = Object.GetClosedU() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ClosedU( &ClosedU ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## ClosedV - Получить замкнутость кривой по V
Тип данных: BOOL
Синтаксис Automation:
```
ClosedV= Object.ClosedV Получить свойство (* )
ClosedV = Object.GetClosedV() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ClosedV( &ClosedV) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## CurveIntersection - Расчет пересечений c кривой
Синтаксис Automation:
```
BOOL CurveIntersection( IMathCurve3D * Curve, BOOL ExtensionSurface, BOOL ExtensionCurve, VARIANT * Points );
```
Синтаксис COM:
```
HRESULT CurveIntersection( IMathCurve3D * Curve, BOOL ExtensionSurface, BOOL ExtensionCurve, VARIANT * Points, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
Curve - указатель на кривую IMathCurve3D,
ExtensionSurface - учитывать продолжение поверхности,
ExtensionCurve - учитывать продолжение кривой.
Выходные параметры:
Points - координаты точек пересечений.
Версия КОМПАС v23
```
## GetArea - Получить площадь грани (ST_MIX_MM..ST_MIX_M единицы измерения)
Синтаксис Automation:
```
double GetArea( ksLengthUnitsEnum BitVector );
```
Синтаксис COM:
```
HRESULT GetArea( ksLengthUnitsEnum BitVector, double * Result ) ;
Возвращаемое значение:
- площадь поверхности.
Входные параметры:
BitVector - единицы измерения в интервале [ST_MIX_MM..ST_MIX_M].
```
## GetAreaEx - Получить площадь грани
Синтаксис Automation:
```
double GetAreaEx( ksLengthUnitsEnum Unit, double AngleTolerance );
```
Синтаксис COM:
```
HRESULT GetAreaEx( ksLengthUnitsEnum Unit, double AngleTolerance, double * Result );
Входные параметры:
Unit - единицы измерения длины из перечисления ksLengthUnitsEnum,
AngleTolerance - ограничение углового отклонения ( в радианах) при аппроксимации оболочки треугольными пластинами.
Версия Компас v21
```
## GetBoundaryUVNurbs - Получить параметры границы поверхности в UV NURBS-представлении
Синтаксис Automation:
```
BOOL GetBoundaryUVNurbs( BOOL UV, BOOL Closed, long LoopIndex, long EdgeIndex,
long * Degree, VARIANT * Points, VARIANT * Weights, VARIANT * Knots, double *
TMin, double * TMax );
```
Синтаксис COM:
```
HRESULT GetBoundaryUVNurbs( BOOL UV, BOOL Closed, long LoopIndex, long EdgeIndex,
long * Degree, VARIANT * Points, VARIANT * Weights, VARIANT * Knots, double *
TMin, double * TMax, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
UV - TRUE - получить параметры границы поверхности в UV- параметрическом представлении исходной поверхности, - FALSE - получить параметры границы поверхности в 3D координатах,
Closed - 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 - минимальный и максимальный параметры.
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
```
Примечание:
1. Если признак UV равен TRUE, то в массиве points возвращаются параметры UV для Nurbs-представления границы. Параметры в массиве лежат в следующей последовательности:
u0, v0, u1, v1, ... ui, vi.
2. Если признак UV равен FALSE, то в массиве points возвращаются координаты вершин Nurbs-представления границы. Координаты точек в полученном массиве лежат в следующей последовательности:
x0, y0, z0, x1, y1, z1, ...xi, yi, zi.
3. Если индекс ребра равен -1, формируется Nurbs-представление контура границы.
4. Если индекс >= 0 то формируется Nurbs-представление ребра, входящего в цикл, параметр unclamped при этом игнорируется.
## GetConeParam - Получить параметры конической поверхности
Синтаксис Automation:
```
BOOL GetConeParam( double * Height, double * Angle, double * Radius );
```
Синтаксис COM:
```
HRESULT GetConeParam( double * Height, double * Angle, double * Radius, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Выходные параметры:
Height - высота,
Angle - угол (в радианах),
Radius - радиус.
Версия КОМПАС v22
```
## GetDerivativeU - Получить первую производную по U
Синтаксис Automation:
```
BOOL GetDerivativeU( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeU( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - первая производная по U.
```
## GetDerivativeUU - Получить вторую производную по UU
Синтаксис Automation:
```
BOOL GetDerivativeUU( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeUU( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - вторая производная по UU.
```
## GetDerivativeUUU - Получить третью производную по UUU
Синтаксис Automation:
```
BOOL GetDerivativeUUU( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeUUU( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - третья производная по UUU.
```
## GetDerivativeUUV - Получить третью производную по UUV
Синтаксис Automation:
```
BOOL GetDerivativeUUV( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeUUV( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - третья производная по UUV.
```
## GetDerivativeUV - Получить вторую производную по UV
Синтаксис Automation:
```
BOOL GetDerivativeUV( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeUV( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - вторая производная по UV.
```
## GetDerivativeUVV - Получить третью производнуюпо UVV
Синтаксис Automation:
```
BOOL GetDerivativeUVV( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeUVV( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - третья производная по UVV.
```
## GetDerivativeV - Получить вторую производную по V
Синтаксис Automation:
```
BOOL GetDerivativeV( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeV( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - первая производная по V.
```
## GetDerivativeVV - Получить вторую производную по VV
Синтаксис Automation:
```
BOOL GetDerivativeVV( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeVV( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - вторая производная по VV.
```
## GetDerivativeVVV - Получить третью производнуюпо VVV
Синтаксис Automation:
```
BOOL GetDerivativeVVV( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeVVV( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - третья производная по VVV.
```
## GetDistanceToPoint - Функция возвращает расстояние между точкой и проекцией точки на грань
Синтаксис Automation:
```
double GetDistanceToPoint( double X, double Y, double Z );
```
Синтаксис COM:
```
HRESULT GetDistanceToPoint( double X, double Y, double Z, double * Result );
Возвращаемое значение:
- Расстояние до точки.
Входные параметры:
X, Y, Z - координаты точки в пространстве .
КOMPAS v24
```
## GetEdgesCount - Получить количество ребер в границе
Синтаксис Automation:
```
long GetEdgesCount( long LoopIndex );
```
Синтаксис COM:
```
HRESULT GetEdgesCount( long LoopIndex, long * Result );
Возвращаемое значение:
- количество ребер в границе.
Выходные параметры:
LoopIndex - индекс границы.
```
## GetGabarit - Получить габарит
Синтаксис Automation:
```
BOOL GetGabarit( double * X1, double * Y1, double * Z1, double * X2, double * Y2, double * Z2 );
```
Синтаксис COM:
```
HRESULT GetGabarit( double * X1, double * Y1, double * Z1, double * X2, double * Y2, double * Z2, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Выходные параметры:
X1, Y1, Z1, X2, Y2, Z2 - координаты вершин габаритного параллелепипеда.
```
Примечание:
Координаты вершин параллелепипеда возвращаются в системе координат компонента.
## GetMetricLength - Метрическая длина кривой
Синтаксис Automation:
```
double GetMetricLength( double StartParam, double EndParam );
```
Синтаксис COM:
```
HRESULT GetMetricLength( double StartParam, double EndParam, double * Result ;
Возвращаемое значение:
- длина кривой.
Входные параметры:
StartParam - начальное значение параметра T в параметрическом представлении кривой,
EndParam - конечное значение параметра T в параметрическом представлении кривой.
```
## GetNormal - Получить нормаль
Синтаксис Automation:
```
BOOL GetNormal( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetNormal( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - вектор нормали.
```
## GetNurbsParams - Получить параметры NURBS-представления поверхности
Синтаксис Automation:
```
BOOL GetNurbsParams( BOOL ClosedV, BOOL ClosedU, long * DegreeV, long * DegreeU, long * NPV, long * NPU, VARIANT * Points, VARIANT * Weights, VARIANT * KnotsV, VARIANT * KnotsU );
```
Синтаксис COM:
```
HRESULT GetNurbsParams( BOOL ClosedV, BOOL ClosedU, long * DegreeV, long * DegreeU, long * NPV, long * NPU, VARIANT * Points, VARIANT * Weights, VARIANT * KnotsV, VARIANT * KnotsU, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ClosedV -TRUE - получение параметров для замкнутого по V представления, - FALSE - получение параметров для разомкнутого по V представления,
ClosedU -TRUE - получение параметров для замкнутого по V представления, - FALSE - получение параметров для разомкнутого по V представления.
Выходные параметры:
DegreeV - порядок NURBS по V (степень полинома + 1), от 3 до 10,
DegreeU - порядок NURBS по U (степень полинома + 1), от 3 до 10
NPV - количество точек по V,
NPU - количество точек по U,
Points - массив SafeArray точек VT_ARRAY VT_R8,
Weights - веса,
KnotsV - массив SafeArray узлов точек по V VT_ARRAY VT_R8,
KnotsU - массив SafeArray узлов точек по U VT_ARRAY VT_R8.
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
Версия КОМПАС v22
```
## GetPoint - Получить точку на поверхности
Синтаксис Automation:
```
BOOL GetPoint( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetPoint( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - координаты точки на поверхности.
```
## GetTangentVectorU - Получить касательный вектор по U
Синтаксис Automation:
```
BOOL GetTangentVectorU( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetTangentVectorU( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - касательный вектор по U.
```
## GetTangentVectorV - Получить касательный вектор по V
Синтаксис Automation:
```
BOOL GetTangentVectorV( double ParamU, double ParamV, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetTangentVectorV( double ParamU, double ParamV, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamU, ParamV - значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:
X, Y, Z - касательный вектор по V.
```
## GetTorusParam - Получить параметры тора
Синтаксис Automation:
```
BOOL GetTorusParam( double * Radius, double * GeneratrixRadius );
```
Синтаксис COM:
```
RESULT GetTorusParam( double * Radius, double * GeneratrixRadius, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Выходные параметры:
Radius - Радиус,
GeneratrixRadius - Радиус образующей.
Версия КОМПАС v22
```
## IsCylinder - Является ли поверхность цилиндрической
Тип данных: BOOL
Синтаксис Automation:
```
IsCylinder = Object.IsCylinder Получить свойство (* )
IsCylinder = Object.GetIsCylinder() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsCylinder( &IsCylinder ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsNurbsSurface - Является ли поверхность NURBS-поверхностью
Тип данных:BOOL
Синтаксис Automation:
```
IsNurbsSurface = Object.IsNurbsSurface Получить свойство (* )
IsNurbsSurface = Object.GetIsNurbsSurface() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsNurbsSurface( &IsNurbsSurface ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsPlanar - Является ли поверхность плоской
Тип данных:BOOL
Синтаксис Automation:
```
IsPlanar = Object.IsPlanar Получить свойство (* )
IsPlanar = Object.GetIsPlanar() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsPlanar( &IsPlanar ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsRevolved - Определяется ли поверхность поверхностью вращения
Тип данных:BOOL
Синтаксис Automation:
```
IsRevolved = Object.IsRevolved Получить свойство (* )
IsRevolved = Object.GetIsRevolved() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsRevolved( &IsRevolved ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsSalient - Является ли поверхность выпуклой
Тип данных: из перечисления ksSurfaceSalientTypeEnum
Синтаксис Automation:
```
IsSalient = Object.IsSalient Получить свойство (* )
IsSalient = Object.GetIsSalient() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsSalient( &IsSalient ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsSphere - Является ли поверхность сферической
Тип данных: BOOL
Синтаксис Automation:
```
IsSphere = Object.IsSphere Получить свойство (* )
IsSphere = Object.GetIsSphere() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsSphere( &IsSphere ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsSwept - Определяется ли поверхность поверхностью по траектории
Тип данных:BOOL
Синтаксис Automation:
```
IsSwept = Object.IsSwept Получить свойство (* )
IsSwept = Object.GetIsSwept() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsSwept( &IsSwept ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsTorus - Является ли поверхность тором
Тип данных: BOOL
Синтаксис Automation:
```
IsTorus = Object.IsTorus Получить свойство (* )
IsTorus = Object.GetIsTorus() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsTorus( &IsTorus ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## NearDirectPointProjection - Проекция точки на кривую
Синтаксис Automation:
```
BOOL NearDirectPointProjection( double X, double Y, double Z, double VX, double VY, double VZ, BOOL Extended, double * U, double * V );
```
Синтаксис COM:
```
HRESULT NearDirectPointProjection( double X, double Y, double Z, double VX, double VY, double VZ, BOOL Extended, double * U, double * V, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
X, Y, Z - координаты точки,
VX, VY, VZ - направление вектора,
Extended - TRUE - учитывать продолжение.
Выходные параметры:
U, V - параметрические координаты точки на поверхности.
Версия: Компас v20
```
## NearPointProjection - Получить ближайшую проекцию точки на поверхность
Синтаксис Automation:
```
BOOL NearPointProjection( double X, double Y, double Z, double * ParamU, double * ParamV, BOOL Ext );
```
Синтаксис COM:
```
HRESULT NearPointProjection( double X, double Y, double Z, double * ParamU, double * ParamV, BOOL Ext, BOOL * Result ) ;
Возвращаемое значение:
TRUE - если проекция точки попала на саму поверхность или если ext равен TRUЕ,
FALSE - если проекция точки не попала на саму поверхность.
Входные параметры:
X, Y, Z - координаты исходной пространственной точки,
Ext - если проекция точки вне поверхности; - TRUE проецировать на продолжение поверхности, - FALSE найти ближайшую граничную точку поверхности.
Выходные параметры:
ParamU, ParamV - параметрические координаты точки на поверхности.
```
## ParamUMax - Получить значение параметра U конечное
Тип данных: double
Синтаксис Automation:
```
ParamUMax = Object.ParamUMax Получить свойство (* )
ParamUMax = Object.GetParamUMax() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ParamUMax( &ParamUMax ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## ParamUMin - Получить значение параметра U начальное
Тип данных: double
Синтаксис Automation:
```
ParamUMin = Object.ParamUMin Получить свойство (* )
ParamUMin = Object.GetParamUMin() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ParamUMin( &ParamUMin ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## ParamVMax - Получить значение параметра V конечное
Тип данных: double
Синтаксис Automation:
```
ParamVMax = Object.ParamVMax Получить свойство (* )
ParamVMax = Object.GetParamVMax() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ParamVMax( &ParamVMax ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## ParamVMin - Получить значение параметра V начальное
Тип данных: double
Синтаксис Automation:
```
ParamVMin = Object.ParamVMin Получить свойство (* )
ParamVMin = Object.GetParamVMin() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ParamVMin( &ParamVMin ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## Placement - Интерфейс локальной системы координат (положение объекта)
Тип данных: Указатель на интерфейс IPlacement3D
Синтаксис Automation:
```
Placement = Object.Placement Получить свойство (* )
Placement = Object.GetPlacement() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Placement( &Placement ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## PointProjection - Проекция точки на поверхность
Синтаксис Automation :
VARIANT PointProjection( double X, double Y, double Z, double VX, double VY, double VZ, BOOL Extended );
Синтаксис COM:
```
HRESULT PointProjection( double X, double Y, double Z, double VX, double VY, double VZ, BOOL Extended, VARIANT * Result );
Возвращаемое значение:
Массив Safearray VT_ARRAY VT_R8 параметрических координат точек поверхности в последовательности U1, V1, U2, V2....
Входные параметры:
X, Y, Z - координаты точки,
VX, VY, VZ - направление вектора,
Extended - TRUE - учитывать продолжение.
Версия: Компас v20
```
## Radius - Радиус поверхности
Тип данных: double
Синтаксис Automation:
```
Radius = Object.Radius Получить свойство (* )
Radius = Object.GetRadius() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Radius( &Radius ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## Surface3DType - Тип поверхности
Тип данных: из перечисления ksMathSurface3DTypeEnum
Синтаксис Automation:
```
Surface3DType = Object.Surface3DType Получить свойство (* )
Surface3DType = Object.GetSurface3DType() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Surface3DType( &Surface3DType ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.