Тема: Удалить все что находиться за пределом замкнутой полилинии

Есть чертеж, макрос рисует прямоугольник в определенном месте чертежа. Далее необходимо удалить ту часть чертежа что ни вошло в район прямоугольника. Если можно то код VBA.

Re: Удалить все что находиться за пределом замкнутой полилинии

легче на лиспе

(setq pol (car(entsel "Select bound"))); взять полигон нарисованный заранее
Создать лист точек / Лень писать как
(setq ssAll (ssget "X")) ;Взять все из чертежа
(setq ssByPol (ssget "X" "WP"  лист точек ))
(setq i 0)
(while (setq ent(ssname  ssAll i))));Удалить все из чертежа
   (entdel ent)
  (setq i (+ i 1))
)
(setq i 0)
(while (setq ent(ssname  ssByPol i));Удалить еще раз вубранные ssByPol
   (entdel ent)
  (setq i (+ i 1))
)

Алгоритм основан на том что фун entdel первый раз удаляет а второй раз востанавливает ent

Re: Удалить все что находиться за пределом замкнутой полилинии

Если надо еще и обрезать, то в Express ->Modify->Cookie Cutter Trim ( или команда extrim)

Re: Удалить все что находиться за пределом замкнутой полилинии

спасибо буду пробовать Лиспи если получиться (уж больно скобочек много :) )

Re: Удалить все что находиться за пределом замкнутой полилинии

Могу посоветовать из своего более чем 10 летнего опыта работы на лиспе. Открывая скобку, тут же ее закрываjте (), а потом добавляйте между ними код (setq МоиДеньги ТвоиДеньги)