我想这条线会对你有帮助。基本上你不能那样做。这是为您准备的线程:
- (defun c:delents (/ EN I SS VAL)
- ;; Courtesy of MP, http://www.theswamp.org/index.php?topic=7229.msg89412#msg89412
- (defun RemoveFromPicksetIf ( ss func / I ENAME)
- ;; The supplied func must take one
- ;; argument, an ename. What it does
- ;; we don't care, but if it returns
- ;; a non nil result remove the entity
- ;; from the pickset
- (if (eq 'pickset (type ss))
- (repeat (setq i (sslength ss))
- (if
- (func
- (setq ename
- (ssname ss
- (setq i (1- i))
- )
- )
- )
- (ssdel ename ss)
- )
- )
- )
- ss
- )
-
- (AND (setq en (entsel))
- (setq val (cdr (assoc 1000 (cdr (assoc "INDEX" (cdr (assoc -3 (entget (car en) (list "*")))))))))
- (setq ss
- (RemoveFromPicksetIf
- (ssget "X" '((-3 ("INDEX"))))
- (lambda ( ename / xdata )
- (or
- (null
- (setq xdata
- (assoc -3
- (entget ename
- '("INDEX")
- )
- )
- )
- )
- (null
- (member
- (cons 1000 val)
- (cdadr xdata)
- ))))))
- (setq i -1)
- (while (setq en (ssname ss (setq i (1+ i))))
- (entdel en)
- )
- )
- (princ)
- )
|