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

17 KiB
Raw Permalink Blame History

title, type, api, domain, tags, sources
title type api domain tags sources
Интерфейс IMath2D interface
api7
2d
interface
api7
2d
imath2d
imath2d.html

*API интерфейсов. Версия 7 > 2D математика *

Интерфейс IMath2D

Интерфейс 2D математики. Иерархия: IDispatch IKompasAPIObject IMath2D Описание: Интерфейс позволяет создавать математические кривые и осуществлять работу с точками. Примечание: Интерфейс можно получить у интерфейса приложения КОМПАС с помощью свойства IApplication::Math2D.

Arc - Временная математическая дуга

Синтаксис Automation:

LPDISPATCH Arc( double Xc,
double Yc,
double Radius,
double Angle1,
double Angle2,
BOOL direction);

Синтаксис COM:

HRESULT Arc( double X,
double Y,
double Angle,
BOOL direction,
ICurve2D ** Result );
Входные параметры:
X, Y    - координаты точки, через которую проходит прямая,
Angle    - угол между прямой и осью ОХ,
Direction    - направление дуги (TRUE - по часовой стрелке, FALSE - против часовой стрелки).
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.

Примечание: Метод позволяет создать временную математическую дугу.

Bezier - Временная математическая кривая Безье

Синтаксис Automation:

LPDISPATCH Bezier( BOOL Closed,
BOOL AllPoints,
VARIANT Points );

Синтаксис COM:

HRESULT Bezier( BOOL Closed,
BOOL AllPoints,
VARIANT Points,
ICurve2D ** Result );
Входные параметры:
Closed    - признак замкнутости кривой,
AllPoints    - TRUE - в массиве присутствуют все точки узла, - FALSE - в массиве присутствуют только опорные точки,
Points    - массив SAFEARRAY    VT_R8 координат точек кривой.
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.

Примечание: Метод позволяет создать временную математическую кривую Безье.

Calculate - Вычислить выражение

Синтаксис Automation:

double Calculate( BSTR Expression );

Синтаксис COM:

HRESULT Calculate( BSTR Expression, double * Result );
Возвращаемое значение:
- Результат вычисления. В случае ошибки возвращается std::nan("").
Входные параметры:
Expression    - выражение.

Примечание: 1.Поддерживаются функции и переменные: •   SIN, COS, TAN, ATAN - тригонометрические функции (аргумент в радианах), •   SIND, COSD, TAND, ATAND - тригонометрические функции (аргумент в градусах), •   SQRT, EXP, LN, ABS - корень квадратный, экспонента, натуральный логарифм, абсолютное значение. 2.Наименования функций можно писать в любом регистре (например, как COS, так и cos) 3.Если s = "A1 = 100 ", будет заведена переменная A1 c значением 100. 4.В именах переменных различается регистр букв (например, А1 и а1 - разные переменные). 5.Количество переменных не ограничено. КOMPAS v24

CalculateInertiaProperties - Функция возвращает плоские массо-центровочные характеристики

Синтаксис Automation:

BOOL CalculateInertiaProperties( VARIANT Objects, IInertiaProperties * InertiaParam, IInertiaPropertiesCalculateParam * CalculateParam );

Синтаксис COM:

HRESULT CalculateInertiaProperties( VARIANT Objects, IInertiaProperties * InertiaParam, IInertiaPropertiesCalculateParam * CalculateParam, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Objects    - список или группа кривых,
InertiaParam    - указатель на интерфейс результатов расчета МЦХ IInertiaProperties,
CalculateParam    - указатель на интерфейс параметров расчета МЦХ IInertiaPropertiesCalculateParam.
КOMPAS v24

CalculateMassInertiaProperties - Функция возвращает объемные массо-центровочные характеристики.

Синтаксис Automation:

BOOL CalculateMassInertiaProperties( VARIANT Objects, IMassInertiaProperties * MassInertiaParam, IMassInertiaPropertiesCalculateParam * CalculateParam );

Синтаксис COM:

HRESULT CalculateMassInertiaProperties( VARIANT Objects, IMassInertiaProperties * MassInertiaParam, IMassInertiaPropertiesCalculateParam * CalculateParam, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Objects    - список или группа кривых,
InertiaParam    - указатель на интерфейс результатов расчета МЦХ IMassInertiaProperties,
CalculateParam    - указатель на интерфейс параметров расчета МЦХ IInertiaPropertiesCalculateParam.
КOMPAS v24

CalculateReset - Очистить результаты вычислений и переменные калькулятора

Синтаксис Automation:

BOOL CalculateReset();

Синтаксис COM:

HRESULT CalculateReset( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
КOMPAS v24

Circle - Временная математическая окружность

Синтаксис Automation:

LPDISPATCH Circle( double Xc,
double Yc,
double Radius );

Синтаксис COM:

HRESULT Circle( double Xc,
double Yc,
double Radius,
ICurve2D ** Result );
Входные параметры:
Xc, Yc    - координаты центра окружности,
Radius    - радиус окружности.
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.

Примечание: Метод позволяет создать временную математическую окружность.

Ellipse - Временный математический эллипс

Синтаксис Automation:

LPDISPATCH Ellipse( double Xc,
double Yc,
double A,
double B,
double Angle );

Синтаксис COM:

HRESULT Ellipse( double Xc,
double Yc,
double A,
double B,
double Angle,
ICurve2D ** Result );
Входные параметры:
Xc, Yc    - координаты центра эллипса,
А, В    - длина полуосей эллипса,
Angle    - угол наклона эллипса к оси ОХ.
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.

Примечание: Метод позволяет создать временный математический эллипс.

EllipseArc - Временная математическая дуга эллипса

Синтаксис Automation:

LPDISPATCH EllipseArc( double Xc,
double Yc,
double A,
double B,
double Angle,
double Angle1,
double Angle2,
BOOL direction) ;

Синтаксис COM:

HRESULT EllipseArc( double Xc,
double Yc,
double A,
double B,
double Angle,
double Angle1,
double Angle2,
BOOL direction,
ICurve2D ** Result );
Входные параметры:
Xc, Yc    - координаты центра дуги эллипса,
А, В    - длина полуосей дуги эллипса,
Angle    - угол наклона дуги эллипса к оси ОХ.
Angle1    - начальный угол дуги к оси А,
Angle2    - конечный угол дуги к оси А,
Direction    - направление дуги (TRUE - по часовой стрелке, FALSE - против часовой стрелки).
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.

Примечание: Метод позволяет создать временную математическую дугу эллипса.

IsEqualPoints - Определить эквивалентность двух точек

Синтаксис Automation:

BOOL IsEqualPoints( double X1, double Y1, double X2, double Y2 );

Синтаксис COM:

HRESULT IsEqualPoints( double X1, double Y1, double X2, double Y2, BOOL * Result );
Возвращаемое значение:
TRUE    - точки совпадают,
FALSE    - точки не совпадают.
Входные параметры:
X1, Y1    - координаты первой точки,
X2, Y2    - координаты второй точки.
КOMPAS v24

IsEqualPointsWithEpsilon - Определить эквивалентность двух точек с заданной точностью

Синтаксис Automation:

BOOL IsEqualPointsWithEpsilon( double X1, double Y1, double X2, double Y2, double Epsilon );

Синтаксис COM:

HRESULT IsEqualPointsWithEpsilon( double X1, double Y1, double X2, double Y2, double Epsilon, BOOL * Result );
Возвращаемое значение:
TRUE    - точки совпадают,
FALSE    - точки не совпадают.
Входные параметры:
X1, Y1    - координаты первой точки,
X2, Y2    - координаты второй точки,
Epsilon    - погрешность сравнения.
КOMPAS v24

Line - Временная математическая прямая

Синтаксис Automation:

LPDISPATCH Line( double X,
double Y,
double Angle );

Синтаксис COM:

HRESULT Line( double X,
double Y,
double Angle,
ICurve2D ** Result );
Входные параметры:
X, Y    - координаты точки, через которую проходит прямая,
Angle    - угол наклона прямой к оси ОХ.
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.

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

LineAngle - Угол линии по двум точками

Синтаксис Automation:

double LineAngle( double X1, double Y1, double X2, double Y2 );

Синтаксис COM:

HRESULT LineAngle( double X1, double Y1, double X2, double Y2, double * Result );
Возвращаемое значение:
- Значение угла.
Входные параметры:
X1, Y1    - первая точка на линии,
X2, Y2    - вторая точка на линии.
КOMPAS v24

LineSeg - Временный математический отрезок

Синтаксис Automation:

LPDISPATCH LineSeg( double X1,
double Y1,
double X2,
double Y2 );

Синтаксис COM:

HRESULT LineSeg( double X1,
double Y1,
double X2,
double Y2,
ICurve2D ** Result );
Входные параметры:
X1, Y1    - координаты первой точки отрезка,
X2, Y2    - координаты второй точки отрезка.
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.

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

MovePoint - Сместить точку

Синтаксис Automation:

BOOL MovePoint( double * X,
double * Y,
Angle,
double Len );

Синтаксис COM:

HRESULT MovePoint( double * X,
double * Y,
double Angle,
double Len,
BOOL * Result );
Входные параметры:
X, Y    - координаты точки,
Angle    - угол смещения,
Len    - расстояние смещения.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.

Nurbs - Временная математическая Nurbs-кривая

Синтаксис Automation:

LPDISPATCH Nurbs( BOOL Closed,
long Degree,
VARIANT Points,
VARIANT Weights,
VARIANT Knots );

Синтаксис COM:

HRESULT Nurbs( BOOL Closed,
long Degree,
VARIANT Points,
VARIANT Weights,
VARIANT Knots,
ICurve2D ** Result );
Входные параметры:
Closed    - признак замкнутости кривой,
Degree    - порядок кривой,
Points    - массив SAFEARRAY    VT_R8 координат точек кривой,
Weight    - массив SAFEARRAY    VT_R8 весов точек,
Knots    - массив SAFEARRAY    VT_R8 узлов сплайна.
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.
В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1).

Примечание: Метод позволяет создать временную математическую Nurbs-кривую.

PointsDistance - Расстояние между двумя точками

Синтаксис Automation:

double PointsDistance( double X1, double Y1, double X2, double Y2 );

Синтаксис COM:

HRESULT PointsDistance( double X1, double Y1, double X2, double Y2, double * Result );
Возвращаемое значение:
- Растояние.
Входные параметры:
X1, Y1    - первая точка,
X2, Y2    - вторая точка.
КOMPAS v24

PolyLine - Временная математическая полилиния

Синтаксис Automation:

LPDISPATCH PolyLine( VARIANT Points,
BOOL Closed );

Синтаксис COM:

HRESULT PolyLine( VARIANT Points,
BOOL Closed,
ICurve2D ** Result );
Входные параметры:
Points    - массив SAFEARRAY    VT_R8 координат точек полилинии,
Closed    - признак замкнутости кривой.
Возвращаемое значение:
- указатель на интерфейс математической кривой ICurve2D.

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

Rotate - Повернуть точку на угол

Синтаксис Automation:

BOOL Rotate( double * X,
double * Y,
double Xc,
double Yc,
double Angle );

Синтаксис COM:

HRESULT Rotate( double * X,
double * Y,
double Xc,
double Yc,
double Angle,
BOOL * Result );
Входные параметры:
X, Y    - координаты точки, которую нужно повернуть,
Xс, Yс    - координаты центра поворота,
Angle    - угол поворота.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.

Примечание: Метод позволяет повернуть точку на угол.

Symmetry - Симметрия точки относительно оси

Синтаксис Automation:

BOOL Symmetry( double * X,
double * Y,
LPDISPATCH Curve );

Синтаксис COM:

HRESULT Symmetry( double * X,
double * Y,
ICurve2D * Curve,
BOOL * Result );
Входные параметры:
X, Y    - координаты точки,
Curve    - ось (математическая прямая или отрезок).
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.

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