Заглушки для группы коммуникаций

Главная Форумы Задать вопрос Заглушки для группы коммуникаций

В этой теме 5 ответов, 2 участника, последнее обновление  anchim678 1 неделя, 3 дн. назад.

Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
  • Автор
    Сообщения
  • #8587 Score: 0

    anchim678
    Участник

    Здравствуйте. Возникла задача вставлять заглушки в места пересечений коммуникаций и стен, решение для этого нашел на форуме. Однако, необходимо было доработать плагин, для того, чтобы в стенах, где проходит группа коммуникаций создавалась одна общая заглушка, а не для каждого пересечений. Идея такая: с помощью первого питона создаются заглушки для каждого пересечения, затем с помощью нодов вычисляется расстояние между заглушками(не смог засунуть это в питон), далее во втором питоне отсеиваем одиночно стоящие заглушки, вычисляем центры каждой заглушки и получаем координаты Х и Y, далее сортируем их и вычисляем расстояние между соседними (по Х и по Y), если это расстояние меньше константы, то группируем эти координаты (механизм группировки очень костыльный). В этом собственно и вопрос. Данный механизм работает в том случае, если  нет пересечений на параллельных стенах, если же они есть, все сбивается. Как можно сгруппировать координаты в соответствии с образованными группами коммуникаций (рисунок 1)?? Далее после этого вычисляется центр новой заглушки по крайним координатам и вызывается функция вставки семейства (также пока не доделан механизм ориентации семейства). Но это выглядит не таким сложным. После вычисления параметров новой заглушки, все старые удаляются.

    Плагин и файл прилагаю:

    https://hdd.tomsk.ru/desk/driktvcu

    Рисунок 1:

    #8588 Score: 0

    Sche
    Участник
    2 pts

    Добрый вечер,

    не силён в питоне. Вот сделал в основном только динамовскими нодами (скрипт по группировке точек взял с англоязычного форума). Может чем-то поможет.

    https://www.dropbox.com/s/f5bgbs0knnyfg98/sche_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%BE%D0%B2%D1%8B%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%81%D0%BE%20%D1%81%D1%82%D0%B5%D0%BD%D0%B0%D0%BC%D0%B8.dyn?dl=0

     

    #8590 Score: 0

    anchim678
    Участник

    Спасибо, скрипт по группировке – то, что нужно.

    #8596 Score: 0

    anchim678
    Участник

    Возник еще один вопрос: все хорошо работает, только почему-то не со всеми семействами  стен, на некоторых выдает ошибку: ‘FamilyInstance’ object has no attribute ‘Width’ на строчке кода “width = wall.Width”. Хотя параметр такой у стены существует. В чем может быть дело?

    #8599 Score: 0

    Sche
    Участник
    2 pts

    Пример с нерабочей стеной выложите, пожалуйста.

    #8601 Score: 0

    anchim678
    Участник

    https://hdd.tomsk.ru/desk/vnmjcxwg

    В данном случае ругается на семейство: Стена_Вставной элемент. Скорее всего у данного элемента действительно нет параметра Width, но она относится к категории стены, поэтому скорее всего как-то надо фильтровать выборку всех. Надо попробовать, спасибо.

Просмотр 6 сообщений - с 1 по 6 (из 6 всего)

Для ответа в этой теме необходимо авторизоваться.