| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > C# .net Работа с групповыми линиями для электриков - обсуждение

C# .net Работа с групповыми линиями для электриков - обсуждение

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

Программу делал для облегчения труда электриков при работе с планами проводок
В очередной раз подредактировал текст сообщения, обновил вложения.
Самая главная задача, из-за которой начался сыр-бор - сложности с подсчетом длин групповых линий на планах, дальше всё нарастает вокруг этого.
Предполагается черчение кабельных линий стандартными средствами 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
DWG 2007
Sample.dwg (201.0 Кб, 14494 просмотров)
Тип файла: dwg
DWG 2007
GroupLeader.dwg (80.7 Кб, 14328 просмотров)
Тип файла: dwg
DWG 2007
HeightDifference.dwg (74.6 Кб, 14276 просмотров)
Тип файла: dwg
DWG 2007
LineStart.dwg (73.8 Кб, 14286 просмотров)
Тип файла: rar BargElectro v0.6.7.rar (208.2 Кб, 425 просмотров)


Последний раз редактировалось bargool, 03.12.2012 в 19:32. Причина: Обновил программу до версии 0.6.7
Просмотров: 34434
 
Непрочитано 23.10.2012, 10:06
#41
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Чтобы каждый день не набирать эту команду вручную.
Пришел на работу, загрузил комп, есть необходимость в данном инструменте - нажал на кнопку, загрузил. Нет необходимости - не нажимаешь на кнопку.
Alexeipost вне форума  
 
Непрочитано 23.10.2012, 10:14
#42
WST


 
Регистрация: 21.04.2011
Сообщений: 135


Alexeipost,
Тоже самое скопируй в файл .Lsp и его в автозагрузку и не нужна кнопка.
WST вне форума  
 
Непрочитано 23.10.2012, 10:29
#43
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Имея в автозагрузке, adv_toolkit, vetcad и десятка полтора примочек лисповских увидел, что комп немного начинает тормозить. Чтобы открыть файл и глянуть несколько линий, приходилось ждать пока прогрузится всё прописанное в автозагрузке. Убрал всё из автозагрузки и теперь подгружаю примочки, только если необходимо.
Alexeipost вне форума  
 
Автор темы   Непрочитано 26.10.2012, 17:30
#44
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Цитата:
Сообщение от WST Посмотреть сообщение
мне кажется что нужна переменная для масштаба чтобы выводило длину в м а не в мм иле см. Я обычно черчу в 100-м масштабе реже в 50-м и 200-м
Все файлы проекта в одном и том же масштабе? или бывают разные файлы с разными масштабами?
Цитата:
Сообщение от WST Посмотреть сообщение
Далее по тому что хотелось бы добавить в программу:
- подсчет длин кабеля по жильность для освещения (см. чертеж), как я вижу решения данной задачи есть блок на подобия твоего блока перепада высот
программа находит линии на которых есть эти блоки и записывает в расширенные данные что на определенном участке группы Гр-1
5 проводов длиной 5м на другом 4 провода длиной 10м и.т.д и при помощи команды вывести эту информацию
Да, вопрос разной жильности меня тоже занимает, но удобного механизма работы с этим (со стороны пользователя) я так и не придумал
Хочу ещё добавить блок, исключающий ветку из расчёта наиболее удалённого участка группы, а то, к примеру, для расчёта падения напряжения не нужна длина до очень далеко расположенных выключателей.. Можно, конечно, начинать линию до выключателей с промежутком, но это не наглядно
bargool вне форума  
 
Непрочитано 06.11.2012, 18:29
#45
Geniy_Dzydo


 
Регистрация: 26.12.2011
Сообщений: 322


А подскажите пожалуйста где найти файл ElectroProject.xml, где он лежит? или должен лежать?
Geniy_Dzydo вне форума  
 
Автор темы   Непрочитано 07.11.2012, 10:30
#46
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Geniy_Dzydo, файл автоматом создаётся рядом с dwg файлом, в котором вы запускаете команды данной программы. Вообще, это не слишком удобно - в след. версии сделаю диалог создания проекта.
bargool вне форума  
 
Непрочитано 19.11.2012, 23:01
#47
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


От щитка по одной трассе отходят три группы - создал три группы командой BEADD. Далее вставил блок GROUPLEADER. Ввел команду BELEADER - он "хватает" только верхнюю линию в трассе и показывает "ЩО-12.01" вместо "ЩО-12.01, ЩО-12.02, ЩО-12.03". Что делать?
Alexeipost вне форума  
 
Автор темы   Непрочитано 19.11.2012, 23:11
#48
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Группы "прицеплены" к разным линиям, идущим поверх друг-друга? Если так - я старался уйти от этого. В одном месте делаете одну линию (или полилинию), и к ней можно прицепить сколько угодно групп.
BELEADER читает список групп в расширенных данных выделенного примитива - ОДНОГО примитива! (т.е. в вышеозначенном варианте - группу верхнего примитива)
ох.. действительно нужна документация, слишком всё неочевидно у меня (но это непонятно без обсуждения, если честно)
bargool вне форума  
 
Непрочитано 21.11.2012, 08:50
#49
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Делаю вот так:
1. Расставляю светильники, выключатели, розетки, эл.оборудование, щитки.
2. Делю на группы (в уме).
3. Прокладываю полилинии от самого удаленного эл.потребителя в группе (см. п.2) до щитка.
4. Прокладываю полилинии от других эл. потребителей до полилинии в п.3.
И получается что возле щитка будет много совпадающих полилиний.
+ Vetcad'ом можно посчитать длину кабеля.
+ видно сколько кабелей проходит на данном участке.
- на сложном объекте, где много поворотов и много групп, получается много рутинной работы.
Alexeipost вне форума  
 
Автор темы   Непрочитано 21.11.2012, 10:46
#50
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Делаю вот так:
1. Расставляю светильники, выключатели, розетки, эл.оборудование, щитки.
2. Делю на группы (в уме).
3. Прокладываю полилинии от самого удаленного эл.потребителя в группе (см. п.2) до щитка.
4. Прокладываю полилинии от других эл. потребителей до полилинии в п.3.
И получается что возле щитка будет много совпадающих полилиний.
Я точно так же раньше делал. Не нравились эти налагающиеся друг на друга линии: сложно разобраться, любое изменение требует большого количество действий, ну и проч.
Я как раз от этого способа стремился уйти. То бишь использование моей программы подразумевает использование в каждом конкретном месте одной линии, а не множества накладывающихся. Посмотрите повнимательней пример в заглавном посте.
Цитата:
Сообщение от Alexeipost Посмотреть сообщение
получается много рутинной работы
Я очень не люблю рутинную работу
bargool вне форума  
 
Непрочитано 27.11.2012, 22:50
#51
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Сделал вроде все правильно и вот что получил:
Файл Группа Кабель Общая длина Наиболее удалённый участок
-ЭОМ Кабели.dwg ЩО-13.01 ВВГнг-ls 3x1.5 48912.2603317415 35113.0566380947
-ЭОМ Кабели.dwg ЩО-13.02 ВВГнг-ls 3x1.5 33348.0643688602 29334.1818940275
-ЭОМ Кабели.dwg ЩО-13.03 ВВГнг-ls 3x1.5 22228.6322956055 21087.3822956055
-ЭОМ Кабели.dwg ЩО-13.04 ВВГнг-ls 3x1.5 22019.4270942746 19736.9270942746
Итак 10 групп..... надписи сверху не так важны - подвинуть их я всегда смогу. Можно ли в проге задавать масштаб? Сам я люблю все делать в масштабе 1:100.
Далее возможно ли формировать не txt файл, а xls?
Когда много групп, то окно с добавлением групп растягивается, а вертикальный скролл не появляется. И потом за пределами экрана исчезает кнопка добавить......

Последний раз редактировалось Alexeipost, 28.11.2012 в 00:33.
Alexeipost вне форума  
 
Автор темы   Непрочитано 29.11.2012, 14:29
#52
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
надписи сверху не так важны - подвинуть их я всегда смогу.
там разделители - табуляция, при ctrl-c - ctrl-v в эксель вставится корректно по столбцам, вот только, разделителем десятичной части точку может не понять..
Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Можно ли в проге задавать масштаб?
Пока - нельзя. Запишу в пожелания
Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Далее возможно ли формировать не txt файл, а xls?
Это в планах есть.

Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Когда много групп, то окно с добавлением групп растягивается, а вертикальный скролл не появляется. И потом за пределами экрана исчезает кнопка добавить......
А вот это касяк, так касяяяяяк.. Исправил по-быстрому. Теперь макс. высота у этих окон - 600 пикселей. В будущем надо будет просто запоминать настройки пользователя.
В заглавном посте обновил программу, с исправленным багом с размерами окон.

Последний раз редактировалось bargool, 02.12.2012 в 23:16.
bargool вне форума  
 
Непрочитано 03.12.2012, 00:03
#53
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Есть ли возможность удаления всех названий групп. Сделал освещение (группы "ЩО-ХХ.УУ"), потом скопировал этот файл, переименовал и сделал электрооборудование. ВВел BEADD и тут вылез полный перечень всех групп "ЩО....". Сделал BeDell, BeDellAll - не помогает.
Alexeipost вне форума  
 
Автор темы   Непрочитано 03.12.2012, 12:02
#54
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Alexeipost, как заполняется список групп: программа вначале ищет группы в данном файле, потом ищет рядом с текущим dwg файл ElectroProject.xml - это база данных проекта. Забирает группы оттуда. И выдаёт общий список в окне BEAdd. Ведь потом будет единый файл для спецификации и для кабельного журнала, где будут данные по группам из всех файлов проекта (по крайней мере, я так подразумевал ), соответственно, и база одна. С небольшими проектами было неплохо, но вот каково с большими - не пробовал.
Можно, кстати, в блокноте глянуть ElectroProject.xml - там всё довольно наглядно.
bargool вне форума  
 
Непрочитано 03.12.2012, 13:16
#55
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Посмотрю.
А вот можно сделать так (ну чтобы для наглядности) чтобы показывал номер группы, наибольшую длину группы и общую длину кабеля в группе. И так по каждой группе. т.е. набираешь beadd (или begroupwalk) и там показывается все это.
Alexeipost вне форума  
 
Непрочитано 12.12.2012, 15:51
#56
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


а в для 64 бит данная программа работает?
Alexeipost вне форума  
 
Автор темы   Непрочитано 12.12.2012, 17:12
#57
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
А вот можно сделать так (ну чтобы для наглядности) чтобы показывал номер группы, наибольшую длину группы и общую длину кабеля в группе. И так по каждой группе. т.е. набираешь beadd (или begroupwalk) и там показывается все это.
Можно, конечно. Запишу в пожелания

Цитата:
Сообщение от Alexeipost Посмотреть сообщение
а в для 64 бит данная программа работает?
да, до 2011 автокада есть соответствующие сборки, для 2011 и 2012 отдельные сборки не требуются, они не зависят от битности
__________________
Алексей
bargool вне форума  
 
Непрочитано 13.12.2012, 13:38
#58
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Очень большой проект. Из-за этого приходится работать в сетевой папке.
И вот такую ошибку выдает.
При перемещении файлов на мой компьютер - все работает.
Можно ли организовать работу в сетевой папке? (Сетевая папка находится на другом компе.)
Миниатюры
Нажмите на изображение для увеличения
Название: Error.jpg
Просмотров: 92
Размер:	84.2 Кб
ID:	92364  
Вложения
Тип файла: doc Ошибка.doc (59.5 Кб, 148 просмотров)
Alexeipost вне форума  
 
Автор темы   Непрочитано 13.12.2012, 14:36
#59
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Alexeipost, проверьте, пожалуйста, файл точно находится по указанному пути?
Ограничений сеть/локально нет. У меня прекрасно работает в сети... Как вариант (если с путём всё в порядке), пока не разберёмся, можно открыть этот файл, при becalculate программа проверяет, открыты ли файлы из проекта, и тоже обрабатывает
__________________
Алексей
bargool вне форума  
 
Непрочитано 13.12.2012, 14:40
#60
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Подключил 6 файлов. Их все нужно открыть?
И еще - не делает выноски если групп больше 10.
Alexeipost вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > C# .net Работа с групповыми линиями для электриков - обсуждение

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Акты скрытых работ Витос Прочее. Архитектура и строительство 324 05.03.2015 12:24
Как в ACAD 2010 LT начертить мультилинию с цветной заливкой samaraa AutoCAD 4 26.10.2010 22:24