Использование макросов

Создание, подключение и использование макросов

Макрос – макрокоманда, или записанный пользователем программный алгоритм действий для выполнения рутинных процедур. В составе SimInTech имеются соответствующие инструменты, позволяющие использовать макросы.

Макрос представляет собой скрипт на языке программирования SimInTech. Написание и отладку текста скрипта можно выполнять в окне скрипта схемного окна.

Допустим, есть необходимость регулярно проводить над схемами проектов один и тот же набор действий, например, устанавливать определенный коэффициент усиления всех интеграторов, переименовывать все блоки по определенному шаблону, а также изменять цвет всех объектов типа «Круг». Для выполнения этих действий можно написать следующий текст программы на скриптовом языке SimInTech и сохранить его в виде простого текстового файла:

b = "block_";
j = 1;
i = 1;
while I <= getobjcount do begin //для всех объектов на схеме
id = getobj(i); //получаем идентификатор объекта 
//если объект является интегратором, то устанавливаем ему коэффициент усиления
if getpropasstring(id,"ClassName") = "Интегратор" then
begin
setpropevalstring(id,"k",0.33);
end; //если объект является залитым кругом, то задаем его цвет
if getpropasstring(id,"ClassName") = "FillCircle" then begin
setpropevalstring(id,"color",65280);
end; //для всех объектов кроме линий связи задаем имя в формате block_+i 
if getpropasstring(id,"ClassName") <> "Математическая связь" then
begin num = floattostr(j);
setpropevalstring(id,"Name", b+num);
j = j+1;
end;
i = i + 1;
end;

Данная программа будет являться макрокомандой или макросом, который устанавливает коэффициент усиления равный 0.33 для всех блоков-интеграторов схемы, назначает всем блокам имена формата «block_» + порядковый номер блока, а также перекрашивает все графические примитивы типа «Круг» в красный цвет.

Подключение макроса с помощью пункта меню "Инструменты"

Первым способом подключения макроса является добавление его в качестве нового инструмента, доступного через пункт главного меню "Инструменты". Для этого, предварительно отлаженный текст скрипта макроса необходимо сохранить в простой текстовый файл с расширением .txt. Дальнейший алгоритм следующий:

  1. Выполнить команду Инструменты → Настройка в главном меню SimInTech. Откроется окно «Настройка инструментов», в котором нужно нажать на кнопку «Добавить», после чего в списке инструментов появится пункт «Новый инструмент».

    Рисунок 1. Окно настройки инструментов после добавления нового инструмента

  2. Нажатием кнопки «Свойства» можно открыть окно редактирования свойств инструмента. В поле «Название инструмента» вводится имя для макроса, а в поле «Программа» необходимо выбрать пункт выпадающего меню «macros». После чего в поле «Параметры запуска/имя файла макроса» необходимо прописать путь к текстовому файлу, в котором находится текст макроса. После этого, окно свойств нового инструмента должно выглядеть примерно, как на рисунке ниже.

    Рисунок 2. Окно «Свойства инструмента», настроенное на созданный макрос

  3. Нажатием кнопки Ок закрыть окно настройки инструментов.

После добавления макроса в виде инструмента можно изменять его исходный код в текстовом файле и в следующий раз, при запуске созданного инструмента, будет исполняться уже обновленный код.

Добавление макроса в библиотеку блоков

В качестве альтернативы добавлению макроса в качестве инструмента, можно добавить его в виде кнопки на панель блоков, добавив к одной из библиотек. Это удобно когда необходимо перенести набор макросов (в виде файла библиотеки блоков) между разными рабочими станциями SimInTech. В качестве минуса такого решения можно отметить то, что текст скрипта хранится непосредственно в библиотеке блоков, а не во внешнем тексовом файле, который можно оперативно менять. Тем не менее, текст такого макроса можно менять с помощью инструмента редактирования библиотеки (Файл → Редактировать библиотеку).

Алгоритм добавления макроса в пустую библиотеку блоков следующий:
  1. Делаем пустую библиотеку:

    Меню – Файл – Редактировать библиотеку – Кнопка очистить библиотеку классов.

  2. В библиотеке блоков делаем новый пустой блок
    Создаём страницу (кнопка Добавить в разделе Страницы). Добавляем созданный блок на страницу кнопкой
  3. Затем переходим в раздел «Свойства записей» и для созданной пустой записи настраиваем имя, название, фильтр и изображение на палитре блоков. В разделе «Скрипт записи» необходимо вставить скрипт макроса на встроенном языке программирования, который будет вызываться при нажатии на кнопку в палитре блоков, соответствующей данной записи. При этом, если запись создавалась как пустая, то будет вызван просто скрипт (если он не пустой). Если же запись хранит один или несколько блоков, то тогда сначала производится вставка блока(ов) из хранилища записи, а потом вызывается скрипт – таким образом можно выполнить произвольную начальную параметризацию блоков или же реализовать автоматическое соединение вставленных блоков с другими объектами схемы. Макросы написанные для записей библиотеки выполняются в контексте активного проекта если таковой открыт, если же проект не открыт, то выполняются вне контекста проекта (будут не доступны функции доступные только внутри графических контейнеров).
  4. Сохранить созданную библиотеку блоков, нажав кнопку Сохранить библиотеку в файл.
  5. Подключить созданную библиотеку к палитре блоков выбрав в меню Файл-Загрузить библиотеку если выбираем в качестве текущей или же через окно настроек программы Файл-Параметры, закладка «Библиотеки блоков».

Использование макроса

Рассмотрим использование макросов на примере схемы, которая позволит реализовать весь функционал макрокоманды.

Рисунок 3. Схема проекта

В случае макроса, добавленного в виде инструмента, вызов происходит с помощью команды главного меню "Инструменты" (в данном случае Инструменты → Тестовый макрос).

Рисунок 4. Запуск макроса из меню "Инструменты"

В случае макроса, добавленного в виде элемента библиотеки блоков, вызов происходит нажатием соответствующей кнопки на палитре блоков

Рисунок 5. Запуск макроса из библиотеки блоков

Не зависимо от способа запуска, в результате применения макроса имена блоков на листе схемы изменятся, коэффициенты усиления интегратора станут равными 0.33, а графические примитивы окрасятся в красный цвет.

Рисунок 6. Результат применения созданного макроса

Таким образом удалось решить сразу несколько задач с помощью применения одной макрокоманды. В большинстве случаев механизм макросов позволят сильно ускорить и облегчить выполнение многих часто-повторяющихся рутинных процедур.