遇到嵌套块是很烦的。好多人定义块时,对象没有在0层(习惯非常不好)。这样最后出图图纸上图层特别多,清理不掉。下面的程序:;---------- 将块内所有对象更改到0图层,颜色随层。
但遗憾的是不能处理嵌套块。
- (defun c:0t1 ( / e i l n ss x )
- ;---------- 将块内所有对象更改到0图层,颜色随层。
- (setvar "clayer" "0")
- (if (setq ss (ssget "X" '((0 . "INSERT"))))
- (repeat (setq i (sslength ss))
- (if (not (member (setq n (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))) l))
- (progn
- (setq e (tblobjname "block" n)
- l (cons n l)
- )
- (while (setq e (entnext e))
- (setq x (entget e))
- (entmod (subst '(8 . "0") (assoc 8 x) x))
- )
- )
- )
- )
- )
- (command "_.regen")
- (princ)
- )
|