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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > План кабельных сетей - алгоритм автоматизации построения и программирование?

План кабельных сетей - алгоритм автоматизации построения и программирование?

Ответ
Поиск в этой теме
Непрочитано 20.09.2010, 11:59 4 |
План кабельных сетей - алгоритм автоматизации построения и программирование?
Frigate
 
КИП, АСУ ТП, слаботочка
 
Москва-Тюмень
Регистрация: 02.09.2010
Сообщений: 422

Добрый день, коллеги!


Программу ADV_Toolkit ver 1.1 вы можете скачать внизу этого сообщения.

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

ПЕРВОНАЧАЛЬНЫЙ МОЙ ПОСТ===============================
Занимаюсь КИП и решил постепенно автоматизировать рутинные процессы проектирования.
Нужно: автоматизировать некоторые моменты создания плана кабельных сетей.
Дано: план эстакад, который берем у электриков. Таким образом, графическое представление плана трасс есть. На плане есть много позиций (блок-боксы, здания, площадки технологические), от которых кидаем кабель. ТО, что внутри площадок и блок-боксов нас пока не интересует - это делаем отдельными комплектами, попозиционно.
Итак, к примеру, от позиции 1 надо проложить 5 кабелей с маркировкой С1-1-1...С1-1-5 по уже имеющимся эстакадам (линиям).

Конкретика - что нужно получить в результате: щелкнуть в плане кабельных сетей на любой точке на линии, обозначающей трассы, и получить список (list) кабелей, проходящих через данную точку (табличку с номерами кабелей смогу и сам нарисовать, надеюсь :-) ). Для проверки нужна возможность включить отображение трассировки любого из кабелей, которые будут использоваться в проекте.

Отсюда и сам вопрос - как это можно реализовать? При помощи чего? Ну а потом уже буду пытаться это сделать, надеясь на вашу помощь.


Была сначала такая идея:
по имеющемуся плану кабельных сетей мышкой прощелкать все узлы (повороты, начало и конец) трассы, например, от позиции 1 до позиции 15 (в позиции 15 будет операторная, где стоят шкафы АСУ). Автокад должен запомнить трассу (напр., по указанным узловым точкам построить полилинию и ассоциировать ее с определенным номером кабеля (напр., С1-1-1), т.е она должна будет обозначать трассировку кабеля на плане.
Сначала хотел создать блок, напр. cable-trace с атрибутом - номером кабеля. В этот блок программно включить полилинию, обозначающую трассу. Но потом уже дошло :-) что полилиния, обозначающая трассировку кабеля С1-1-1 включится во все вхождения блока, а это уже мягко говоря не то ))). Вот и сижу пока в тупике, пытаюсь придумать другие варианты.

Буду рад идеям знающих

Сразу хочу сказать, что в "САПРе на базе Автокад" этого не нашел, хотя может плохо искал...

КОНЕЦ ПЕРВОНАЧАЛЬНОГО ПОСТА=========================================

ОБНОВЛЕНИЯ:

===============================
Выкладываю релиз 1.05 ADV_CAD

Версия 1.05. Изменения:

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

ДОПОЛНЕНИЕ:

- исправил неверную работу программы "Редактирование трассы кабеля": при входе в программу, но досрочном выходе из нее(по указанию <Выход из программы>), изменений в базу не вносилось (так и должно быть), но сама трасса удалялась из базы данных!

необходимо заменить в скачанном архиве файл
adv-programme-cable-routings-edit-one.fas
на новый, который находится в архиве
adv-programme-cable-routings-edit-one.rar

Релиз 1.10

Все практически сделано с нуля. Так что нет особого смысла описывать изменения.
Теперь в папке с программой ЕСТЬ HELP.
Просто скопируйте к себе на комп и распакуйте архив в корневой каталог диска C:.
В HELP есть описание дальнейшей установки, которое сводится (в самом простом варианте) к загрузка fas-модуля, выполняющего настройку AutoCADа.


ADV_Toolkit ver. 1.1

Изменений много.
Основное:
- автоматическая трассировка кабеля по указанным начальной и конечной точке. Более подробно - читайте в Хелпфайле в папке ADV_CAD_HELP (эту папку еще не переименовал, оказывается ). Важно: если у вас поменялась хоть как-нибудь трасса, то для корректной автотрассировки нужно нажать кнопку "Подготовить к трассировке" в диалоговом окне создания кабелей.
- создание кабелей при помощи диалогового окна. В будущем все программы будут переведены в режим диалога. Это преследовало целью уход от указания блоков кабеля на чертеже, а выбор из списка. ТОже немного подробнее читайте в хелпе.
- немного переделал блоки, теперь длина в блок кабеля вставляется сразу с суффиксом - ВНИМАНИЕ!!!
- на подкачке стоят программы из форума - перенумерация по renum, записная книжка - по NBOOK и NBOOK1 - вызов через комстроку.
- начал работу с БД изделий, пока сделал парочку кранов-вентилей (закладные конструкции) для КИПиА - по крайней мере там. где я работал, мы часто сами учитывали закладные, иногда - технологи.

Главное - хочется, чтобы вы потестили автотрассировку. Я ее гонял во всех режимах - было все ок. Но мало ли... Ну и сам диалог создания кабелей с кучей функций, сохранением настроек диалога на время сеанса - тоже стоило непало усилий.

В общем, жду конструктивной критики и пожеланий по тем моментам, что дополнил в программе

Дополнение - подредактировал программку создания трассы по аналогу. Скачайте лисп-файл и замените им такой же в папке с прогой. Теперь работает как надо! :-)

Дополнение от 21.04.2012:
добавил программку для массовой печати чертежей. Я о ней уже писал в теме, но сейчас выкладываю новую версию, где можно выбрать и самому указать стиль печати - монохром или акад (т.е. цветной) или свой стиль. Справка - в файле readme.txt

ПРограммка - в папке PRINT FORMATS, внутри папки ADV_Toolkit. Но - может работать без проги (сделана независимой).

Дополнение от 16.05.2013:

Прога печати (в архиве PRINT FORMTS_dyn.rar) теперь с динблоком моей новой рамки (саму рамку можно подгонять как вам угодно, лишь только оставьте имя блока и атрибут FORMAT, по которому прога определяет нужный формат листа печатающего устройства.

Вложения
Тип файла: rar ADV_Toolkit_ver.1.1.rar (2.39 Мб, 2589 просмотров)
Тип файла: lsp adv-programme-cable-routings-create-by-analogue.lsp (6.3 Кб, 1573 просмотров)
Тип файла: rar PRINT FORMATS.rar (6.1 Кб, 1159 просмотров)
Тип файла: rar PRINT FORMATS_dyn.rar (41.0 Кб, 818 просмотров)


Последний раз редактировалось Frigate, 16.05.2013 в 01:36.
Просмотров: 289146
 
Непрочитано 27.10.2011, 16:47
#201
WST


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


Frigate
Спасибо тебе добрый человек
WST вне форума  
 
Непрочитано 27.10.2011, 22:27
#202
Alexeipost


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


Я сделал атрибут "НОМЕР_КАБЕЛЯ" первым атрибутом в блоке, чтобы прога number.dvb могла перенумеровывать (и переименовывать) номер кабеля.
Ну и еще увеличил все в сто раз, чтобы шрифт был 300, а длина кабеля была в мм (ну привык я так )
Твою программу использую для телефонной распределительной сети, для ЛВС. Для пожарки, охранки и электрики пока не использовал - не было случая.
Alexeipost вне форума  
 
Непрочитано 29.10.2011, 15:58
#203
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
но по обновлению перечня кабелей могу сразу ответить - это unreal
Очень плохо. внесение изменений в чертеж обычное дело... Вовсе не обезательно делать изменения в выносках в реальном времени, вполне достаточно команды которая будет пробегать по выноскам и перестраивать списки. Отредактировал кабели, запустил команду, готово.
У меня в зкаде выноски обновляются при регенерации чертежа, пока не приделал это обновление очень парился с ручным обновлением (пересозданием) выносок
zamtmn вне форума  
 
Автор темы   Непрочитано 31.10.2011, 14:19
#204
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


zamtmn,

чтобы сделать автоматическую замену, нужно, как минимум, где-то хранить всю инфу о таких перечнях - точка трассы, в которой смотрим перечень проходящих кабелей, точка, от которой строится перечень, число столбцов для построения перечня... Но - пользователь, сделав перечень, потом может захотеть его удалить, а чтобы это отследить, уже нужно использовать реакторы. В общем, муторно очень получается, много неясностей... Даже просто пользователь передвинет перечень кабелей, а при обновлении перечень появится в изначально указанном при его создании месте... В общем - так не получится, ИМХО.

Да и просто заменить 10-20 перечней - это займет несколько минут.

Если кабеля, приведенного в перечне, уже нет в БД чертежа (был удален), то метка такого кабеля будет в перечне подсвечена красным. Можно также сделать уведомление, что такие-то кабели (вновь добалвенные) не указаны ни в одной ментке кабелей в перечнях - это будет подсказка пользователю. Но полностьбю автоматом это сделать не получится (я по крайней мере не знаю как).
Frigate вне форума  
 
Непрочитано 01.11.2011, 07:49
#205
Alexeipost


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


я похоже чего-то не догоняю, но почему нельзя сделать так:
1) поиск блока "adv_cable_text_label";
2) определение на какую точку указывает этот блок (взять координаты блока и прикрепленной к нему линии (слой "adv_КИП_тонкий"));
3) запуск программы "adv-programme-cable-routings-cables-cut_set" (координаты вставки берутся из найденного блока);
4) Если старое значение атрибута "НОМЕР_КАБЕЛЯ_МЕТКА" блока "adv_cable_text_label" совпадает с новым значением - то ничего не делать;
5) Если старое значение не равно новому значению, то удалить старый блок "adv_cable_text_label" и вставить на его место новый блок;
6) Если нового значения нету (кабель удален), то сделать выбор а) пометить красным, б) удалить;
7) Последний блок? а) да см. п. 8, б) нет см. п. 1;
8) Выход
Alexeipost вне форума  
 
Автор темы   Непрочитано 01.11.2011, 13:37
#206
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
1) поиск блока "adv_cable_text_label";
2) определение на какую точку указывает этот блок (взять координаты блока и прикрепленной к нему линии (слой "adv_КИП_тонкий"));
3) запуск программы "adv-programme-cable-routings-cables-cut_set" (координаты вставки берутся из найденного блока);
4) Если старое значение атрибута "НОМЕР_КАБЕЛЯ_МЕТКА" блока "adv_cable_text_label" совпадает с новым значением - то ничего не делать;
5) Если старое значение не равно новому значению, то удалить старый блок "adv_cable_text_label" и вставить на его место новый блок;
6) Если нового значения нету (кабель удален), то сделать выбор а) пометить красным, б) удалить;
7) Последний блок? а) да см. п. 8, б) нет см. п. 1;
8) Выход
если б все было так просто :-)

Основная неточность у тебя в том, что пользователь может выбрать показать перечень отдельно, потоком, без соединительной линии (так, к примеру, делает WST).
Далее - см. мою цитату:
Цитата:
чтобы сделать автоматическую замену, нужно, как минимум, где-то хранить всю инфу о таких перечнях - точка трассы, в которой смотрим перечень проходящих кабелей, точка, от которой строится перечень, число столбцов для построения перечня... Но - пользователь, сделав перечень, потом может захотеть его удалить, а чтобы это отследить, уже нужно использовать реакторы. В общем, муторно очень получается, много неясностей... Даже просто пользователь передвинет перечень кабелей, а при обновлении перечень появится в изначально указанном при его создании месте...
Да, если б все оставляли линию связи, то можно было бы циклическим перебором все блоков-меток кабеля определить группы блоков (которые имеют хотя б одну общую точку). В этом случае можно определять число столбцов перечня, кабели, уже не проходящие через указанную точку сечения трассы, удалять либо подсвечивать, добавлять новые метки кабелей.
Хотя такое будет непросто запрограммить - во всяком случае вот это:
Цитата:
циклическим перебором все блоков-меток кабеля определить группы блоков (которые имеют хотя б одну общую точку).
так...

корявенький, но вариант, могу предложить!

помимо линии связи в слое (слой "adv_КИП_тонкий") рисовать еще одну линию в непечатаемом слое каком-нить (типа "adv_noprint_link") еще одну линию. И ее проводить в любом случае - со связью вставляется перечень или без. Но - если пользователь захочет в дальнейшем перетащить перечень кабелей в др. место, то он должен будет самостоятельно присоединить линию к перетащенному в др. место перечню. Надеюсь, понятно написал )))

Если такой вариант устроит, то я учту его в дальнейшем.

ПС КОнечно, можно, наверное, сделать линию самопривязывавющуюся линию при помощи реакторов - но это мне не кажется слишком надежным решением, реакторы легко поломать непоследовательоными действиями, даже случайно.
Хотя, это уже надо спецов в ЛИСПе спрашивать.
Frigate вне форума  
 
Непрочитано 01.11.2011, 13:48
#207
Alexeipost


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


А если к атрибутам блока "adv_cable_text_label" добавить атрибут в который будет записываться координаты точки, в которой проходят кабели (та точка куда тыкает эзер чтобы показать какие кабели проходят через эту точку, а не та точка в которой потом располагается блок). Т.е. у каждого блока будет привязка.
Alexeipost вне форума  
 
Автор темы   Непрочитано 01.11.2011, 14:13
#208
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


Alexeipost,

хороший вариант, гораздо проще будет процедура обработки таких перечней. ТОлько одно НО: любое перемещение самой трассы ( в процессе редактирования плана трасс) - а эстакады у нас меняются часто - и точки не будут совпадать.
А это , кстати, надо будет учесть в любом случае )))

Хотя конечно такие подвижки можно оставить на совести пользователя. Типа подвинуть можно, но тогда заново придется все перечни кабелей создавать, если хочешь автоматического обновления при изменениях. Либо пусть сам вносит изменения полуавтоматически, как уже предусмотрено прогой.
Frigate вне форума  
 
Непрочитано 01.11.2011, 15:20
#209
Alexeipost


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


Надо начать, а в процессе использованию (юзерования) будут появляться новые идеи.
Alexeipost вне форума  
 
Автор темы   Непрочитано 01.11.2011, 16:40
#210
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


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

===========================================
ДОБАВИЛ через 2 дня:

Создал пока список всеъ нужных изменений, большинство из них были раньше в планах, когда еще занимался прогой. Теперь просмотрю все свои записи старые и идеи. А уже потом буду решать, как рациональнее воплотить все в проге.

Да, с тем, чтобы сделать несколько участков трассы для одного кабеля, БЕЗ общей точки - примерно решил. НО - масштаб у этих планов должен быть одинаковым. Этажи здания например, как у WST. А если планы с разными масштабами, то можно будет делать только в разных файлах.
Так пойдет?
Мне нужны ответы, т.к. это определит направление изменений в проге.

Последний раз редактировалось Frigate, 03.11.2011 в 09:59.
Frigate вне форума  
 
Непрочитано 04.11.2011, 22:16
#211
WST


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


Frigate
Меня это конечно устраивает. И у меня иногда бывают планы в разных масштабах но очень редко чаще всего отдельные помещения в здание такие как электрощитовые, котельные и.т.д то есть помещения в основном небольшого размера но с большим количеством электрооборудования и/или электроприёмников но это не беда до сих пор справлялся и дальше справлюсь. Лучше иметь возможность создавать несколько участков трассы одного кабеля без общей точки и работать в одном файле со всеми планами чем не иметь этого Я ТАК ДУМАЮ. И если я что то не путаю сейчас ведь тоже нет возможности работать в одном файле с планами разного масштаба, ведь масштаб можно задать только один раз при первой прорисовки трассы, или это не так?

Последний раз редактировалось WST, 05.11.2011 в 00:14.
WST вне форума  
 
Непрочитано 04.11.2011, 22:54
#212
Alexeipost


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


2 WST Масштаб можно поменять потом. Я для этого вытащил на кнопку функцию "adv-programme-cable-routings-coeffs-change".
По поводу разных масштабов - я делаю все в натуральную величину, и потом уже на листах (если нужно) в видовых экранах выставляю нужный масштаб и выноски делаю тоже на листах. А кабели в модели остаются.

Лучше несколько участков трассы для одного кабеля в одном файле в одном масштабе.
Alexeipost вне форума  
 
Автор темы   Непрочитано 05.11.2011, 00:40
#213
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


Хорошо, коллеги, я к этому и склоняюсь. "Надйем консенсус и ногами его, ногами" ("Ширли-мырли")

Offtop: Пошел прогить )))

Все спят, а я ...

вывод - программист - это не профессия, а диагноз
Все ИМХО
Frigate вне форума  
 
Непрочитано 06.11.2011, 16:53
#214
Alexeipost


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


Кстати, тут недавно сравнил рабочий комп и домашний. Так вот, на домашнем компе на автокаде есть меню сверху "ADV_CAD", а на работе такого нету. Автокады одинаковые - 2011. Как вытащить меню на рабочем компе?
Alexeipost вне форума  
 
Непрочитано 06.11.2011, 19:09
#215
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Может быть, AutoCAD'ы-то и одинаковые, но дополнения, установленные на них - точно разные. Ищи приложение, которое загружает это меню.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.11.2011, 09:59
#216
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


Alexeipost,

я с таким тоже сталкивался несколько раз - не скажу с чем связано.
Но есть 2 способа, которые скорее всего помогут.
1. Сохрани свое рабочее пространство (Сервис-Рабочие пространства-Сохранить текущее как). Потом выбери другое рабочее пространство - и опять вернись к сохраненному. Типа перегрузки рабочего пространства.
2. ПРосто еще раз запусти мое приложение (как бы переустанови) - оно перезапишется и скорее всего появится в главном меню. Важно - у тебя должен быть открыт 1 файл в автокаде, не больше! (у меня именно так получилось - больше не экспериментировал, не было времени).

===== добавлено:
Вчера исправил автотрассировку кабеля по уже прорисованным линиям трасс. Автотрассировка (или автораскладка) кабеля происходит путем указания начальной и конечной точки кабельной трассы - сама трасса строится автоматом, если возможны несколько вариантов трассы, то строится минимальная по длине трасса.
Возник небольшой затык, но уже подсказали мне на этом форуме, как изменить одну функцию. Теперь, надеюсь, смогу представить новую версию уже скоро.
Еще уточнил, как правильно использовать командный метод для разрыва отрезков - надо перед вводом каждой точки отключать привязки:
Код:
[Выделить все]
(vl-cmdf "_.break" ent "_none" pt "_none" pt)
Не знаю, поможет ли это уйти от ошибок, которые на эхтом месте вываливаются в моей проге...
А самое главное - разобрался, почему жутко тупила прога, даже хотел как-то алгоритм менять. Оказалось дело не в нем, а в том, что забыл одну внутреннюю переменную указать в списке локальных при определении функции. Она была глобальной, в ней был список, длина которого увеличивалась кратно при каждом запуске функции ))) ВОт такое значение имеет такая незначительная вроде бы ошибка.

Как дооформлю автотрассировку, займусь текущими вопросами из списка- всеми вашими пожеланиями.

Последний раз редактировалось Frigate, 07.11.2011 в 15:29.
Frigate вне форума  
 
Непрочитано 07.11.2011, 15:41
#217
WST


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


Frigate
Жду с нетерпением новую версию программы
WST вне форума  
 
Автор темы   Непрочитано 18.11.2011, 09:34
#218
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


WST,

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

измененный файл - в первом сообщении
Frigate вне форума  
 
Непрочитано 18.11.2011, 11:01
#219
WST


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


Цитата:
Сообщение от Frigate Посмотреть сообщение
WST,

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

измененный файл - в первом сообщении
Frigate
Огромное спасибо это как раз то что мне нужно
WST вне форума  
 
Автор темы   Непрочитано 18.11.2011, 11:29
#220
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


WST,

гут

попозже продолжу )
Frigate вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > План кабельных сетей - алгоритм автоматизации построения и программирование?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте программу для построения профилей наружных сетей? dextron3 Вертикальные решения на базе AutoCAD 18 11.03.2012 16:37
Сводный план сетей proekt_mep Инженерные сети 42 16.06.2011 23:09
Ищу книгу "Проектирование кабельных сетей и проводок" под редакцией Г.Е.Храпченко 1980 Инзиля Поиск литературы, чертежей, моделей и прочих материалов 8 03.02.2009 14:47