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

Свойство "Шаблон автозаполнения" в списке свойств графического примитива
С её помощью пользователи могут описывать шаблоны:
- - для набора сигналов проекта необходимых данному блоку (либо внутренних сигналов группы, если объект размещён в группе);
- - для связей между сигналами и свойствами блока;
- - для генерации исполняемого скрипта.
Порядок действий при использовании шаблонов следующий. Сначала шаблон описывается в соответствующем свойстве исходного блока, после чего этот блок копируется требуемое количество раз. Затем, чтобы описанные в шаблоне настройки были применены в проекте, нужно выделить все созданные блоки с шаблоном и воспользоваться пунктом меню в главном окне "ГО:Сервис ® Генерация сигналов и связей", либо пунктом меню "Сервис ® Генерация сигналов и связей" в меню графического редактора, если работа ведётся в графическом контейнере.
Шаблон задаётся посредством команд с параметрами, записываемыми через запятую. Если содержащийся в параметре текст должен содержать запятые, его необходимо окружать кавычками.
Для автоматической подстановки в код шаблона значений свойств блока в строковом виде используется конструкция $self.<PropName>$, которая при генерации заменяется на значение свойства данного блока. Вместо <PropName> должно быть вписано имя свойства блока, значение которого мы хотим получить. Например, следующий код шаблона для блока с именем FillRect3
SIGNAL $self.Name$_sig
приведёт к созданию сигнала проекта с именем FillRect3_sig.
Таким образом, у пользователей есть возможность создания большого количества однотипных блоков с единоразовой автоматической генерацией всего перечня необходимых сигналов, созданием связей и автонаписанием скриптов.
Вообще, использование конструкции $self.<PropName>$ в шаблонах не является обязательным, пользователь может указывать имена сигналов, созданных без использования шаблонов. Это может быть полезно при объявлении связей сигнала со свойством блока, если нужно управлять большим количеством блоков с помощью одного общего сигнала.

Пример использования конструкции $self.<PropName>$ для описания различных вариантов связей для набора однотипных блоков
Для шаблонов есть ограничения:
- нельзя генерировать внешние свойства для группы;
- при удалении блока из проекта сгенерированные для него ранее сигналы не будут удалены из проекта.
При необходимости оставшиеся сигналы нужно будет удалить вручную, вызвав окно "Сигналы" через пункт меню главного окна "ГО:Графика ® Сигналы…", либо через пункт "Сервис ® Сигналы…" в графическом редакторе.
Команды
| SIGNAL | Объявление сигнала | ||
|
Формат команды |
|||
|
SIGNAL <Имя>, <Режим>, <Тип данных>, <Название>, <Значение по умолчанию> |
|||
|
Краткий формат команды |
|||
|
SIGNAL <Имя> |
|||
|
Параметры |
Возможные значения |
||
| Имя | Имя сигнала, используемое при обращении к его содержимому в скрипте, редакторе связей и т.д. Если сигнал с заданным именем уже существует в проекте, команда будет проигнорирована. | ||
| Режим | Определяет направление передачи данных (игнорируется при локальном моделировании). | In | значение сигнала считывается, |
| Out | значение сигнала записывается | ||
| Ненаправленный | значение сигнала считывается и записывается. | ||
| Тип данных |
Тип данных, хранящихся в сигнале.
|
INTEGER | целое |
| BOOLEAN | вещественное | ||
| ARRAY | массив вещественных чисел | ||
| COLOR | цвет | ||
| Название |
Текстовое описание сигнала. Значение по умолчанию – значение, присваиваемое сигналу при запуске расчёта. |
||
| Значение по умолчанию | Значение, присваиваемое сигналу при запуске расчёта. | в соответствии с выбранным типом данных | |
При задании шаблона в кратком формате будет создан сигнал со следующими параметрами:
| Имя | Режим | Тип данных | Название | Значение по умолчанию |
| заданное имя | In | BOOLEAN | заданное имя | 0 |
Пример
Для примитива Rectangle3 по команде
SIGNAL $self.Name$_count1, Out, INTEGER, Счётчик циклов, 0
будет сгенерирован сигнал со следующими параметрами:
| Имя | Режим | Тип данных | Название | Значение по умолчанию |
| Rectangle3_count1 | Out | INTEGER | Счётчик циклов | 0 |
| CONNECT | Объявление связи между сигналом и свойством блока. Создания сигнала при этом не происходит, он должен быть создан отдельно. |
|
Формат команды |
|
|
CONNECT <Источник>, <Приемник> |
|
|
Параметры |
|
| Источник | Имя сигнала, значения которого будут записываться в приёмник. |
| Приемник | Имя свойства блока, в которое будут записываться значения источника. |
Пример
Для примитива Rectangle3 по команде
CONNECT Signal1, $self.Name$.Width
будет сгенерирована связь сигнала Signal1 с шириной прямоугольника Rectangle3.Width
Пример
Для примитива Rectangle3 по команде
SCRIPT $self.Name$.Width=0
будет сгенерирован следующий код скрипта:
Rectangle3.Width=0