Тема: Удаление объектов снаружи контура (блока)

Добрый день господа сочувствующие. Нужен просто и эффективный способ удаления всех объектов не входящих в замкнутый контур в CIVIL3D. Не что подобное пытались "лепить" CookieCutter2. Самое близкое Lisp: trimerOuter, Но после использования напрочь зависает CAD через невозможность копировать оставшиеся после чистки данные:
(defun C:TrimOuter (  / cmde ent en el ss cbox ssall lst)
  (if (and ACET-ENT-GEOMEXTENTS ; ET?
           (setq ent (entsel "\nSelect the contour polyline: "))
           (setq en (car ent))
           (wcmatch (cdr (assoc 0 (entget en))) "*POLYLINE"))
    (progn
      (setq cmde (getvar "CMDECHO"))
      (setvar "CMDECHO" 0)
      (command "_UNDO" "_Group")
      (setq cbox (ACET-ENT-GEOMEXTENTS en))
      (setq cbox (mapcar '(lambda(x)(trans x 0 1)) cbox))
      (setq lst (ACET-GEOM-OBJECT-POINT-LIST en 1e-4))
      (ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list en)))
      (command "_.ZOOM" "0.95x")
      (if (null etrim)(load "extrim.lsp"))
      (etrim en (polar
                  (car cbox)
                  (angle (car cbox)(cadr cbox))
                  (* (distance (car cbox)(cadr cbox)) 1.1)))
      (if (and
            (setq ss (ssget "_CP" lst))
            (setq ssall (ssget "_X" (list (assoc 410 (entget en)))))
           )
        (progn
          (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
          (foreach e1 lst (ssdel e1 ssall))
          (ACET-SS-ENTDEL ssall)
        )
      )
      (command "_UNDO" "_End")
      (setvar "CMDECHO" cmde)
    )
    (if (not ACET-ENT-GEOMEXTENTS)(princ "\nExpress Tools not installed!"))
  )
(princ)
)

(princ "\nTrimOuter loaded. Type TRIMOUTER to start.")
(princ)