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