Files
kompas3d-mcp/docs/Kompas3D_SDK/guides/ksopenmacro.md
T
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

88 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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();