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

Вернуться   Форум 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 Мб, 2585 просмотров)
Тип файла: lsp adv-programme-cable-routings-create-by-analogue.lsp (6.3 Кб, 1571 просмотров)
Тип файла: rar PRINT FORMATS.rar (6.1 Кб, 1157 просмотров)
Тип файла: rar PRINT FORMATS_dyn.rar (41.0 Кб, 816 просмотров)


Последний раз редактировалось Frigate, 16.05.2013 в 01:36.
Просмотров: 287944
 
Автор темы   Непрочитано 07.10.2010, 13:11
#61
Frigate

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


Цитата:
Сообщение от Lesha Посмотреть сообщение
Есть авт. подбор типа кабеля по типу эл. цепи (количества и сечения жил), но только для контрольных кабелей. Вручную можно указать любой тип кабеля.
интересно, а как это организовано? Типы кабелей, жильность подвираются из стандартного ряда, а данные эти - в отдельном файле лежат, каком?
Frigate вне форума  
 
Непрочитано 07.10.2010, 21:21
#62
Lesha


 
Регистрация: 25.09.2006
город Ч на Волге
Сообщений: 20
<phrase 1=


kp+, пригляжусь еще раз к Electrical. Когда в прошлый раз его пробовал, слишком многого от него хотел. Попробую смягчить требования, глядишь - сгодится.
Как вы будете поступать с отчетами на листах схем? т.е. обратная связь планируется?
Обратная связь планируется. Более того - она есть. У меня внешнее хранилище и обработчик данных -excel и есть механизм (фукнция) синхронизации данных таблицы acad и таблицы excel. Правда функция эта в рабочем акаде (на работе лиц 2005) вызывает огромные утечки памяти. Дома в 2010-м ничего подобного не замечается.
Генерировать все по одной кнопке - мечта . А есть ли такая софтина?
Lesha вне форума  
 
Непрочитано 08.10.2010, 00:30
#63
zamtmn

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


>>Генерировать все по одной кнопке - мечта . А есть ли такая софтина?

Есть. не софтина, а софтины, только с разного рода натяжками и оговорками)) и все их знают, но почемуто многие (большинство?) используют голый автокад и свои понятные только им приблуды)) мне вот больше нравится EPLAN - море своих заморочек, но в целом очень продуктивно.
Тоже хочется большего - пытаюсь родить свою всеобъемлющую приблуду))
zamtmn вне форума  
 
Автор темы   Непрочитано 16.10.2010, 13:33
#64
Frigate

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


Выношу на суд
Ну и может кому пригодится

Запрос пользователя на ввод поправочных коэффициентов на длину кабельной трассы:


Код:
[Выделить все]
;добавочный коэффициент
(setq flag T)

;устнавливаем значение поправочного добавочного коэффициента по умолчанию
(if routing_length_add_coeff
(setq default_coeff routing_length_add_coeff)
(setq default_coeff 15)
)

;спрашиваем у пользователя поправочный добавочный коэффициент на длину кабеля (в метрах)
(while flag
	(if   (not (setq temp_coeff
  		 (getint    (strcat "\nВведите добавочный коэффициент на длину трассы (в метрах) - любое целое, включая ноль <" 
		(itoa default_coeff) ">: "))))
	(setq temp_coeff default_coeff)
                  )

	(if (< temp_coeff 0 )
		(PRINC "\nНужно ввести целое неотрицательное число!")
		(setq flag nil)
	)
)
(setq routing_length_add_coeff temp_coeff)


;умножающий коэффициент

(setq flag T)

;устнавливаем значение поправочного умножающего коэффициента по умолчанию
(if routing_length_multip_coeff
(setq default_coeff (atoi (rtos (- ( * routing_length_multip_coeff 100) 100) 2 0)))
(setq default_coeff 20)
)

;спрашиваем у пользователя поправочный умноэающий коэффициент на длину кабеля (в процентах)
(while flag
	
	(if   (setq temp_coeff 
	 (getint    (strcat "\nВведите поправку (в процентах) на длину кабеля (целое число от 6 до 30) <" 
		(itoa default_coeff) ">: ")))	
	(setq temp_coeff (1+ (/ (float temp_coeff )100)))
	(setq temp_coeff (1+ (/ (float default_coeff) 100)))
                     )

	(if (or (< temp_coeff 1.06 ) (> temp_coeff 1.3))
		(PRINC "\nНужно ввести целое число в диапазоне от 6 до 30!")
		(setq flag nil)
	)
);_end while
(setq routing_length_multip_coeff temp_coeff)
Больше всего понравился способ преобразования REAL в INTEGER. Я делал через промежуточное преобразование в строку. Других приемлимых вариантов не нашел.



===================================добавлено==============================

Сегодня 2 программы довел до ума
"Создать трассу кабеля"
и
"Просмотр трассы кабеля".

Как и говорили мне вначале, хранение даных о трассе сделал в словаре самого файла чертежа, а не во внешнем файле.

Отлова ошибок в них нет правда. Но проверил почти все варианты ввода - косяки будут , только если юзер - "обезьяна с гранатой", и будет жать ESC )))

"Создать трассу кабеля":

Код:
[Выделить все]
(defun C:adv-programme-cable-routings-create-one
	( 
	/ 
	flag
	temp
	temp_coeff
	default_coeff
	cable
	cable_entity
	routing_list
	pline_obj
	routing_length
	calc_routing_length
	dict_vla_pointer
	cable_routing_data_list 
	adoc
	old_osmode
	)
(vl-load-com)

(vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))

;умножающий коэффициент
(setq flag T)
;устнавливаем значение поправочного умножающего коэффициента по умолчанию
(if routing_length_multip_coeff
(setq default_coeff (atoi (rtos (- ( * routing_length_multip_coeff 100) 100) 2 0)))
(setq default_coeff 20)
)
;спрашиваем у пользователя поправочный умножающий коэффициент на длину кабеля (в процентах)
(while flag	
	(if   (setq temp_coeff 
	 (getint    (strcat "\nВведите поправку (в процентах) на длину кабеля (целое число от 6 до 30) <" 
		(itoa default_coeff) ">: ")))	
	(setq temp_coeff (1+ (/ (float temp_coeff )100)))
	(setq temp_coeff (1+ (/ (float default_coeff) 100)))
                     )

	(if (or (< temp_coeff 1.06 ) (> temp_coeff 1.3))
		(PRINC "\nНужно ввести целое число в диапазоне от 6 до 30!")
		(setq flag nil)
	)
);_end while
(setq routing_length_multip_coeff temp_coeff)

;добавочный коэффициент
(setq flag T)
;устнавливаем значение поправочного добавочного коэффициента по умолчанию
(if routing_length_add_coeff
(setq default_coeff routing_length_add_coeff)
(setq default_coeff 15)
)
;спрашиваем у пользователя поправочный добавочный коэффициент на длину кабеля (в метрах)
(while flag
	(if   (not (setq temp_coeff
  		 (getint    (strcat "\nВведите добавочный коэффициент на длину трассы (в метрах) - любое целое, включая ноль <" 
		(itoa default_coeff) ">: "))))
	(setq temp_coeff default_coeff)
                  )

	(if (< temp_coeff 0 )
		(PRINC "\nНужно ввести целое неотрицательное число!")
		(setq flag nil)
	)
)
(setq routing_length_add_coeff temp_coeff)

;спрашиваем у пользователя масштабный коэффициент
;scale - глобальная переменная
(setq scale (adv-routings-cable_routings-get-scale-from-dictionary))
(if (not scale)
(setq scale (adv-routings-cable_routings-put-scale-to-dictionary (adv-geom-get-scale-dwg)))
)
(PRINC "Масштабный коэффициент: ")
(PRINC scale)
;присваиваем cable значение атрибута "НОМЕР_КАБЕЛЯ" в выбираемом блоке "adv_cable"
;(alert "\nВыберите блок с кабелем, для которого будете задавать трассировку!\n")

;if setq cable_entity
	(if (setq cable_entity
			(adv-blocks-select-block-with-attr-effname 
			"Выберите блок с кабелем, для которого будете задавать трассировку!"  
			"adv_cable"))
;PROGN setq cable_entity
 	(PROGN
	(setq cable (adv-blocks-get-attrib-value-from-block-entity  cable_entity "НОМЕР_КАБЕЛЯ"
		   );_end of adv-blocks-get-attrib-value-from-block-entity
	);_end of setq cable	

 	(PRINC (strcat "\n\nВы выбрали кабель под номером \"" cable "\"\n"))	

;запоминаем настоящее значение переменной привязок OSMODE
(setq old_osmode (getvar 'OSMODE))
;устанавлиаем привязки КОНточка и ПЕРесечение
(setvar 'OSMODE 33)

;создаем полилинию трассы и список точек трассы кабеля
;if setq routing_list
      (if 
         (setq routing_list (adv-geom-routing-click-points))
;PROGN setq routing_list
         (PROGN

;возвращаем старые привязки
(setvar 'OSMODE old_osmode)

;вновь рисуем полилинию трассы для визуализации
             (setq pline_obj (adv-draw-pline-add routing_list 0 60 6 0)) 
;вычисляем длину трассы кабеля на чертеже, перемножаем длину трассы кабеля на коэф. масштаба
;и получаем реальную длину трассы (разделив на 1000, чтобы получить длину в метрах)
;затем округляем до ближайшего БОЛЬШЕГО целого числа
            (setq routing_length (fix 
	(+
		(/
			(*
				scale (adv-geom-dist-points-count routing_list) 1.0
			)
		1000)
	1))
              );_end setq routing_length
;находим длину кабеля со всеми поправками, округление до целого числа происходит в меньшую сторону!!!
             (setq calc_routing_length 
	(atoi (rtos
		(+ 
			(* routing_length routing_length_multip_coeff)
		routing_length_add_coeff 1)
	2 0))
               )
               (alert (strcat "Трасса создана.\nИзмеренная по указанной трассе длина кабеля - " (itoa routing_length) 
		" м." "\nДлина в спецификацию (со всеми поправками) - "  
		(itoa calc_routing_length) " м."))
(setq cable_routing_data_list 
	(adv-routings-cable-routing-data-to-assoclist
	cable
	calc_routing_length
	routing_list
	routing_length_multip_coeff
	routing_length_add_coeff
	)
)
(setq dict_vla_pointer (adv-dict-get-dict-by-name "CABLE_ROUTINGS_000"))
(if 
      (not (setq dict_data (adv-dict-get-data dict_vla_pointer "adv_key")))
	(adv-dict-put-data dict_vla_pointer "adv_key" (list cable_routing_data_list))
	(adv-dict-put-data dict_vla_pointer "adv_key" (cons cable_routing_data_list dict_data))
)
(vla-delete pline_obj)
);_end PROGN if setq routing_list
);_end if setq routing_list
);_end PROGN setq cable_entity
);_end if setq cable_entity
 
(vla-endundomark adoc)

);_end C:adv-programme-cable-routings-create-one

Последний раз редактировалось Frigate, 17.10.2010 в 17:52.
Frigate вне форума  
 
Автор темы   Непрочитано 01.11.2010, 07:37
#65
Frigate

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


Приветствую всех! Долго уже не писал, командировка, дел куча...

Для плана трасс программа уже готова и функциональна. Если кому интересно, опишу ее и выложу здесь исходники.
Краткое описание:
если в схеме внешних соединений вместо круга с номером кабеля использовать мой блок, то можно, в результате использования моей программы, получить на схеме внешних длину этого кабеля. В плане трасс вся трассировка кабелей хранится в словаре. В другом словаре хранится задаваемый пользователем масштабный коэффициент. Можно в любой момент посмотреть трассировку кабеля на плане трасс (из той ли он позиции выходит и в ту ли позицию приходит). Можно получать перечень номеров кабелей, проходящих в указываемой пользователем точке трассы. Можно экспортировать данные в схему соединений внешних проводок - автоматически проставляются длины кабелей (реальные длины, с учетом всех поправок) в значение атрибута "ДЛИНА_КАБЕЛЯ" в моем блоке кабеля "adv_cable".

Это вкратце описание возможностей программы. Теперь планирую заняться схемой соединений внешних проводок, в т.ч. автозаполнением экспликации, общей спецификации по кабелям, выбор типа кабеля из базы данных при помощи диалогового окна, редадктирование используемых для прокладки кабелей длин и типов трубы и металлорукава. Для плана трасс планирую добавить автоподсчет необходимого количества лотков (прямых, угловых, Т-образных, количества полок и стоек.
Frigate вне форума  
 
Непрочитано 01.11.2010, 08:17
#66
zamtmn

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


>>Если кому интересно, опишу ее и выложу здесь исходники.
выкладывать и описывать надо даже если никому не интересно))

>>В плане трасс вся трассировка кабелей хранится в словаре
т.е. с "линейным" примитивом кабель ты решил не отождествлять и использовать свои програмки для создания-редактирования?
как обстоит дело с кабелями изображенными на разных планах или фрагментах? как оформил вертикальные участки?
zamtmn вне форума  
 
Автор темы   Непрочитано 01.11.2010, 09:10
#67
Frigate

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


Хорошо, выложу, немного попозже, сегодня или завтра.
Надо просто еще хоть небольшую справочку накатать, как и куда устанавливать. И как работать.
Система ведь ставится как тот же Express Tools - со своими меню и панельками.

Да, вся инфа о трассах хранится в словаре.

Я делал чисто из соображения нашей специфики. Программка оправдывает себя, когда мы делаем комплект чертежей по сетям, а не по конкретным площадкам (позициям). Т.е. кабель идет снаружи зданий и технологич. площадок - по эстакадам или в траншеях. И план всегда делается на 1 листе.
А вертик. участки никак не оформляются, сделал точно так же, как и сами считали до сих пор - ввод поправочных коэффициентов - в % и в метрах (умножающий и добавочный коэффициенты). Добавочный коэффициент как раз и учитывает подъемы и спуски на (с) эстакаду (-ы).
Самое главное, что дает программа уже сейчас - не только автоматич. простановка реальных (с учетом всех поправок) длин кабелей, но и автоматич. получения перечня всех кабелей, проходящих через указанную точку трассы (эстакады).
Frigate вне форума  
 
Непрочитано 01.11.2010, 09:39
#68
zamtmn

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


>>И план всегда делается на 1 листе.
На хорошем объекте редко так получается((, а даже если получается - всеравно присутствуют разрывы - показано начало и конец а "километры" середины вырезаны из соображений экономии бумаги.
Если это не учитывать - область применения программы будет очень мала.
Можно попробовать делать модель полностью, а в видовых экранах пробовать организовать фрагменты - но изза разных масштабов получится "некрасиво"
zamtmn вне форума  
 
Автор темы   Непрочитано 01.11.2010, 10:35
#69
Frigate

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


я понимаю, о чем ты. Но для нашей конкретики именно все сети на 1 листе. Есть, конечно, часть внешних кабелей, но по ним все будет решаться поправочным коэффициентом. Может другое решение еще придумаю, но пока так.

Кстати, небольшой ОФФ, - как вставить сюда файл? В архиве бы все скинул. Что-то не нахожу как...
Frigate вне форума  
 
Непрочитано 01.11.2010, 10:53
#70
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Frigate Посмотреть сообщение
как вставить сюда файл? В архиве бы все скинул. Что-то не нахожу как...
Как добавить вложение в сообщение?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.11.2010, 12:07
#71
Frigate

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


Кулик Алексей aka kpblc
спасибо, Алексей :-)

Прикладываю получившийся чертеж с планом трасс.

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

zamtmn

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

В общем, спасибо за подсказку :-)


============= после некоторого обдумывания наиболее оптимального решения ====================

пришел к такому варианту:

Надо учесть возможность наличия нескольких внешних планов трасс, где будет один кабель (больше 2-х планов трасс для кабеля). Т.е. надо суммировать при транслировании итоговые длины кабелей. В итоге, должен получиться ассоц. список вида: ((№ кабеля суммарная_реальная_длина) (№ кабеля суммарная_реальная_длина) … (№ кабеля суммарная_реальная_длина)).
И не надо в таком случае менять структуру ассоц. списка внутри каждого плана трасс!
В итоге – не нужно делить планы трасс на основные и НЕосновные! В течение одного сеанса Автокада нужно просто открыть все имеющиеся планы трасс, вся инфа на них суммируется (в каждом открытом файле надо будет нажать кнопку для транслирования имеющейся инфы) и будет передана во внепространственную переменную. Оттуда можно будет ее подкачивать из схем внешних соединений, чтобы автоматически проставились длины кабелей на схемах внешних. Чтобы случайно не учесть инфу с одного плана трасс несколько раз, нужно ввести флаг (глоб. Переменную) в каждом файле, которая будет T после трансляции информации о длинах.

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

Такое пока плохо представляю как осуществить, но, думаю, реально Как релиз 1.1 пойдет )))

А пока сделаю то, что написал. И тогда уже выложу.

ПО поводу обработки ошибок хотел добавить - я их учел в пользовательской функции *error*. Основным источником "глюков" может быть кнопка ESC, которую сам иногда по привычке еще жму. Другие вообще всегда жмут, как показал опрос )))
Другие моменты учтены обработкой пользовательского ввода (часть честно стырена с ru_CAD).
Если происходит отмена по ESC, то пользователь получает гневное сообщение и происходит отмена сделанных изменений.
НАсколько я понял, системные переменные возвращаются в исходное состояние (я пока только OSMODE менял).

Есть у меня 1 вопрос к знатокам:

Дайте пример кода, чтобы сделать BEEP при отмене программы клавишей ESC :-)
Вложения
Тип файла: zip План трасс.zip (502.2 Кб, 185 просмотров)

Последний раз редактировалось Frigate, 01.11.2010 в 13:26.
Frigate вне форума  
 
Непрочитано 01.11.2010, 13:19
#72
zamtmn

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


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

у меня это сделано аддитивным коэффициентом (в добавок к мультипликативному), также кабель может быть разбитым на "сегменты" - тупо несколько одинаковых кабелей отличающихся номером сегмента и обрабатываемых по возрастанию этого номера. Подход универсальный (вроде как можно смоделировать любую ситуацию), но черезчур муторный - тяжело править все коэффициенты у кабелей, если нужно чтото поменять. Если большинство кабелей состоят из сегментов - вообще труба это хозяйство редактировать((
Подумываю ввести стили кабелей - для легкой правки. И примитив "определение кабеля" - полилиния соединяющая все устройства кабеля но не проходящая по трассе, а кабали получать из определений трассировкой с наследованием свойств типа жильности, марки и т.д.
zamtmn вне форума  
 
Автор темы   Непрочитано 01.11.2010, 13:28
#73
Frigate

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


точно муторно - я мало что понял даже, прочитав

прочти, плиз, мои добавления к предыдущему моему посту - там я описал новую идею, как это осуществить, + задал 1 вопрос

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

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

Последний раз редактировалось Frigate, 01.11.2010 в 13:46.
Frigate вне форума  
 
Непрочитано 01.11.2010, 13:53
#74
zamtmn

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


>>точно муторно - я мало что понял даже, прочитав
чукча не писатель)). хотя там всё просто, кабель - полилиния, длина считается как длина полилинии*масштаб+добавка. масштаб и добавка задаются пользователем в свойствах кабеля. если к кабелю подключены устройства - они тоже добавляют к длине некоторую добавку определяемою в свойствах этого устройства. например чтоб учесть вертикальный участок кабеля 3м - подключаем к кабелю в этом месте устройство "подъем" (или опуск) и в свойствах "подъема" указываем - что добавлять 3м.

>>там я описал новую идею, как это осуществить, + задал 1 вопрос
в програмировании под автокад я мало что понимаю, такчто с конкретикой реализации - извиняйте))

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

Последний раз редактировалось zamtmn, 01.11.2010 в 14:04.
zamtmn вне форума  
 
Автор темы   Непрочитано 01.11.2010, 14:19
#75
Frigate

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


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

Как я в Автокаде сделаю, я уже описал )))
Frigate вне форума  
 
Непрочитано 04.11.2010, 12:57
#76
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


Доброго дня.
Frigate,
Можно ли увидеть
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Если кому интересно, опишу ее и выложу здесь исходники.
Очень хочу глянуть и потестировать.
Но идея не с той стороны начата.
1) Схема автоматизации
2) Схема внешних соединений проводок
3) План

Без первых двух сделанных и продуманных схем вам не сделать план.
Но автоподсчет длин, указания (точнее не указания, а выбора с уже проставленных на 2 схеме) номера кабеля и его марки, идея просто изумительная.
А так же выбора на плане позиции прибора указанной на "Схеме автоматизации" и вставка этого оборудования.

Ну и при изменениях на 1 схеме атрибута
"Номер позиции приборов"
и на 2 схеме атрибутов
"Номер кабеля"
"Марка кабеля"

обновление на трассе

Вот сама изюминка
Eddicordo вне форума  
 
Непрочитано 04.11.2010, 13:50
#77
zamtmn

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


Eddicordo
Цитата не моя)).

>>Но идея не с той стороны начата
>>1) Схема автоматизации
>>2) Схема внешних соединений проводок
>>3) План
Сделать сквозную систему проектирования в рамках лиспа не получится, а если получиться то с кучей оговорок и упрощений.
Схема автоматизации на первом месте для меня сомнительно - часто СА делается в упрощенном виде, и отражает точно только места установки приборов на технологическом оборудовании, связи между ними делаются очень условно - считать СА основанием к формированию схемы соединений не правильно. В моей работе основной документ - схема электрическая принципиальная - из нее можно выудить любую информацию для любых других отчетов. ИМХО проектировщик в программе проектирования автоматики должен строить "полную" модель проекта, содержащую в себе всю важную информацию - и из нее уже в автоматическом или полуавтоматическом режиме получать отчетные документы типа схемы автоматизации, подключений, планов и т.д.
zamtmn вне форума  
 
Непрочитано 04.11.2010, 16:43
#78
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


zamtmn,
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Схема автоматизации на первом месте для меня сомнительно
Что такое Схема автоматизации?
Схема автоматизации - это технологическая схема с нанесением на нее оборудования КИП и А.

Цитата:
Сообщение от zamtmn Посмотреть сообщение
часто СА делается в упрощенном виде
Делается но не часто. В основном это разработка щита. Щиты в наше время уже ни кто не разрабатывает. А заказывают готовые щиты.
А если щит маленький и специфический то его свободно вмещают на СА.

Цитата:
Сообщение от zamtmn Посмотреть сообщение
и отражает точно только места установки приборов на технологическом оборудовании
Хм.. аж интересно стало. А что вы тогда отображаете на планах? Не точную установку оборудования? Условно?
Технологическая схема несет в себе саму технологию процесса и показывается условно. Вы не можете на ней точно установить и показать свое оборудование.
А вот на плане все выполнено в масштабе. И на планах нанесение оборудования КИП и А указывается точно.

Цитата:
Сообщение от zamtmn Посмотреть сообщение
считать СА основанием к формированию схемы соединений не правильно
Ни кто и не считает основанием к формированию схем соединений.
Вы путаете это совсем разные схемы.

Цитата:
Сообщение от zamtmn Посмотреть сообщение
В моей работе основной документ - схема электрическая принципиальная - из нее можно выудить любую информацию для любых других отчетов.
Ну очень интересно. Скажите, у вас на Схеме эл. прин. показаны абсолютно все:
Позиции оборудования?
Номера кабелей?
Марки кабелей?
Условные обозначения приборов?
Маркировка клеммных коробок?
Ну хоть что то. Я не знаю что можно выудить со схемы электр. принципиальной для вставки на план. и связей какие то.


1) Схема автоматизации - основная схема где указанны все позиции оборудования, кроме исключения.

2) Схема электрическая принципиальная - последовательность подключений определенных деталей между собой. Все подключение не выходят за рамки того же щита.

3) Схема внешних проводок - подключение кабелей оборудования (прибора) к другому оборудованию (щиту, шкафу, целой системе, клеммному ящику и т.д.). Выбор марки кабеля, жильности, труб, присвоение номера кабеля.

4) План - это расположение в масштабе всего объекта с конкретной установкой и расстановкой всего оборудования. (Грубо говоря сборочный чертеж с первого и третьего)

1, 2, 3, и т.д. схемы, это наши исходные данные.
4 схема, это схема на которой наносятся все наши исходные данные.
Eddicordo вне форума  
 
Автор темы   Непрочитано 04.11.2010, 17:14
#79
Frigate

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


Eddicordo,
Цитата:
Сообщение от Eddicordo Посмотреть сообщение
Очень хочу глянуть и потестировать.
Все будет, осталось 2-3 функции дописать, а мысли уже в схеме соединений внешних проводок, хочется функции от VVA понять и применить у себя для сортировки кабелей. Ну и сам экспорт в Excel тоже заинтересовал.


Хочу окончательно пояснить, почему начал с плана трасс - это то первоочередное, что очень нужно, так как уберет массу хлопот при создании план трасс - это даже не автоматический подсчет длин (я уже это писал и не раз) - это скорее получение перечня кабелей, проходящих через определенную точку (разрез) трасс. Когда под две сотни кабелей - это немаловажно. Я скидывал уже в одном из предыдущих сообщений план трасс (условный, без генплановской и технологической подложки) - на нем видны проставляемые автоматически перечни кабелей.
В общем буду делать систему в обратной последовательности. Начав с плана трасс, перейду на схемы внешних соединений. Схему автоматизации пока и не думаю включать сюда. Это далекая перспектива, если вообще будет. Слишом там много нюансов.
Еще раз повторю - для систем, где не больше 10-20 кабелей, использовать функции моей программы вовсе необязательно, большой выгоды во времени не получить. ПО затратам моего времени на изучение ЛИСП, написание программ, - я уже не думаю, что это когда-то окупится таким-эе временным промежутком, но само проектирование с автоматизацией части рутинных операций уже делает раболту проектировщика более приятной и интересной.

=============================================
Сразу хочу сказать, что для установки моей программы нужно уметь устанавливать файлы частичной адаптации (в итоге всех действий вы получите выпадающее меню "ADV_CAD" в главном меню Автокада и три панели инструментов. Скопировать папку со всеми функциями и программами на диск C. Прописать в настройках пути к вспомогательным файлам. Если разместите папку с программой не на диске С, то пути придется уже менять в соответствии с расположением. Да, перед тем, как лезть в CUI, советую сохранить свое рабочее пространство, чтобы потом не слетели ваши настроенный под себя панели инструментов и вообще весь вид рабочего экрана АВТОКАДа. У меня даже при сохранении иногда случаются глюки с панелями инструментов. Возможно, я не очень хорошо владею CUI.
В общем, если что-то из описанноо вам вдруг непонятно, то советую почитать справку хорошенько, чтобы потом установить мой файл частичной адаптации.

Последний раз редактировалось Frigate, 04.11.2010 в 17:24.
Frigate вне форума  
 
Непрочитано 04.11.2010, 17:46
#80
zamtmn

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


Eddicordo
Цитата:
Делается но не часто. В основном это разработка щита. Щиты в наше время уже ни кто не разрабатывает. А заказывают готовые щиты.
А если щит маленький и специфический то его свободно вмещают на СА.
Что значит готовые? серийно выпускаемые? Если серийно - зачем его нутра вмещать в СА? со щитом идет комплект документов - вполне достаточно его приложить к проекту.

Цитата:
Хм.. аж интересно стало. А что вы тогда отображаете на планах?
План планом, но по СА гораздо быстрее можно понять что датчик стоит например на выходе подогревателя, до запорной арматуры.

Цитата:
Ну очень интересно. Скажите, у вас на Схеме эл. прин. показаны абсолютно все:
Да, всё перечисленное. И это удобно - иметь один документ с централизованной информацией, а не кучу документов с необходимостью
поддерживать "пересекающуюся" информацию в актуальном состоянии.

Цитата:
А вот на плане все выполнено в масштабе. И на планах нанесение оборудования КИП и А указывается точно.
3D модель может будет точно, план - условно. Конечно можно (нужно) сделать все необходимые разрезы - и показать всё точно, но такие требовательные заказчики мне пока не попадались
zamtmn вне форума  
Ответ
Вернуться   Форум 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