smartstar 发表于 2012-6-25 12:28 
谢谢版主回复。
试用了一下,没有成功。而且您给的程序里也没有对嵌套块的处理。
 - (defun delblkwipe (blkname / blkdef objname)
- (setq blkdef
- (vla-item (vla-get-blocks
- (vla-get-ActiveDocument (vlax-get-acad-object)))
- blkname))
- (if (/= :vlax-true (vla-get-IsXRef blkdef))
- (vlax-for obj blkdef
- (cond
- ((= "AcDbWipeout" (setq objname (vla-get-ObjectName obj)))
- (vla-delete obj)
- )
- ((or (= "AcDbMInsertBlock" objname)
- (= "AcDbBlockReference" objname)
- )
- (delblkwipe (vla-get-name obj))
- )
- )
- )
- )
- )
- ;;
- (defun c:111(/ e)
- (while (and (setq e (car(entsel)))
- (= "INSERT" (cdr (assoc 0 (entget e))))
- )
- (delblkwipe (cdr (assoc 2 (entget e))))
- (command "_.regen")
- )
- (princ)
- )
|