Создание макросов, редактор макросов |
|
Окно редактора макросов
Для создания макросов предназначен специальный Редактор макросов. Он представляет собой интегрированную в T-FLEX среду разработки макросов, содержащую полный набор средств редактирования и отладки. Для написания макроса не нужно никаких других приложений и систем программирования. Все инструменты заложены внутри Редактора макросов.
Открыть редактор макросов можно при помощи команды:
Клавиатура |
Текстовое меню |
Пиктограмма |
<WM> |
«Сервис|Редактор макросов» |
Редактор макросов работает параллельно с основным окном T-FLEX CAD. То есть при открытом окне редактора макросов можно совершать различные действия в окне самого приложения T-FLEX CAD (открывать/закрывать документы, например).
На рисунке ниже показаны основные инструменты редактора макросов.
Управлять отображением служебных окон и панелей инструментов редактора макросов можно с помощью текстового меню “Вид”. Расположение всех служебных окон редактора макросов можно настраивать так же, как это делается со служебными окнами главного окна T-FLEX CAD. Их можно “привязать” к краям рабочего окна, сделать “всплывающими” или вывести в “плавающий” режим. В целях экономии рабочего места экрана часть окон можно объединить в одном групповом окне. Неиспользуемые служебные окна можно отключить. |
В окне “Проекты” отображаются Проекты, доступные для редактирования. Это файлы, открытые в окне T-FLEX CAD, а также документы из директории “…/Program/Macros”. С помощью данного окна можно просматривать структуру Проектов, а также выполнять различные действия над их элементами (создавать модули/формы, открывать их на редактирование и т.п.).
Окно “Проекты” редактора макросов и служебное окно “Макросы” работают синхронно. Если закрыть файл Проекта (документ) в TFLEX CAD, то он будет закрыт и в окне “Проекты” редактора макросов. Аналогично, после создания и отладки макроса в Редакторе макросов он появится в окне “Макросы” TFLEX CAD.
Создание/редактирование кодов модулей и содержимого форм Проекта осуществляется в рабочем окне редактора макросов. Это основное окно редактора макросов. Код каждого модуля или формы Проекта открывается в отдельном окне. Для переключения между окнами модулей и форм используются закладки этих окон, расположенные в верхней части рабочего окна редактора макросов. Окна кода можно объединять в вертикальные или горизонтальные группы.
Окна “Свойства” и “Инструменты” необходимы для создания/редактирования графических форм Проектов. Окна “Точки прерывания” и “Выходные данные” используются в процессе компиляции и отладки созданного модуля.
Управление Проектами. Структура Проекта
Для управления Проектами в редакторе макросов используется окно “Проекты”. При открытии редактора макросов в данном окне отображаются все доступные на данный момент Проекты. Это все открытые в текущем приложении T-FLEX CAD документы, а также Проекты, хранящиеся в специальной папке “…T-FLEX CAD/Program/Macros/”. Работа с несколькими Проектами может идти параллельно.
Каждый Проект отображается в виде иерархической структуры, включающей в себя наборы модулей, форм и ссылок.
При написании макросов в среде T-FLEX CAD используется модульное программирование. Модульное программирование – это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняется определённым правилам.
Модуль – программная единица, включающая в себя различные компоненты (типы, константы, переменные, пространства имён, классы, процедуры и функции). Макрос с точки зрения программного кода есть процедура – часть программы, предназначенная для выполнения отдельной конкретной задачи.
Форма – это диалоговое окно макроса, на котором могут быть размещены элементы управления (текст, кнопки, редакторы, переключатели и т.д.), используемые при работе макроса. Более подробно работа с этим окном будет рассмотрена далее в этой главе в параграфе “Создание макросов с экранными формами”.
Ссылки нужны для того, чтобы получить доступ к свойствам, методам и событиям определённого объекта и использовать этот объект при программировании макроса. Например, для использования команд T-FLEX CAD в Проекте необходимо иметь ссылку на TFlexAPI.dll. При создании нового проекта в него уже добавлены основные ссылки для использования системных объектов, а также данных и объектов TFLEX CAD.
Проект может включать в себя любое количество модулей, форм и ссылок. В свою очередь, каждый модуль Проекта может содержать любое количество макросов.
Чтобы избежать проблемы повторяющихся имён макросов в сложных Проектах, можно использовать пространства имён.
Для любого объекта дерева Проектов (Проекта, папки модулей или отдельного модуля, формы, ссылки) доступно контекстное меню с набором специальных команд. Эти команды позволяют переименовать выбранный Проект, добавить в него новый модуль или форму, и т.д. Часть этих команд также можно вызвать из текстового меню “Проект” и с одноимённой инструментальной панели. |
Создание Проекта. Свойства Проекта
Для создания нового Проекта откройте новый документ в T-FLEX CAD. В окне “Проекты” в редакторе макросов автоматически появится новый Проект. Структура этого Проекта будет содержать только ссылки.
По умолчанию для любого нового Проекта используется язык программирования C#. Если необходимо использовать другой язык программирования, необходимо указать это сразу после создания нового Проекта. Смена языка программирования Проекта после создания модулей и форм приводит к тому к неактуальности кода уже существующих модулей и форм. В такой ситуации необходимо будет удалить все модули и формы Проекта, а затем создать их заново.
Язык программирования Проекта (макроса) указывается в диалоге свойств Проекта:
Клавиатура |
Текстовое меню |
Пиктограмма |
<WM> |
«Проект|Свойства…» |
Диалог свойств Проекта также можно вызвать из контекстного меню Проекта в окне “Проекты”.
После вызова этой команды будет отображен диалог со свойствами текущего Проекта. В поле “Проект” данного диалога показывается имя Проекта. В поле “Документ” отображено имя файла TFLEX CAD, в котором содержится данный Проект. В выпадающем списке “Язык” можно выбрать язык программирования данного Проекта. В настоящий момент возможен выбор следующих языков программирования: Visual Basic, C#. |
Дополнительный параметр “Отлаживаемый метод” используется только в режиме отладки макроса. Если режим отладки не используется, то метод можно не выбирать.
Для задания отлаживаемого метода необходимо нажать кнопку [Изменить…]. В результате будет вызван диалог со списком методов текущего проекта. Работа с этим диалогом описана в разделе “Отладка макроса”.
Создание модулей. Окно кода модуля
После выбора языка программирования Проекта можно создавать необходимые модули и формы.
Создать новый модуль в Проекте просто. Достаточно установить курсор на заголовок “Модули” в дереве Проекта (окно “Проекты”), нажать и вызвать команду “Добавить” из появившегося контекстного меню. Вызвать команду можно также из текстового меню или с инструментальной панели “Проект” редактора макросов:
Клавиатура |
Текстовое меню |
Пиктограмма |
- |
«Проект|Добавить модуль» |
В результате в рабочем окне редактора макросов откроется новое окно с кодом модуля. В этом окне автоматически уже будет создана часть кода, объявлены ссылки, пространство имён, класс и процедура.
Для создания простого макроса достаточно написать одну процедуру и скомпилировать Проект.
Обратите внимание, что по умолчанию новый Проект содержит только стандартные ссылки на четыре библиотеки. Если в макросе будет использоваться библиотека, ссылки на которую нет в стандартном списке, пользователю необходимо добавить её в список ссылок самостоятельно. Для этого можно воспользоваться командой:
Клавиатура |
Текстовое меню |
Пиктограмма |
- |
«Проект|Добавить ссылку» |
Эту команду можно вызвать и из контекстного меню окна “Проекты”. Для этого выберите в дереве текущего Проекта раздел “Ссылки” и нажмите . В появившемся контекстном меню будет доступна команда “Добавить”.
Управление окнами кода модулей
Код каждого модуля Проекта открывается в отдельном окне. Для переключения между окнами модулей используются закладки, расположенные в верхней части рабочего окна. Окна кода можно объединять в вертикальные или горизонтальные группы.
Для управления окнами модулей используются команды текстового меню “Окно”.
Настройки редактора кода
Окно кода модулей представляет собой текстовый редактор со стандартными возможностями по редактированию текста (“Копировать”, “Вставить” и т.д.). Команды для работы с текстом доступны в контекстном меню, на инструментальной панели “Стандартная” и в текстовом меню “Правка”. Кроме того, в диалоге настроек рабочего окна можно задать специфические настройки редактора кода: автоматическая нумерация строк, автоматическое создание отступов, выделение цветом различных синтаксических единиц кода и т.д.
Настройки редактора кода модуля задаются с помощью команды:
Клавиатура |
Текстовое меню |
Пиктограмма |
- |
«Вид|Настройки редактора…» |
- |
При вызове команды открывается окно настроек редактора кода.
На закладке “Редактор” задаются следующие параметры: Группа параметров “Настройки окна”: Вертикальная линейка и Горизонтальная линейка. Данные параметры управляют отображением полос прокрутки в окнах кода; Номер строки. Параметр, отвечающий за отображение номеров строк кода; Поле меток. Данный параметр управляет отображением поля меток назначенных закладок и точек прерывания в левой части окон кода; Collapsible Nodes. Показать\скрыть узлы, позволяющие сворачивать участки кода. Автоотступ. Если данный флажок установлен, каждой создаваемой новой строке кода автоматически назначается такой же отступ, как у предыдущей строки; Virtual space. Когда данный параметр включен, курсор можно поместить в любое место окна кода. При отключенном параметре курсор устанавливается только в пределах существующего текста; Синтаксическая подсветка. Параметр разрешает выделение разными цветами различных синтаксических структур кода. Цветовая гамма выделения задаётся на закладке “Цвета синтаксиса” данного диалога; Параметр “Tabs/Размер” задаёт длину символов табуляции, используемых для создания автоматического отступа строк кода. Единицей задания длины является ширина символа пробела; |
Группа параметров “Курсор замены” определяет вид курсора в режиме замены текста.
Последний параметр данной закладки – “Автоматически пересчитывать внешне изменённые файлы” – используется в ситуациях, когда документ Проекта открыт одновременно в нескольких приложениях T-FLEX CAD. При установленном флажке Проект будет автоматически синхронизироваться во всех приложениях.
На двух других закладках диалога настроек – закладке “Шрифт” и закладке “Цвета синтаксиса” – задаются параметры шрифта, используемого для отображения кода, и параметры цветового выделения различных синтаксических структур кода.
Использование закладок
Для удобства работы с большим кодом в окне редактора кода можно назначать закладки (метки) на отдельные строки кода. Закладки позволяют быстро перемещаться в окне кода от одной помеченной строки кода к другой.
Для добавления закладки необходимо установить курсор на нужную строку кода и вызвать команду “Добавить/Удалить закладку”:
Клавиатура |
Текстовое меню |
Пиктограмма |
<Ctrl><F2> |
«Правка|Закладки|Добавить/удалить закладку» |
После вызова команды в окне кода слева от выбранной строки появится метка закладки (если область меток в окне кода включена).
После “расстановки” закладок можно будет быстро перемещаться по тексту модуля с помощью команд:
Клавиатура |
Текстовое меню |
Пиктограмма |
<F2> |
«Правка|Закладки|Перейти к следующей закладке» |
|
<Shift><F2> |
«Правка|Закладки|Перейти к предыдущей закладке» |
Метка активной закладки (то есть закладки, на строке которой в данный момент находится курсор) выделяется цветом.
Удаление закладки осуществляется повторным вызовом команды “Добавить/Удалить закладку” для помеченной строки кода.
Пример макроса 1
В качестве примера создадим макрос, который будет автоматически строить линию построения – окружность и строчный текст, привязанный к узлу и этой окружности.
Для этого создайте в T-FLEX CAD новый 2D документ. В редакторе макросов выберите его Проект в дереве проектов (окно “Проект”) и в нём создайте новый модуль. В окно кода модуля вставьте следующий текст.
// Объявление ссылок
using System;
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;
// Объявление класса
public class NewMacroClass
{
// Объявление процедуры (имя макроса)
public static void CreateText()
{
// Создание объекта document – документ, активный в текущий момент времени
Document document = TFlex.Application.ActiveDocument;
// Открытие блока изменения документа
document.BeginChanges("Создание текста");
// Создание объекта text – строчный текст
LineText text = new LineText(document);
// Создание свободных узлов в документе с координатами (150,100) и (150,140)
FreeNode node1 = new FreeNode(document,150,100);
FreeNode node2 = new FreeNode(document,150,140);
// Построение окружности по центру и точки, через которую она проходит
CircleConstruction circle = new CircleConstruction(document);
circle.SetCenterAndNode(node1,node2);
// Задание параметров объекта text
text = new LineText(document);
FontStyle style = text.FontStyle;
style.FontName = "Arial";
style.Bold = true;
style.Italic = true;
text.Color = 1;
text.Node = node2;
text.Circle = circle;
text.TextValue = "Текст по окружности";
text.HorizontalAlignment = TextHorizontalAlignment.Center;
//Закрытие блока изменения документа
document.EndChanges();
}
}
После написания кода макроса необходимо скомпилировать его Проект.