Программы

Программа cable_magazine

Назначение программы является обсчет трасс и формирование кабельного журнала. Для использования программы должны быть соблюдены следующие правила отрисовки трасс.
Принятые условия:
а) Трасса в виде полилиний размечается на слое Pr_Track
б) Объекты (здания/сооружения) которые будут отрисовываться на отдельном листе, помечаются блоком Object на слое Pr_Obj
в) УГО – изменение высоты на трассе показываются блоком Vertical_wiring_v2 на слое Pr_UGO
г) Элементы, между которыми надо узнать расстояние по трассе показываются блоком Boxes и AK_device (будут добавлены другие) на слое Pr_Equipment
д) Максимальное количество отдельных линий между элементами может быть 3 шт (для наглядности линии выделены разным цветом). Например, путь K01-TT04. Если связь между элементами будет состоять более 3 линий – она не будет найдена!
Рекомендуется использовать максимально две линии. Например, пути: ABK01-K01, K01-TT02, K01-TT03.
Обязательным условием является пересечение линий (рекомендуется использовать параметризацию).
В версии cable_magazine_v14_07_15 предусмотрен выбор только одного масштаба трасс.
Т.е. например 1:500 (генплан) и 1:50 (здания) нужно считать отдельно.

Примеры.
Пример для кабельного журнала
Пример для кабельного журнала



Программа ищет все доступные пути!
Например:
Пример 1
Пример 1


(K01 12.0746 TT03 ДВЕ_ЛИНИИ) – путь из желтой и красной линии
(K01 10.6182 TT03 ТРИ_ЛИНИИ) – желтая фиолетовая красная
(K01 17.9449 TT04 ТРИ_ЛИНИИ) – зеленая желтая красная. Здесь фиолетовая линия является четверной линией, поэтому она не учитывалась.
Еще примеры:
Пример 2
Пример 2


Программа выдаст ошибку: желтая линия пересекается фиолетовой два раза – это не допустимо!
Пример 3
Пример 3


Будут найдены пути:
(K01 10.3098 TT03 ДВЕ_ЛИНИИ) – путь из желтой и красной линии
(K01 9.90485 TT03 ТРИ_ЛИНИИ) – желтая, фиолетовая и красная
(K01 16.1801 TT04 ТРИ_ЛИНИИ) – зеленая, желтая и красная линии
(K01 15.5265 TT04 ТРИ_ЛИНИИ) - лишние участи фиолетовой лини не учитываются.

Запуск программы.
После загрузки программы нужно вызвать функцию cable_magazine. Если все правильно оформленно, то программа найдет пути и расстояния между ними.
Результат работы программы доступен в виде сообщения в командной строке AutoCAD:
найденные пути автоматически или из файла,
промежуточные данные,
промежуточные данные,
результат.

((TT01 K01) (TT02 K01) (TT03 K01) (TT04 K01) (TT05 K03) (TT06 K03) (TT08 K02) (TT07 K02) (K01 ABK01) (K03 K02) (K02 ABK01))

(((8 (FINISH -163.513 312.433 0.0))) ((9 (FINISH -152.014 307.93 0.0)) (8 (BEGIN -155.014 307.93 0.0))) ((7 (FINISH -167.046 307.93 0.0))) ((9 (FINISH -152.014 307.93 0.0)) (8 (BEGIN -155.014 307.93 0.0))) ((6 (FINISH -163.27 304.111 0.0))) ((9 (FINISH -152.014 307.93 0.0)) (8 (BEGIN -155.014 307.93 0.0))) ((5 (FINISH -165.757 300.728 0.0))) ((9 (FINISH -152.014 307.93 0.0)) (8 (BEGIN -155.014 307.93 0.0))) ((1 (FINISH -184.035 206.559 0.0))) ((3 (FINISH -169.944 202.645 0.0)) (1 (BEGIN -172.944 202.645 0.0))) ((0 (FINISH -183.336 203.037 0.0))) ((3 (FINISH -169.944 202.645 0.0)) (1 (BEGIN -172.944 202.645 0.0))) ((2 (FINISH -138.751 195.907 0.0))) ((10 (BEGIN -159.535 213.992 0.0)) (4 (BEGIN -159.535 210.992 0.0))) ((4 (FINISH -159.535 191.229 0.0))) ((10 (BEGIN -159.535 213.992 0.0)) (4 (BEGIN -159.535 210.992 0.0))) ((9 (FINISH -152.014 307.93 0.0)) (8 (BEGIN -155.014 307.93 0.0))) ((10 (FINISH -60.7389 323.985 0.0))) ((3 (FINISH -169.944 202.645 0.0)) (1 (BEGIN -172.944 202.645 0.0))) ((10 (BEGIN -159.535 213.992 0.0)) (4 (BEGIN -159.535 210.992 0.0))) ((10 (BEGIN -159.535 213.992 0.0)) (4 (BEGIN -159.535 210.992 0.0))) ((10 (FINISH -60.7389 323.985 0.0))))

(((1 (-180.066 202.645 0.0))) ((0 (-180.066 202.645 0.0))) ((4 (-159.535 197.87 0.0))) ((4 (-159.535 202.645 0.0))) ((3 (-159.535 202.645 0.0)) (2 (-159.535 197.87 0.0))) ((6 (-161.691 304.111 0.0))) ((8 (-158.825 307.93 0.0)) (7 (-158.825 307.93 0.0)) (5 (-161.691 304.111 0.0))) ((8 (-158.825 307.93 0.0)) (6 (-158.825 307.93 0.0))) ((7 (-158.825 307.93 0.0)) (6 (-158.825 307.93 0.0))) ((10 (-100.052 290.85 0.0))) ((9 (-100.052 290.85 0.0))))
((TT01 13.0012 K01 ОДНА_ЛИНИЯ) (TT02 12.0316 K01 ДВЕ_ЛИНИИ) (TT03 12.0746 K01 ДВЕ_ЛИНИИ) (TT04 17.9449 K01 ТРИ_ЛИНИИ) (TT05 15.0047 K03 ОДНА_ЛИНИЯ) (TT06 10.4153 K03 ДВЕ_ЛИНИИ) (TT08 38.4774 K02 ДВЕ_ЛИНИИ) (TT07 19.7623 K02 ОДНА_ЛИНИЯ) (K01 141.49 ABK01 ДВЕ_ЛИНИИ) (K03 18.7562 K02 ДВЕ_ЛИНИИ) (K02 208.789 ABK01 ОДНА_ЛИНИЯ))nil

Доступен ручной ввод путей. Для этого в корне файла чертежа нужно создать link.txt и внести в него пути по примеру:
Пример 4
Пример 4


Каждая связь должна начинаться с новой строки. Название объекта/блока заключается в кавычки. Разделитель между объектами является пробел. Лишних пробелов быть не должно.
Возможность поиска дополнительных путей к найденным автоматически так же есть. Для этого надо: найти все пути автоматически, скопировать все найденные пути в link.txt при этом можно удалить не нужные и добавить свои пути по описанным правилам выше, и запустить программу заново.
Если программа выдает ошибку или результат работы будет отличаться от описанного выше, то где-то допущена ошибка.
Возможные варианты ошибок:
а) Значения атрибутов в объектах/блоках и link.txt на разных языках
б) в link.txt пути прописаны не верно
в) нет такого трассы
г) трасса больше чем три линии
д) нет пересечений между линиями

Ограничения отрисовки путей
Пример 5
Пример 5


Из-за особенности AutoCAD линии связей должны быть не дальше 1.8мм от точки вставки блока. Не должны совпадать с точкой вставки (н-р синея линия – так делать нельзя!).
В случае зеленой и желтой линии, зеленая линия попадает в радиус поиска линий для блока TT03. Программа найдет неверные связи и дальше выдаст неверные пути. В этом примере будет найден дополнительный неверный путь и длина соответственно от K01 до ТТ03 : сегмент красной линии + сегмент желтой линии до пересечения с зеленой при этом путь запишется как ТРИ_ЛИНИИ.
На данном этапе разработки программы приемлемо использовать любые свои блоки с выполнением описанных выше требований и условием, что в блоке будет присутствовать атрибут NAME –это название прибора/элемента (н-р ТТ02, К01 и др.) на первой позиции в списке атрибутов.
На четвертой позиции появится атрибут LINK (н-р со значением ТТ01). Т.е. связь будет определена как ТТ01-К01.
Пример 6
Пример 6


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

Тэги: AutoLISP

Комментарии   

0 #2 tujn08 13.01.2017 13:50
Цитирую AutoSystems:
А как можно воспользоваться вашей программой?


Программа тестовая и до конца не отлаженная. Есть трудности оформления - оптимизируем ее. Использование пока затруднительно.
Но можно попробовать дать как есть - минимум попробовать ее.

Как будет рабочий вариант опубликуем.
Спасибо за интерес!!!
Цитировать
0 #1 AutoSystems 13.01.2017 13:30
А как можно воспользоваться вашей программой?
Цитировать

Добавить комментарий

Администратор оставляет за собой право удалять любой комментарий без разъяснения.


Защитный код
Обновить