工作得很好!最后一个细节。。。它需要锁定x-ref层。 好的
将其作为最终版本试用(如果您没有任何其他更新)。
(defun c:xchx(/ doc ss i sn e l)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for xr(vla-get-blocks doc)
(if (eq :vlax-true (vla-get-isxref xr))
(setq l (cons (strcat "," (vla-get-name xr)) l))
)
)
(if (not (tblsearch "LAYER" "x-ref"))
(entmake (list '(0 . "LAYER")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
(cons 2 "x-ref")
'(70 . 0)))
)
(if (and l
(setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 (substr (apply 'strcat l) 2)))))
)
(progn
(repeat (setq i (sslength ss))
(if (vlax-write-enabled-p (vlax-ename->vla-object(setq sn (ssname ss (setq i (1- i))))))
(entmod (subst '(8 . "x-ref") (assoc 8 (setq e (entget sn))) e))
)
)
(vla-put-lock(vla-item (vla-get-layers doc) "x-ref") :vlax-true)
(vla-regen doc acallviewports)
)
)
(princ)
)(vl-load-com)
像冠军一样工作!
谢谢您!! 杰出的非常欢迎你。
页:
1
[2]