好的
将其作为最终版本试用(如果您没有任何其他更新)。
- (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)
|