Поиск блоков, совпадающих в плане - Страница 3
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Поиск блоков, совпадающих в плане

Поиск блоков, совпадающих в плане

Ответ
Поиск в этой теме
Непрочитано 24.02.2025, 10:05
Поиск блоков, совпадающих в плане
1958
 
Регистрация: 16.04.2016
Сообщений: 107

Задача такая: в чертеже имеется более 10 000 блоков "Picket". Некоторые из них наложены друг на друга в плане (по координатам X и Y, по координате Z могут совпадать, могут не совпадать). Надо найти совпадающие и отметить их в чертеже. Я в лоб написал лисп. С поставленной задачей справляется, но работает медленно. Может надо как-то по другому?
Код:
[Выделить все]
 (defun c:del_pk (/ ss n i k q p1 p2 dist)
 (setq ss (ssget "_X" '((0 . "INSERT") (2 . "PICKET"))))
 (setq n   (1- (sslength ss))
       i   0
       k   0
       q   0
       sss (ssadd)
 )
 (while (< i n)
  (setq p1 (reverse (cdr (reverse (cdr (assoc 10 (entget (ssname ss i))))))))
  (while (< k n)
   (setq p2  (reverse (cdr (reverse (cdr (assoc 10 (entget (ssname ss (setq k (1+ k)))))))))
         dist (distance pk1 pk2)
   )
   (if (< dist 0.1)
    (progn (setq q (1+ q))
           (entmakex (list (cons 0 "CIRCLE")
                           (cons 8 "0")
                           (cons 10 pk2)
                           (cons 40 15)
                           (cons 62 6)
                           (cons 370 50)
                     )
           )
    )
   )
  )
  (setq i (1+ i)
        k i
  )
 )
 (alert (strcat "Отмечено пикетов " (itoa q)))
)
На прилагаемом чертеже в красном квадрате отмечены красными кругами три совпадения.

Вложения
Тип файла: dwg
DWG 2007
Чертеж1.dwg (2.40 Мб, 20 просмотров)

Просмотров: 2100
 
Непрочитано 17.03.2025, 01:23
#41
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,891


del

Последний раз редактировалось engngr, 17.03.2025 в 03:12.
engngr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Поиск блоков, совпадающих в плане



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Очистка рисунка от "пустых" блоков Makswell Готовые программы 15 26.10.2022 15:24
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Поиск блоков пересекающих полилинию tujn08 Программирование 80 13.03.2019 00:08
Канализационный лоток на плане полов или на плане фундаментов? Виталька Паустовский Основания и фундаменты 3 09.12.2009 11:51
VBA: утечка памяти при вставке блоков Mikha Программирование 13 03.04.2009 09:18