e1337e4016
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>
58 lines
2.6 KiB
Markdown
58 lines
2.6 KiB
Markdown
---
|
|
title: "ksCalculate - Подсчитать значение выражения"
|
|
type: guide
|
|
api: [api7]
|
|
tags: [guide, api7, kscalculate]
|
|
sources:
|
|
- kscalculate.html
|
|
---
|
|
|
|
*API экспортных функций > Функции работы с калькулятором *
|
|
|
|
|
|
## ksCalculate - Подсчитать значение выражения
|
|
|
|
Пример...
|
|
Аналог данной функции при использовании Automation - метод KompasObject::ksCalculate.
|
|
Синтаксис:
|
|
```
|
|
int ksCalculate (char *s, double * rez);
|
|
Входные параметры:
|
|
s - строка с выражением.
|
|
Выходные параметры:
|
|
rez - результат расчета.
|
|
Возвращаемое значение:
|
|
1 - в случае удачного завершения,
|
|
0 - в случае неудачи.
|
|
```
|
|
Примечание:
|
|
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. Количество переменных не ограничено.
|
|
6. При использовании Unicode следует использовать функцию ksCalculateW.
|
|
|
|
|
|
## ksCalculate, ksCalculateReset - пример использования
|
|
|
|
//очистить массив переменных
|
|
ksCalculateReset ();
|
|
char buf [128];
|
|
double resD;
|
|
//добавить переменную A1 = 100
|
|
int rezI = ksCalculate ("A1 = 100", &resD);
|
|
sprintf (buf,"resD = %f rezI = %d", resD, rezI);
|
|
Message (buf);
|
|
//добавить переменную A2 = 200
|
|
rezI = ksCalculate ("A2 = 200", &resD);
|
|
sprintf (buf,"resD = %f rezI = %d", resD, rezI);
|
|
Message (buf);
|
|
//подсчитать результат выражения
|
|
rezI = ksCalculate ("(A1 A2) * sqrt(4)", &resD);
|
|
sprintf (buf,"resD = %f rezI = %d", resD, rezI);
|
|
Message (buf);
|