Поковыряемся в связях

Автор VoronovMaksim88, 05 июля 2015, 07:14:06

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

VoronovMaksim88

Уважаемые разработчики, прошу вас почитать мои рассуждения.

Кидаем на поляну два блока and, соединяем выход первого с любым входом второго, получаем именованную связь, кликаем по ней правой кнопкой. И внимательно всё проверяем.
Тип связи: понятно, работает.
Свойства-название: понятно, работает.
Свойства-блокировка: НЕ понятно. Для чего нужна блокировка связи ?
Закрепить\Освободить: НЕ понятно. Для макросов и блоков закрепление, насколько я понял, это тоже самое что блокировка т.е. фиксирование на поляне, запрет изменения положения, а для неименованных связей как это работает?
Разорвать связь: понятно работает.
При чём если соединить выход первого блока and с двумя входами второго блока and, выделить обе получившиеся связи и разорвать их, то zwb создаст две переменных, правильно ли это? Хорошо бы чтобы он их называл по разному.
Добавить\удалить сегмент: НЕ понятно. Как это работает?
Оптимизировать: понятно, работает. Но я бы всё же попросил сделать где-нибудь галочку "оптимизировать всегда", что бы zwb после любого перемещения сам сразу всё оптимизировал.
В конец\ В начало:  понятно, работает.
Удалить: работает.

Переделываем теперь связь в именованную, кликаем правой кнопкой и пройдемся по тем же пунктам:
Тип связи: понятно, работает.
Свойства-название: понятно, работает.
Свойства-блокировка: НЕ понятно. Для чего нужна блокировка связи ?
Закрепить\Освободить: НЕ понятно.
Разорвать связь: понятно работает. НО если выход первого блока AND соединить именованной связью с двумя входами второго блока and и попробовать разорвать, то ZWB завершает работу с ошибкой, без сохранения проекта. Поэтому я пишу этот текст второй раз ))
Добавить\Удалить сегмент, Оптимизировать: для именованной связи разве нужны эти опции ?
В начало\В конец, Удалить: понятно, работает.

Ещё на мой взгляд, важный момент - перенос именованной связи. Функция "перенос связи", я думаю, должна быть в контекстном меню самой связи, а не входа\выхода к которому она подключена. Ведь переносится именно связь, а не вход\выход. Я даже сперва не сразу нашёл где эта опция, думал для именованных связей не сделали ещё.

Благодарю за внимание.



Artem

1. Свойство Блокировка (команды Закрепить/Освободить) запрещает или разрешает изменять конфигурацию связи. То есть блокирует добавление новых сегментов линии связи и их перемещение. Для добавления сегмента необходимо вызвать контекстное меню около того отрезка которому хотим добавить. При этом этот отрезок связи делится пополам. Добавить новые сегменты можно только к тем отрезкам, которые не примыкают непосредственно к выходам блоков.
2. Пункты меню, относящиеся к блокировке связи в именованной связи не нужны, будут убраны в след. релизе.
3. Команда Разорвать связь переделана в новом релизе. Если к одному выходу подключены несколько связей, то переменная будет создаваться одна. Ошибка при вызове этой команды для именованных связей исправлена.
4. Оптимизация связей. Если производить перемещение блоков с нажатой кнопкой Shift, то все связи, подвязанные к нему будут оптимизированы.
5. По поводу переноса связи. Если этот пункт перенести в контекстное меню связи, то встает вопрос, что переносить - начало связи или конец. Так как при выделении связи (как обычной так и именованной) она выделяется вся целиком.

Artem

Обновление выложено на сервер

VoronovMaksim88

По поводу добавления сегментов можно чуть подробнее, со скриншотами. Что-то они не добавляется ни как.

mike

Попробовал создать видео. Это мой первый опыт, так что особо не пинайте.

http://www.youtube.com/watch?v=yRP1mXdUuL4

VoronovMaksim88

Спасибо, за видео. Наглядно понятно.
Но сегменты у меня всё таки иногда не добавляются, к сожалению закономерность установить не удалось.

mike

Мы немного ломаем трассировщик. Чуть позже подштукатурим. У меня то же пару раз отказался делать сегмент.

mike

Кстати, есть еще одна фишка.
Если собираешь макрос из кучи других макросов, то встает вопрос о именование ножек основного (большого макроса).
Сейчас эта проблема решается так:

  • Выделяем интересующую ногу, свойства которой нужно скопировать
  • Затем выделяем внутри основного макроса ногу, на которую надо скопировать свойства.
  • Делаем Ctrl+Shift+V
  • Нога приобретает свойства скопированной ноги (название и тип данных)
И вроде все хорошо, но группой нельзя скопировать. ЗВБ недоумевает ;) от такой задачи.

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

Как идея?

VoronovMaksim88

Хорошая, логичная мысль. Поддерживаю.

VoronovMaksim88

Цитата: Artem от 06 июля 2015, 10:36:35
5. По поводу переноса связи. Если этот пункт перенести в контекстное меню связи, то встает вопрос, что переносить - начало связи или конец. Так как при выделении связи (как обычной так и именованной) она выделяется вся целиком.

Да, выделяется она целиком, но я ж не могу кликнуть одновременно по входу и выходу правой кнопкой. (ну только если они не залезли друг на друга, хотя и в этом случае кто-то выше). Уверен, так было бы правильнее и удобнее.

ALexandr

Именованную связь нельзя переименовать двойным кликом, при этом на простой связи работает!

mike