PaulS00 发表于 2022-7-5 18:31:41

别担心。
 
工作得很好!最后一个细节。。。它需要锁定x-ref层。

Tharwat 发表于 2022-7-5 18:37:03

好的
 
将其作为最终版本试用(如果您没有任何其他更新)。
 

(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)

PaulS00 发表于 2022-7-5 18:40:10

像冠军一样工作!
 
谢谢您!!

Tharwat 发表于 2022-7-5 18:44:33

杰出的非常欢迎你。
页: 1 [2]
查看完整版本: 需要调整Lisp程序