Приёмы работы / Моделирование |
Создание, подключение и использование макросов
Макрос – макрокоманда, или записанный пользователем программный алгоритм действий для выполнения рутинных процедур. В составе 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. Окно настройки инструментов после добавления нового инструмента
Рисунок 2. Окно «Свойства инструмента», настроенное на созданный макрос
После добавления макроса в виде инструмента можно изменять его исходный код в текстовом файле и в следующий раз, при запуске созданного инструмента, будет исполняться уже обновленный код.
В качестве альтернативы добавлению макроса в качестве инструмента, можно добавить его в виде кнопки на панель блоков, добавив к одной из библиотек. Это удобно когда необходимо перенести набор макросов (в виде файла библиотеки блоков) между разными рабочими станциями SimInTech. В качестве минуса такого решения можно отметить то, что текст скрипта хранится непосредственно в библиотеке блоков, а не во внешнем тексовом файле, который можно оперативно менять. Тем не менее, текст такого макроса можно менять с помощью инструмента редактирования библиотеки (Файл → Редактировать библиотеку).
Меню – Файл – Редактировать библиотеку – Кнопка очистить библиотеку классов.
Рассмотрим использование макросов на примере схемы, которая позволит реализовать весь функционал макрокоманды.
Рисунок 3. Схема проекта
В случае макроса, добавленного в виде инструмента, вызов происходит с помощью команды главного меню "Инструменты" (в данном случае Инструменты → Тестовый макрос).
Рисунок 4. Запуск макроса из меню "Инструменты"
Рисунок 5. Запуск макроса из библиотеки блоков
Не зависимо от способа запуска, в результате применения макроса имена блоков на листе схемы изменятся, коэффициенты усиления интегратора станут равными 0.33, а графические примитивы окрасятся в красный цвет.
Рисунок 6. Результат применения созданного макроса
Таким образом удалось решить сразу несколько задач с помощью применения одной макрокоманды. В большинстве случаев механизм макросов позволят сильно ускорить и облегчить выполнение многих часто-повторяющихся рутинных процедур.