Files
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

22 KiB

title, type, api, domain, tags, sources
title type api domain tags sources
Интерфейс IMathCurve3D interface
api7
3d
interface
api7
3d
imathcurve3d
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 )    Получить свойство

Примечание: Свойство доступно только для чтения.