Проникающая гидроизоляция бетона
Показать сообщение отдельно
Непрочитано 03.10.2011, 18:15 1 | #1
C# .net Работа с групповыми линиями для электриков - обсуждение
bargool
 
Санкт-Петербург
Регистрация: 16.08.2006
Сообщений: 501

Программу делал для облегчения труда электриков при работе с планами проводок
В очередной раз подредактировал текст сообщения, обновил вложения.
Самая главная задача, из-за которой начался сыр-бор - сложности с подсчетом длин групповых линий на планах, дальше всё нарастает вокруг этого.
Предполагается черчение кабельных линий стандартными средствами Autocad, далее к этим линиям цепляется информация об их принадлежности к группам, после чего можно с ними творить всякие-разные вещи.
Цепляется эта самая информация с помощью Xrecord. В связи с этим, важно помнить, что Xrecord штатными средствами автокада вы не увидите, копируя линию в новый файл вы копируете и всю информацию, внесенную моей программой.
Важно: в связи с тем, что группы цепляются ко всей автокадовской линии или полилинии, на ответвлениях эти линии/полилинии должны прерываться.

Команды, доступные на данный момент:
  1. BEGroupsEdit - вывод окна для работы с базой данных проекта. Аккуратней, если при работе с базой данных какие-то группы были изменены/удалены и при нажатии на OK при выходе из окна, программа откроет все файлы проектов, произведёт данные изменения и сохранит файлы. БД проекта хранится в файле ElectroProject.xml, к сожалению, на данный момент, все файлы проекта должны лежать в одном каталоге
  2. BEAdd - добавление примитивов к группе, тут же можно создать новую группу
  3. BEDel - удаление группы из примитива, саму группу из базы не удаляет
  4. BEChGr - поменять группу у примитива
  5. BEGet - покажет к каким группам принадлежит примитив
  6. BESel - выделит все примитивы конкретной группы
  7. BELeader - добавление выноски. Тут тоже своё ограничение - в файле уже должен быть определён блок "GroupLeader". Блок вставляется в текущем аннотативном масштабе. При вставке его можно отражать и вертеть для удобства
  8. BECalculate - производит расчёт длин групп и наиболее удалённых участков во всех файлах проекта (должны быть указаны в базе) и записывает данные в текстовые файлы CableShedule.txt и Specification.txt в каталоге чертежа. В начале каждой группы должен стоять блок начала группы, если на линии группы стоит блок перепада - перепад учитывается. При вызове команды можно указать коэффициент запаса в процентах (по умолчанию принимается коэфф. запаса 5%)
  9. BEDelAll - удаляет всю информацию о группах из всех примитивов чертежа. Полная очистка следов работы программы
  10. BELen - выведет длины всех групп в плане в текущем чертеже. Команда осталась с прошлых версий на всякий случай.
  11. BELongest - выведет самый длинный участок в группе. Начало группы должно быть отмечено блоком начала группы. Команда осталась с прошлых версий на всякий случай.

Пояснения:
Блок выноски - блок с именем GroupLeader
Блок начала группы - блок с именем LineStart - точка вставки блока должна совпадать с конточкой линии в начале групповой линии
Блок перепада высот - блок с именем HeightDifference - для того, что бы блок учитывался при расчётах, точка вставки должна находиться непосредственно на линии
Вспомогательные блоки ставим на непечатаемый слой, и вперёд.

В файле примера всё есть, надеюсь, всё будет понятно.

P.S.: Работоспособность проверялась только на 2010-м автокаде. Собирал с 2009 по 2012

Offtop: Конец исправлений
Я потихоньку работаю над программой, так что отзывы, пожелания по улучшению, новым возможностям и отчеты об ошибках крайне приветствуются.

Исходные коды выложу также позже. Выложил
UPD. Подправил ссылку на исходники

UPD3: Обновил список команд, чтобы не вводить в заблуждение старой информацией
UPD4: Обновил программу до версии 0.6, см. описание и вложения к топику
UPD5: Обновил программу до версии 0.6.5, теперь при изменении маркировок групп или их удалении обновляются выноски
UPD 02.08.2012: Обновил программу до версии 0.6.7, новая команда и пояснения здесь

Вложения
Тип файла: dwg Sample.dwg (201.0 Кб, 14410 просмотров)
Тип файла: dwg GroupLeader.dwg (80.7 Кб, 14266 просмотров)
Тип файла: dwg HeightDifference.dwg (74.6 Кб, 14219 просмотров)
Тип файла: dwg LineStart.dwg (73.8 Кб, 14230 просмотров)
Тип файла: rar BargElectro v0.6.7.rar (208.2 Кб, 342 просмотров)


Последний раз редактировалось bargool, 03.12.2012 в 19:32. Причина: Обновил программу до версии 0.6.7
Просмотров: 25680
 
Размещение рекламы