|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
20.09.2010, 11:59 | 4 | | #1 |
План кабельных сетей - алгоритм автоматизации построения и программирование?
КИП, АСУ ТП, слаботочка
Москва-Тюмень
Регистрация: 02.09.2010
Сообщений: 422
|
||
Просмотров: 289098
|
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
"Щелкнуть" по чему-то и получить информацию - типичная ГИС-технология. В ГИС-системах это "обязательная программа" и делается элементарно. Кабели и любые другие виды коммуникаций - частные случаи. Планы трасс можно импортировать из AutoCAD. Если главное - получение информации (например, для эксплуатации), то не надо использовать AutoCAD, хотя и для него есть ГИС-системы, хоть и отсталые. Если же непременно надо в AutoCAD, то надо к полилиниям (или вообще любым объектам) привязывать расширенные данные. Лучше всего если сами данные хранятся в Базе Данных, а внутри чертежа только ссылки на них. Еще лучше, если и все координаты трасс хранятся в базе данных. Блоки для таких целей - последнее дело. Хотя "кому и кобыла невеста" (С). И понадобится разработка программ для создания информации с привязкой, просмотра и редактирования. И для всего прочего. Т.е. начать несколько лет конструировать велосипед, который, скорее всего, получится с треугольными колесами. |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
kp+
оно и чувствуется, что очень грустно... Есть конечно тупые способы решения моей задачи: сделать блок из одной линии и атрибута, в который и будут записываться номера кабелей с разделителями... Написать функцию, чтобы добавить или вычесть из атрибута номера кабелей при схождении/расхождении трасс... Тоже, в общем то , вариант... Тогда в атрибуте блока будет переменная типа string. ТОлько вот ограничения по длине значения атрибута (string)- какие они ShaggyDoc понятно, что тут надо искать другие пути для решения задачи... Буду думать... Последний раз редактировалось Frigate, 20.09.2010 в 13:15. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
Автоматический подбор высоты текста с поста #27 Хэ-records Список площадей выделенных полилиний в тектовое окно (файл) Как сопоставить семантику и полилинию (полигон) в AutoCAD
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
Цитата:
Цитата:
Frigate Я с переменным успехом пытаюсь делать программу перекрывающую потребности описаные в первом посте, посмотрите - http://shamangrad.net/project.php?act=view&prj=zcad (новую версию пока смотреть не стоит, только старую) и http://forum.dwg.ru/showthread.php?t=8707&page=2 начиная с 29 поста. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
А вот если электрик, например, ведет дежурный план или схему электроснабжения завода, тут надо использовать другие решения. Собственно автоматическая трассировка - третье. Заведомо тупиковое направление для реальных (не учебных) задач. Автоматически протрассировать линию не получится. А вот, как пишет автор, "прощелкать все узлы" трассы и по этим узлам нарисовать любую сеть - вполне реально. Хоть со всякими деталями, креплениями. Это действительное сокращение рутинных операций. Такие программы достаточно просто делаются. Но саму трассу в этом случае намечает не "автомат", а человек. |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Для начала неплохо посмотреть
http://forum.dwg.ru/showthread.php?t=14377 Опять же, ElectriCS не сбрасывать со счетов |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
спасибо за советы... попробую почитать поразбираться в полилиниях с xdata на указанных примерах и справке... Наверное это будет хорошим решением...
VVA спасибо за примеры zamtmn привет землякам Про программу твою я раньше уже читал, правда мне нужно именно для Автокада - нужно ж ее еще и внедрить в отделе, а если и не получится внедрить, то хоть сам буду пользоваться, когда делаю проект "сети внутриплощадочные" ладно, пока буду разбираться... ShaggyDoc попал в точку! Цитата:
Просто надоело заполнять таблички-выноски с номерами проходящих в данном разрезе кабелей ))) Их же еще для красоты надо заполнять в порядке возрастания... kp+ спасибо большое за ссылку!!! Мне кажется, там вполне то, что нужно, ну или хотя бы частично. Последний раз редактировалось Frigate, 20.09.2010 в 15:17. |
|||
|
||||
У меня есть свое решение.
1. Делаете динамический блок на все интересующие вас марки кабеля, типа того, что я сделал на трубы и тут даю. 2. Создаете на каждый тип кабеля свой слой "Кабель такой-то" и все линии и полилинии и сплайны и пр, что символизирует этот кабель рисуете в соответствующем слое. 3. Раскладываете по слоям копии своего динамического блока и настраиваете его на данный тип кабеля. 4. Пишете программу, которая делает следующее: По выбранным кабелям определяет их слои, находит в них ваши динамические блоки (по имени), берет из них данные о кабеле и распечатывает таблицу с перечнем связей и параметрами материалов. 5. Можно наоборот, ткнуть в блок и получить данные о всех длинах линий в слое где этот блок лежит. Вот такая вот метода. |
||||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
ShaggyDoc
Цитата:
Если информацию о соединении можно откуданибудь автоматом выдернуть - например из принципиальных схем - трассировка самое то Frigate Цитата:
Внедрять никуда не стоит - не доделано |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Коли уж в начале упоминалась моя книга, там есть функция, которая подобным образом рисует что угодно - любые виды трасс. В аргументах ей передаётся "по-лисповски" имя функции рисования отдельного сегмента трассы. |
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
>>Это уже не трассировка, а рисование, о чем я и писал. А уж как именно рисовать
Что тогда по вашему трассировка? большая красная кнопка? ручной работы всеравно не избежать - один раз прочертить трассу, затем автоматом по ней кучу кабелей - нормальный подход электроических сапр |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Трассировка - это выбор трассы любой коммуникации. Процесс творческий. Это - проектирование. Трассу надо наметить с учетом обстановки, конструкций, иных существующий и проектируемых сетей, норм и правил по размещению. Здесь человека ничем не заменить. Результат трассировки может быть в разном виде - как минимум, список координат точек вершин трассы. И трассу совсем не обязательно "прочертить". Координаты трассы можно и сохранить, например в базе данных, как я упоминал. А вот "автоматом по ней кучу кабелей" - это простой, рутинный процесс. Работа для "чертежника". К САПР имеет мало отношения - это просто "малая механизация", но не Проектирование. Вот в ГИС это самое изображение трасс выполняется вообще автоматом, по координатам из базы данных. Причем рисование может быть в разных видах, в зависимости от задачи. Впрочем, может быть в "электроических сапр" это и считается "нормальным подходом". Тогда мне жалко электриков... |
|||
|
||||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Последний раз редактировалось zamtmn, 21.09.2010 в 00:06. |
|||||
|
||||
Регистрация: 20.01.2009
Сообщений: 1,170
|
Цитата:
Я для решения схожей задачи (рисования проводников для схем электрических принципиальных) сделал ряд функций со следующими алгоритмами: 1. Рисование проводников. Программа сохраняет текущие данные (включенные параметры, слой и т.д.) отключает привязки, орторежим, включает рисование по сетке (специфика принципиалок) и слой проводников. Дальше идет диалог выбора назначения проводника (для твоего случая неактуален). После всего этого по щелчкам в выбранных точках рисуется полилиния соединяющая указанные точки (в моем случае еще и только вертикально или горизонтально. То есть если щелкнуть по диагонали, то рисуется сначала вертикальный отрезок, потом горизонтальный). После окончания рисования восстанавливаются сохраненные в начале параметры. 2. Сборка полилинии проводника. Полилиния формируется из уже нарисованных полилиний и отрезков. Просто щелкаешь на них и они добавляются. Похоже на команду join в редактировании полилиний, но с некоторым интеллектом. То есть точка начала и конца не обязательно совпадают. Программ или продолжает их до пересечения (если не пересекаются) или делает зигзаг до конечной точки если конечная точка одной из линий лежит на другой. 3. Редактирование данных. К выбранной полилинии цепляется последовательность расширенных данных в которой предусмотрено марка провода, сечение, цвет, обозначение. При редактировании выдается диалог в котором все это заполняется. При этом, при заполнении обозначения оно автоматически проставляется у всех концов полилинии. 4. Составление списка. По команде составляется список всех используемых проводов по маркировке, марке, сечению, цвету. Сейчас планирую дописать функцию 1 до автоматической привязке к точке соединения с элементом схемы, функцию 3 до выбора марки проводника из вариантов хранящихся в текстовом файле, а не вбивания каждый раз вручную как сейчас, а функцию 4 до составления нормальной таблицы соединений. Таким образом, если любой кабель выполнен в виде полилинии с привязанными к ней расширенными данными, то можно написать функцию которая в указанном мышкой месте будет выводить таблицу с нужными полями расширенных данных предварительно выбранных полилиний (кабелей) Последний раз редактировалось Main Urod, 21.09.2010 в 00:13. |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Из предложенных вариантов и данных ссылок сделал след. вывод:
как и предлагал ShaggyDoc, я прощелкиваю все узлы трассы одного кабеля, скажем от поз. 1 до поз. 15. Потом надо, чтобы программа запрашивала, не нужно ли и другим кабелям присвоить эту же трассу (тем кабелям, что так же идут от поз. 1 до поз. 15). Эти узловые точки сохраняются в файле текстового формата. Так же делаю по кабелям от других позиций - прощелкиваю узлы этих трасс на плане сетей. И все эти трассы сохраняются в файле, скажем в таком формате: "№ кабеля" т1 т2 т3 ... тN, где т1 - список с координатами 2D (к примеру). Пока не работал с данными из файлов, со строками - поэтому вопросы уточнений для написания программы будут попозже, если не разберусь сам. Что делаем далее - опять таки прав автор небезызвестной книги - трассы совсем даже не нужно обязательно прочерчивать на плане. Единственное, нужно будет, для той же проверки хотя бы, чтоб можно было ввести номер кабеля и программа по данным из файла построила с определенным цветом на новом слое полилинию (трассу этого кабеля) по точкам-узлам. Итак, далее нужно будет, чтобы мы указали, скажем, точку на плане, а программа виртуально построила (без визуального отображения или чтобы сразу после построения стерла трассу) все трассы, и, если часть из этих трасс проходит через определеннную нами точку, то выдала результат в виде таблицы с номерами кабелей, проходящих через эту точку. А вот в лиспе наверное будет сложновато... Думаю, возможно ли осуществить это по следующему алгоритму: 1 указываем на плане точку pt1 (на нарисованной трассировке эстакады); 2 указываем по запросу программы точку pt2, от которой надо строить таблицу с номерами кабелей; 3 программа рисует первую по списку трассу из файла с хранящимися точками узлов: если трасса проходит через точку, то программа добавляет номер трассы в таблицу (не обязательно в объект Table, можно и просто МТекст в рамке 10х5 мм); 4 если трасса не проходит через эту точку, то программа строит след. трассу - см. п. 3. И на этом все! =========================================================================== Значит, нужны функции: - функция №1а, которая получает номер кабеля и список точек-узлов трассы и запихивает все эти данные в строку, потом записывает эту строку в файл "D:\\Cable_traces.txt" (с затиранием пред. информации) - Функция №1, которая считывает из файла с узлами трасс номер кабеля и список, состоящий из списков 2D координат точек-узлов (обратная функции №1а). - Функция №2, которая по видимому, будет включать функцию №1: по списку узлов-точек строить полилинию и проверять, лежит ли точка с координатами точки pt1 (см. п.1) на нарисованной полилинии, если да - выполняется 3-я функция (вставка МТекста с номером кабеля с точкой вставки pt2 (см. п. 2). Начерченная полилиния трассы стирается. - функция №3, которая получает аргументом номер кабеля и точку pt2, вставляет МТекст в рамке 10х5 мм у точки pt2, меняет координаты точки pt2 (чтобы след. МТекст с номером кабеля вставился, скажем, след. строкой, т.е. координата х pt2 равна (изначальная х - 5). Прошу советов или возможно программ, реализующих функции №1а и №1. С функцией №3 разобрался уже сам, просто надо было посмотреть в учебник по геометрии ))))) Принадлежность точки к прямой - это ж азбучная истина, класса 5-го наверное ))))) Вот и эта простенькая функция... Код:
Но все еще нужна помощь в написании функций 1а и 1 (см. выше) Последний раз редактировалось Frigate, 21.09.2010 в 11:08. Причина: Дополнение (после подглядывания в учебник геометрии) :-) |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Frigate, вот это уже нормальный подход. Постановка задачи.
Советы: 1. Хранить в файле просто LISP-список. В виде, наподобие Код:
Вообще-то всю топологию трассы очень удобно описать в виде XML, но это потребует много дополнительного программирования. Зато можно и визуально редактировать, и использовать в любых программах. 2. Зачем строить полилинию, которая сразу будет стираться? Проверить, лежит ли точка на сегменте линии можно аналитически. Вот так, например: Код:
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Посоветуйте программу для построения профилей наружных сетей? | dextron3 | Вертикальные решения на базе AutoCAD | 18 | 11.03.2012 16:37 |
Сводный план сетей | proekt_mep | Инженерные сети | 42 | 16.06.2011 23:09 |
Ищу книгу "Проектирование кабельных сетей и проводок" под редакцией Г.Е.Храпченко 1980 | Инзиля | Поиск литературы, чертежей, моделей и прочих материалов | 8 | 03.02.2009 14:47 |