Скрипт для генерации угловой спецификации по выделенным в дереве проекта листам
- Внешний вид скрипта и результат работы
О том, что делает скрипт понятно из названия, а вот то как он это делает представляет определенный интерес.
Что попадает в перечень (обрабатываются все символы, размещенные на выделенных листах):
- Изделия БД (здесь и далее - изделия, которые были "вытащены" в проект из БД)
- Изделия в проекте (здесь и далее - изделия, которые были созданы в проекте, путем присваивания поз. обозначений символам)
- Сборки с глубиной вложенности не более единицы (т.е. в сборку входят изделия, а не другие сборки), причем как созданные в проекте, так и взятые из БД.
- Клеммы (можно отключить в настройках)
- Изображения (можно отключить в настройках)
Принципы группировки изделий:
- Изделия в БД (и их изображения) - группируются, исходя из значений имени изделия в БД, атрибутов "Место и "Техн. хар-ка"
- Изделия в проекте - группируются исходя их значений атрибутов "Место и "Техн. хар-ка"
- Сборки (и их изображения) - группируются исходя из состава изделий, входящих в сборку (имен изделий в БД), и атрибутов "Место и "Техн. хар-ка"
Дополнительно: Если у изделия задан атрибут "Существующее оборудование", то он выносится отдельной строкой, т.е. не группируется.
Формирование полей происходит в автоматическом режиме (в настройках скрипта задаются перечни атрибутов-источников для каждого поля, из которых и формируется соответствующее поле), после завершения работы скрипта происходит так же запись результата в доп. атрибут. Строки возможно разделять/группировать в пределах разумного (т.е. не получится сгруппировать сборку с простым изделием и т.п.), а также удалять ненужные позиции. С помощью специального инструментария можно вынести в поля, доступные для редактирования значения любых атрибутов изделия/сборки. Самое главное отличие от скрипта, работающего в автоматическом режиме - можно показать состав сборки (например автоматический выключатель и доп. контакт, с указанием заказных номеров и количества. ) - для этого есть специальная кнопка, выводящаяся около каждой сборки.
Если было выбрано несколько листов, то изделия будут считаны со всех выделенных листов, а также будет выведено диалоговое окно, в котором будет предложено выбрать лист для размещения спецификации. Само создание спецификации на листе сводится к указанию формата штампа - для корректировки переноса строк. Если по какой-либо причине все строки не помещаются в одном столбце - происходит перенос строк во второй, и так далее. Если надпись не помещается в одной строке, то происходит автоперенос - в пределах одной строки реализовано три горизонтальных надписи для заполнения в каждом поле, если не хватает и х, то добавляется еще один символ строки и начинается его заполнение. Абсолютно аналогично обстоят дела с надписью "Место установки" - т.е. не произойдет случая, когда надпись "вылезет" за пределы символа или "обрежется", или символ налезет на штамп. Все придумано, все продумано
Всего не упомнил, да и не нужны здесь подробности реализации))) Видео во вложении