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>
17 KiB
title, type, api, domain, tags, sources
| title | type | api | domain | tags | sources | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Интерфейс IMath2D | interface |
|
|
|
|
*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 - в случае неудачи.
Примечание: Метод позволяет получить координаты точки, симметричной относительно заданной оси.