I love Ukraine

Утилита "Группировка блоков обозначений кабелей"


Как запустить утилиту, где искать

Внешний вид утилиты и описание интерфейса

Пример упорядочивания блоков

Примечания


При расчете кабельного журнала создаются группы блоков обозначающих кабели проходящие на отдельных участках кабельных трасс. Это заготовки для создания плана кабельных трасс. Штука полезная. Но есть следующая проблема. 

При изменении принципиальных схем и состава кабелей в принципиальных схемах, при повторном расчете кабельного журнала естественно меняется количество блоков в группах. Казалось бы ничего страшного. Однако размеры блока фиксированные и если появлялась марка кабеля большой длинны, то она вылазила за границы блока. Это некрасиво и требовало ручного изменения размеров, подгонки длины блока. Тогда было принято решение корректировать размеры блока по размерам наиболее длинной марки кабеля при расчете. Теперь размеры блоков формируются динамически. Но и тут засада.

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

Чтобы убрать рутинную работу по "причесыванию" блоков, и создана эта функция.


  • Как запустить утилиту, где искать

Утилиту можно найти и запустить из двух мест:

Первое - на закладке "Утилиты всякие" кнопкой  

Второе - на закладке "Кабельный журнал" -> "Расчет длин кабелей..." -> "Нарисовать обозначение кабелей" -> кнопка "Упорядочить, собрать в группы"


  • Внешний вид утилиты и описание интерфейса

Внешний вид утилиты выглядит так:


Кнопка "Упаковать" - запускает на исполнение с выбранными настройками.

Кнопка "Close" - закрывает окно.

Описание настроек:

- Кнопки позволяют выбрать как упорядочивать прямоугольники. Кнопка "расставить по колонкам" выбирает расположение блоков по фиксированному количеству блоков в ряду или в колонке вне зависимости от размеров. Кнопка "Вписать в прямоугольник" выбирает режим "впихивания" в заданную область. Область задается двумя точками. Если количество блоков и их размеры не позволяют расположить блоки в заданной области, то они будут выходить за заданную область в заданном направлении.

- Кнопки дополняют вышеописанную пару кнопок и определяют направление в котором растет группа. То есть, если выбрано "по вертикали", то блоки будут располагаться рядами по горизонтали. КОличество в ряду определяется или количеством блоков в ряду или шириной заданной области.

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

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

- число блоков в ряд или в столбец при включенном режиме "расставить по колонкам". В режиме "вписать в прямоугольник" не имеет смысла - там подбор числа идет по размерам блоков.

- можно установить зазоры между блоками. Зачем - хз, просто бонус.



  • Пример упорядочивания блоков

Допустим размещение блоков выглядит так:

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

Настройки оставляем по умолчанию (ка на картинке выше): сортировка включена, пять блоков в ряд, направление по колонкам, расставлять по числу блоков в ряд, число блоков в ряду 5 штук.

Получаем запрос выбора блоков:

 

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

Далее нажимаем "Упаковать". Выбранная точка вставки обозначена стрелочкой.


Теперь тоже самое но с направление по горизонтали:


Теперь выберем режим "Вписать в прямоугольник" и направление по вертикали:

Рамка задана фиолетовой пунктирной линией. Как видно блоков больше чем заданная область и они "вылезли" вниз за рамку.


Теперь тоже самое но с направление по горизонтали:

Теперь вылезли за край по горизонтали.


Укажем зазоры равные 1 мм. Парметры последнего "опыта" не меняем. Получим все тоже самое, но с зазором.


Выбор нужных блоков из кучи:

Делаем две группы блоков с разными именами блоков. Одни будут желтые, другие зеленые.Сделаем из них одну большую кучу, как на картинке.

 

Установим переключатель "Выбрать конкретный тип..." и запускаем процесс.

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

Далее получаем запрос на выбор блоков. Выбираю всю кучу. 

Далее указываем точку вставки и получаем вот такой результат:


  • Примечания

 - Вообще эта штука работает со всеми блоками, не разбираясь что и как. Тупо берет блоки и расставляет. То есть можно применить к любому блоку. Однако при сортировке она ищет атрибут "NameCab" с маркой кабеля. Если атрибута нет, то это считается за случайную ошибку и повторяется три раза с задержкой в 1 сек. То есть, если выбрать 1000 блоков без атрибута, то программа зависнет на 3000 сек пытаясь отсортировать что нашла.

Поэтому рекомендация - при сортировке иных блоков, без атрибута "NameCab", не включать сортировку.


Created with the Personal Edition of HelpNDoc: Create help files for the Qt Help Framework