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>
88 lines
3.8 KiB
Markdown
88 lines
3.8 KiB
Markdown
---
|
||
title: "ksOpenMacro - Открыть макроэлемент для редактирования"
|
||
type: guide
|
||
api: [api7]
|
||
tags: [guide, api7, ksopenmacro]
|
||
sources:
|
||
- ksopenmacro.html
|
||
---
|
||
|
||
*API экспортных функций > Функции работы с графическим документом > Создание графических объектов > Работа с макроэлементами и библиотечными макроэлементами > Функции работы с макроэлементами и библиотечными макроэлементами *
|
||
|
||
|
||
## ksOpenMacro - Открыть макроэлемент для редактирования
|
||
|
||
Пример...
|
||
Аналог данной функции при использовании Automation - метод ksDocument2D::ksOpenMacro.
|
||
Синтаксис:
|
||
```
|
||
int ksOpenMacro(reference macro);
|
||
Входной параметр:
|
||
macro - указатель на макроэлемент.
|
||
Возвращаемое значение:
|
||
1 - в случае успешного завершения,
|
||
0 - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
1. После вызова функции можно добавлять в macro новые объекты вида, использовать функцию FindObj; режим закрывается функцией EndObj();
|
||
2. Открыт доступ к внутренним объектам макроэлементов. Теперь при создании макроэлемента или при добавлении к макроэлементу новых объектов вида, на внутренние объекты выдается указатель (reference), как и на самостоятельные объекты вида.
|
||
Пример....
|
||
3. Допускается вводить пустой макроэлемент. Пустой макроэлемент является вырожденным объектом. Он живет только в период редактирования документа. После записи документа, в котором находился пустой макро, этот макро будет удален. Макроэлемент считается нормальным, если в нем находится хотя бы один внутренний объект.
|
||
Пример…
|
||
4. Функции работы с указателями на объекты допускают работу с внутренними объектами
|
||
макроэлемента. К ним относятся:
|
||
– CopyObj
|
||
– DecomposeObj
|
||
– DeleteObj
|
||
– GetObjGabaritRect
|
||
– GetObjParam
|
||
– ksEditViewObject
|
||
– LightObj
|
||
– MoveObj
|
||
– RotateObj
|
||
– SetObjParam
|
||
– SymmetryObj
|
||
– TransformObj
|
||
|
||
|
||
## ksOpenMacro - пример использования
|
||
|
||
Macro (0);
|
||
LineSeg(50,100, 100, 150, 1);
|
||
reference p = EndObj();
|
||
Message("Создан макроэлемент");
|
||
ksOpenMacro (p);
|
||
Macro (0);
|
||
reference cir = Circle(50, 50, 20, 1);
|
||
reference p1 = EndObj();
|
||
EndObj();
|
||
Message("Макроэлемент отредактирован");
|
||
|
||
|
||
## ksOpenMacro - пример использования
|
||
|
||
//самостоятельный объект вида
|
||
reference l = LineSeg(10, 10, 20, 20, 1);
|
||
Macro(0);
|
||
//внутренний объект макроэлемента
|
||
reference l1 = LineSeg(50,100, 100, 150, 1);
|
||
reference p = EndObj();
|
||
ksOpenMacro (p);
|
||
//внутренний объет макроэлемента
|
||
Macro(0);
|
||
reference cir = Circle(50, 50, 20, 1);
|
||
reference p1 = EndObj();
|
||
EndObj();
|
||
|
||
|
||
## ksOpenMacro - пример использования
|
||
|
||
Macro(0);
|
||
reference p = EndObj();
|
||
ksOpenMacro (p);
|
||
//внутренний объет макроэлемента
|
||
Macro(0);
|
||
reference cir = Circle(50, 50, 20, 1);
|
||
reference p1 = EndObj();
|
||
EndObj();
|