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

628 lines
22 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.
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: "Интерфейс IMathCurve3D"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, imathcurve3d]
sources:
- imathcurve3d.html
---
*API интерфейсов. Версия 7 > Документ 3D  > Вспомогательные объекты, 3D-кривые и элементы тела  > 3D-кривые и элементы тела  > Интерфейс IModelCurve3D *
## Интерфейс IMathCurve3D
Интерфейс математической кривой в трехмерном пространстве.
Иерархия:
IDispatch
IKompasAPIObject
IMathCurve3D
## BaseCurve2DType - Тип базовой 2D кривой
Тип данных: из перечисления ksMathCurve2DTypeEnum
Синтаксис Automation:
```
BaseCurve2DType = Object.BaseCurve2DType; Получить свойство (* )
BaseCurve2DType = Object.GetBaseCurve2DType(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_BaseCurve2DType( &BaseCurve2DType ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## BaseCurveType - Тип базовой 3D кривой
Тип данных: из перечисления ksMathCurve3DTypeEnum
Синтаксис Automation:
```
BaseCurveType = Object.BaseCurveType; Получить свойство (* )
BaseCurveType = Object.GetBaseCurveType(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_BaseCurveType( &BaseCurveType ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## CalculatePolygon - Получить полигон точек на кривой
Синтаксис Automation:
```
VARIANT CalculatePolygon( double Step );
```
Синтаксис COM:
```
HRESULT CalculatePolygon( double Step, VARIANT * Result );
Возвращаемое значение:
- массив VT_ARRAY VT_R8 координат точек на кривой.
Входные параметры:
Step - шаг для расчета полигона.
```
Примечание:
1. Если шаг задан равным 0, то применяется шаг, используемый в системе КОМПАС, который рассчитывается с учетом габаритов детали.
2. Если шаг задан -1, то применяется шаг, используемый в системе КОМПАС при отрисовке кривых. Он рассчитывается с учетом следующих параметров:
•габариты детали и масштаба отображения модели,
•тип возвращаемого массива VT_ARRAY | VT_R8,
•значения координат в массиве лежат в последовательности x1, y1, z1, x2, y2, z2 ... xn, yn, zn.
## Closed - Замкнутость кривой
Тип данных: BOOL
Синтаксис Automation:
```
Closed = Object.Closed; Получить свойство (* )
Closed = Object.GetClosed(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Closed( &Closed ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## CurveType - Получить тип кривой
Тип данных: из перечисления ksMathCurve3DTypeEnum
Синтаксис Automation:
```
CurveType = Object.CurveType; Получить свойство (* )
CurveType = Object.GetCurveType(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_CurveType( &CurveType ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## Degenerate - Проверка вырожденности кривой
Тип данных: BOOL
Синтаксис Automation:
```
Degenerate = Object.Degenerate; Получить свойство (* )
Degenerate = Object.GetDegenerate(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Degenerate( &Degenerate ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## GetCentre - Получить центр кривой
Синтаксис Automation:
```
BOOL GetCentre( double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetCentre( double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Выходные параметры:
X, Y, Z - координаты центра кривой.
```
## GetDerivativeT - Получить первую производную по T
Синтаксис Automation:
```
BOOL GetDerivativeT( double ParamT, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeT( double ParamT, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
X, Y, Z - первая производная по T.
```
## GetDerivativeTT - Получить вторую производную по T
Синтаксис Automation:
```
BOOL GetDerivativeTT( double ParamT, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeTT( double ParamT, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
X, Y, Z - вторая производная по T.
```
## GetDerivativeTTT - Получить третью производную по T
Синтаксис Automation:
```
BOOL GetDerivativeTTT( double ParamT, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetDerivativeTTT( double ParamT, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
X, Y, Z - третья производная по T.
```
## GetDistanceToPoint - Функция возвращает расстояние между точкой и проекцией точки на грань
Синтаксис Automation:
```
double GetDistanceToPoint( double X, double Y, double Z );
```
Синтаксис COM:
```
HRESULT GetDistanceToPoint( double X, double Y, double Z, double * Result );
Возвращаемое значение:
- Расcтояние от кривой до точки.
Входные параметры:
X, Y, Z - координаты точки.
КOMPAS v24
```
## GetEllipseParam - Параметры эллипса
Синтаксис Automation:
```
BOOL GetEllipseParam( double * MajorRadius, double * MinorRadius, double * Angle ) ;
```
Синтаксис COM:
```
HRESULT GetEllipseParam( double * MajorRadius, double * MinorRadius, double * Angle, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Выходные параметры:
Angle - Угол раствора,
MajorRadius - Большой радиус эллипса,
MinorRadius - Малый радиус эллипса.
Версия КОМПАС v22
```
## 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 - координаты вершин габаритного параллелепипеда.
```
Примечание:
Координаты вершин параллелепипеда возвращаются в системе координат компонента.
## GetLength - Получить длину кривой (ST_MIX_MM..ST_MIX_M единицы измерения)
Синтаксис Automation:
```
double GetLength( ksLengthUnitEnum BitVector ) ;
```
Синтаксис COM:
```
HRESULT GetLength( ksLengthUnitEnum BitVector, double * Result ) ;
Возвращаемое значение:
- длина кривой.
Входные параметры:
BitVector - единица измерения.
```
## 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 ParamT, double * X, double * Y, double * Z) ;
```
Синтаксис COM:
```
HRESULT GetNormal( double ParamT, double * X, double * Y, double * Z, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
X, Y, Z - вектор нормали.
```
## GetNurbs3DParams - Параметры Nurbs-представления кривой
Синтаксис Automation:
```
BOOL GetNurbs3DParams( BOOL Closed, long * Degree, double * ParamMin, double * ParamMax, VARIANT * Points, VARIANT * Weights, VARIANT * Knots ) ;
```
Синтаксис COM:
```
HRESULT GetNurbs3DParams( BOOL Closed, long * Degree, double * ParamMin, double * ParamMax, VARIANT * Points, VARIANT * Weights, VARIANT * Knots, BOOL * Result ) ;
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
Closed - TRUE - Вернуть параметры для замкнутого представления - FALSE - Вернуть параметры для разомкнутого представления.
Выходные параметры:
Degree - порядок сплайна (степень + 1),
ParamMin - минимальный параметр кривой,
ParamMax - максимальный параметр кривой,
Points - координаты точек в виде массива VT_ARRAY VT_R8,
Weights - веса в точках в виде массива VT_ARRAY VT_R8,
Knots - массив VT_ARRAY VT_R8 узлов сплайна.
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).
Версия КОМПАС v22
```
## GetPoint - Получить точку на кривой
Синтаксис Automation:
```
BOOL GetPoint( double ParamT, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetPoint( double ParamT, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
X, Y, Z - координаты точки на кривой.
```
## GetTangentVector - Получить тангенциальный вектор (нормализованный)
Синтаксис Automation:
```
BOOL GetTangentVector( double ParamT, double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetTangentVector( double ParamT, double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ParamT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
X, Y, Z - касательный вектор.
```
## GetWeightCentre - Получить центр тяжести кривой
Синтаксис Automation:
```
BOOL GetWeightCentre( double * X, double * Y, double * Z );
```
Синтаксис COM:
```
HRESULT GetWeightCentre( double * X, double * Y, double * Z, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Выходные параметры:
X, Y, Z - координаты центра тяжести кривой.
```
## IsArc - Является ли кривая дугой окружности
Тип данных: BOOL
Синтаксис Automation:
```
IsArc = Object.IsArc; Получить свойство (* )
IsArc = Object.GetIsArc(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsArc( &IsArc ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsCircle - Является ли кривая окружностью
Тип данных: BOOL
Синтаксис Automation:
```
IsCircle = Object.IsCircle; Получить свойство (* )
IsCircle = Object.GetIsCircle(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsCircle( &IsCircle ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsEllipse - Является ли кривая эллипсом
Тип данных: BOOL
Синтаксис Automation:
```
IsEllipse = Object.IsEllipse; Получить свойство (* )
IsEllipse = Object.GetIsEllipse(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsEllipse( &IsEllipse ) Получить свойство
```
Примечание:
Свойство доступно только для чтения
Версия КОМПАС v22.
## IsEllipseArc - Является ли кривая дугой эллипса
Тип данных: BOOL
Синтаксис Automation:
```
IsEllipseArc = Object.IsEllipseArc; Получить свойство (* )
IsEllipseArc = Object.GetIsEllipseArc(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsEllipseArc( &IsEllipseArc ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsLineSeg - Является ли кривая отрезком
Тип данных: BOOL
Синтаксис Automation:
```
IsLineSeg = Object.IsLineSeg; Получить свойство (* )
IsLineSeg = Object.GetIsLineSeg(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsLineSeg( &IsLineSeg ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsNurbs - Определить, является ли кривая NURBS
Тип данных: BOOL
Синтаксис Automation:
```
IsNurbs = Object.IsNurbs; Получить свойство (* )
IsNurbs = Object.GetIsNurbs(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsNurbs( &IsNurbs ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
(отсутствуют).
## IsPlanar - Является ли кривая плоской
Тип данных: BOOL
Синтаксис Automation:
```
IsPlanar = Object.IsPlanar; Получить свойство (* )
IsPlanar = Object.GetIsPlanar(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsPlanar( &IsPlanar ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## IsStraight - Является ли кривая прямолинейной
Тип данных: BOOL
Синтаксис Automation:
```
IsStraight = Object.IsStraight; Получить свойство (* )
IsStraight = Object.GetIsStraight(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsStraight( &IsStraight ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## NearPointProjection - Получить ближайшую проекцию точки на кривую
Синтаксис Automation:
```
BOOL NearPointProjection( double X, double Y, double Z, double * T, BOOL Ext );
```
Синтаксис COM:
```
HRESULT NearPointProjection( double X, double Y, double Z, double * T, BOOL Ext, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
X, Y, Z - координаты исходной пространственной точки,
Ext - если проекция точки вне кривой,
TRUE - проецировать на продолжение кривой,
FALSE - найти ближайшую граничную точку кривой. Если проекция точки внутри кривой, значение этого параметра не учитывается.
Выходные параметры:
T - параметрические координаты точки на кривой.
```
## ParamMax - Получить значение параметра конечное
Тип данных: double
Синтаксис Automation:
```
ParamMax = Object.ParamMax; Получить свойство (* )
ParamMax = Object.GetParamMax(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ParamMax( &ParamMax) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## ParamMin - Получить значение параметра начальное
Тип данных: double
Синтаксис Automation:
```
ParamMin = Object.ParamMin; Получить свойство (* )
ParamMin = Object.GetParamMin(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ParamMin( &ParamMin ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## Periodic - Периодичность замкнутой кривой
Тип данных:BOOL
Синтаксис Automation:
```
Periodic = Object.Periodic; Получить свойство (* )
Periodic = Object.GetPeriodic(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Periodic( &Periodic ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
## Placement - Интерфейс локальной системы координат (положение объекта)
Тип данных: Указатель на интерфейс IPlacement3D
Синтаксис Automation:
```
Placement = Object.Placement; Получить свойство (* )
Placement = Object.GetPlacement(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Placement( &Placement ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22
## Radius - Радиус кривой
Тип данных: double
Синтаксис Automation:
```
Radius = Object.Radius; Получить свойство (* )
Radius = Object.GetRadius(); Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Radius( &Radius ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.