是都要删除吗? (defun c:sb (/ en lst typ blkn ss n ret) (setq en (entsel "\n请选择一个块:")) (if en (progn (setq lst (entget (car en))) (setq typ (cdr (assoc 0 lst))) (if (= "INSERT" typ) (progn (setq blkn (cdr (assoc 2 lst))) (setq ss (ssget "x" (list (cons 2 blkn)))) (setq n -1) (repeat (sslength ss) (setq en (ssname ss (setq n (1+ n)))) (redraw en 3) ) (initget "Move Erase eXplode") (setq ret (getpoint "\n选择基点或选择一种操作方式\"移动<Move>,删除<Erase>,打碎<eXplode>,<右键取消>\"]:" ) ) (cond ((= "Move" ret) (command "move" ss "") ) ((= "Erase" ret) (command "erase" ss "") ) ((= "eXplode" ret) (setq n -1) (command "undo" "be") (repeat (sslength ss) (setq en (ssname ss (setq n (1+ n)))) (command "explode" en) ) (command "undo" "e") ) ((listp ret) (if ret (progn (command "move" ss "" ret) ) (progn (setq n -1) (repeat (sslength ss) (setq en (ssname ss (setq n (1+ n)))) (redraw en 4) ) ) ) ) ) ) (alert "\n请选择块!") ) ) ) (princ) ) 里面供了3种选择方式,如果你只要删除,你修改一下程序即可 |