Знаете ли Вы?

Автор mike, 23 февраля 2016, 20:51:00

« назад - далее »

mike

Здравствуйте коллеги!
В этой ветке буду периодически делиться маленькими хитростями ЗВБ, которые существенно упрощают работу над проектами.

mike

Первый праздничный выпуск посвящен автоматизации именования пинов.
Суть проблемы:
Есть два макроса: МАКРОС-1 и МАКРОС-2. Эти макросы нужно вставить в МАКРОС-3.
В МАКРОСЕ-3 есть еще пять переменных. Названия выходов макросов 1 и 2, а так же всех пяти переменных, должны соответствовать названиям выходов макроса 3.
В сторонних пакетах проектирования данная работа вызывает исключительное уныние, т.к. предстоит рутинная работа по копированию/вставке названий.

ЗВБ позволяет облегчить задачу и свести рутинный процесс к минимуму.

Поехали:

mike

Создаем МАКРОС-1 и МАКРОС-2
Что будет внутри находиться не имеет значения. Я сделаю по 4 выхода.
Внутренний вид макросов показан на картинке.

mike

Создаю МАКРОС-3, внутри этого макроса создаю необходимые переменные и устанавливаю на сцену переменные и макросы 1 и 2

mike

#4
Кстати, что бы вытащить все переменные на сцену, достаточно выделить первую переменную, нажать Shift и выделить последнюю переменную и потянуть выделенный блок на сцену. Для произвольного выделения нескольких переменных вместо Shift необходимо использовать Ctrl

Должно получиться, как на картинках.

mike

Теперь выставим на сцену выход макроса и размножим его (ctrl+c / ctrl+v) в необходимом количестве.
Порядок представления и тип данных не имеет значения.

Снаружи макрос выглядит ужасно.

mike

Приведем его в порядок.
Выделяем пин выхода макроса 1 и нажимаем ctrl+c (то есть копируем пин макроса).
Затем выделяем необходимый выход в макросе 3 и нажимаем ctrl+shift+v
Название выхода макроса 3 изменится.

mike

Если типы данных отличаются, то при вставке свойств будет выведено окно с запросом на действие.

mike

Соглашаемся с изменением названия и типа данных.

Таким образом бОльшая часть рутинной работы выполнена в полуавтоматическом режиме.

В качестве заметки:
в ЗВБ реализован механизм копирования свойств. Поэтому, данным методом можно копировать свойства других объектов.

Творческих вам успехов, коллеги!
Надеюсь, этот инструмент сэкономит вам значительное количество времени.

Max

Предлагаю оформить это все не в виде темы на форуме а в виде документации... и выложить на сайте. Так будет правильнее (ИМХО)... на форум нужно "лезть" в последний момент... когда в документации нет ответа на этот вопрос...

mike

Конечно же это стоит в планах.
Почему сначала это пишется на форуме? Потому что хотим критики.
Нам важно знать ваши предложения и пожелания.

VoronovMaksim88

Вытаскивать все переменные на поляну разом - это удобно, отлично придумали!!!

Насчёт копирования свойств:
Думаю было бы удачнее сделать так: при создании выхода(входа) внутри макроса он не имеет ни типа ни имени и не отображается при выходе из макроса, если теперь к нему зацепить связь, то он автоматически приобретает её тип и её имя. Или же тип и имя можно задать вручную в свойствах входа. При таком подходе нет необходимости копировать свойства горячими клавишами.

Artem

Цитата: VoronovMaksim88 от 25 февраля 2016, 04:52:14
Или же тип и имя можно задать вручную в свойствах входа.

Так не получится. Может сложится ситуация, когда будут вытащены две или больше копий макросов. И появится возможность устанавливать им разные типы данных и имена для одних и тех же ножек.
Макрос это по сути тот же блок и поэтому у него должны жестко определены типы и названия входов/выходов уже на этапе, когда его вытаскивают на схему.
Кстати, такой вариант мы уже пробовали пол года назад. Но возникла куча проблем и пришлось от этой идеи отказаться.

mike

Продолжу про работу с пинами.
Есть маленькая хитрость.
Например, нужны одинаковые названия пинов входов одного макроса и выходов другого.
На помощь приходит копирование свойств пинов.
Пример в двух скриншотах.
На первом я копирую свойства входа макроса №1, затем переключаюсь в макрос №2 и вставляю свойства выхода. Получается быстро.

VoronovMaksim88

Ух ты.  Прикольно!