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>
51 lines
2.6 KiB
Markdown
51 lines
2.6 KiB
Markdown
---
|
|
title: "ksSetCriticalProcess - Установить критический процесс"
|
|
type: guide
|
|
api: [api7]
|
|
tags: [guide, api7, kssetcriticalprocess]
|
|
sources:
|
|
- kssetcriticalprocess.html
|
|
---
|
|
|
|
*API экспортных функций > Функции работы с документами > Сервисные функции *
|
|
|
|
|
|
## ksSetCriticalProcess - Установить критический процесс
|
|
|
|
Пример...
|
|
Аналог данной функции при использовании Automation - метод KompasObject::ksSetCriticalProcess.
|
|
Синтаксис:
|
|
```
|
|
int ksSetCriticalProcess ();
|
|
Возвращаемое значение:
|
|
1 - в случае удачного завершения,
|
|
0 - в случае неудачи.
|
|
```
|
|
Примечание:
|
|
Работа процесса, вызванного прикладной библиотекой (например, Cursor или Placement), может быть принудительно прервана переходом к другому действию (команде). Чтобы запретить возможность принудительного прерывания такого процесса, перед его активизацией требуется вызвать данную функцию. Она сделает следующий за ней процесс "критическим", и при попытке его принудительного завершения будет выдано сообщение о необходимости корректного завершения процесса. После штатного завершения процесса признак "критического" процесса снимается, и для следующих процессов (при необходимости) функцию требуется вызывать заново.
|
|
|
|
|
|
## ksSetCriticalProcess - пример использования
|
|
|
|
reference pObj;
|
|
RequestInfo info;
|
|
double x, y;
|
|
memset(&info, 0, sizeof(info));
|
|
info.prompt = "Укажите объект";
|
|
int j =1;
|
|
while(j) {
|
|
if(YesNo("Включить критический режим?")==1)
|
|
ksSetCriticalProcess ();
|
|
j = Cursor(&info, &x ,&y, 0);
|
|
if(j && ExistObj(pObj = FindObj(x, y, 1e6))){
|
|
LightObj(pObj, 1);
|
|
Message("Выделили объект");
|
|
LightObj(pObj, 0);
|
|
}
|
|
int rez = ReturnResult();
|
|
Message(rez == etLibraryClose ? "принудительное завершение выполнения библиотеки"
|
|
: "Это не принудительное завершение");
|
|
if (rez != etLibraryClose)
|
|
j = YesNo("Продолжать?")==1;
|
|
}
|