嗨,李和其他人,
关于李的密码https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/change-all-to-0-layer-by-layer-including-block-and-block-in/td-p/5376995
- (defun c:blkto0 ( / idx lst sel )
- (if (setq sel (ssget '((0 . "INSERT"))))
- (repeat (setq idx (sslength sel))
- (block->0 (cdr (assoc 2 (entget (ssname sel (setq idx (1- idx)))))))
- )
- )
- (command "_.regen")
- (princ)
- )
- (defun block->0 ( blk / ent enx )
- (cond
- ( (member blk lst))
- ( (setq ent (tblobjname "block" blk))
- (while (setq ent (entnext ent))
- (entmod (subst-append 8 "0" (subst-append 62 0 (setq enx (entget ent)))))
- (if (= "INSERT" (cdr (assoc 0 enx)))
- (block->0 (cdr (assoc 2 enx)))
- )
- )
- (setq lst (cons blk lst))
- )
- )
- )
- (defun subst-append ( key val lst / itm )
- (if (setq itm (assoc key lst))
- (subst (cons key val) itm lst)
- (append lst (list (cons key val)))
- )
- )
当图纸设置良好时,上述效果非常好,但不幸的是,许多建筑图纸都不符合要求。。。
是否可以对此进行修改,使其将所有块/嵌套块的颜色设置为如上所述的“按块”颜色,尽管这样块/嵌套块都保留其原始层(即不转到第0层等)?
谢谢 |