--- title: "Macro - Создать новый макроэлемент" type: guide api: [api7] tags: [guide, api7, macro] sources: - macro.html --- *API экспортных функций > Функции работы с графическим документом  > Создание графических объектов  > Работа с макроэлементами и библиотечными макроэлементами  > Функции работы с макроэлементами и библиотечными макроэлементами * ## Macro - Создать новый макроэлемент Пример... Аналог данной функции при использовании Automation - метод ksDocument2D::ksMacro. Синтаксис: ``` int Macro (unsigned char type); Входной параметр: type - тип макроэлемента: 0 - объединяет объекты текущего слоя, 1- включаемые объекты могут принадлежать разным слоям. Возвращаемое значение: 1 - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: 1.Макроэлемент - составной объект. 2.Объекты вида, вводимые между методами ksDocument2D_ksMacro и ksDocument2D_ksEndObj, принадлежат макроэлементу. EndObj возвращает указатель на макроэлемент. 3.Допускается вложенность макроэлементов друг в друга (максимальное число вложений не ограничено). ## Macro, EndObj - пример использования void Macro_Example (void) { Macro(); /* определение макроэлемента */ LineSeg (10, 10, 10, 20, 1); LineSeg (10, 20, 40, 20, 1); LineSeg (40, 20, 40, 30, 1); LineSeg (40, 30, 70, 30, 1); LineSeg (70, 30, 70, 10, 1); LineSeg (70, 10, 10, 10, 1); Macro (); /* вложенный макроэлемент */ LineSeg (40, 15, 50, 25, 1); LineSeg (50, 25, 60, 15, 1); LineSeg (60, 15, 40, 15, 1); EndObj(); EndObj(); /* закончить формирование макроэлемента */ }; /* Macro_Example */