选择了这个32313133353236313431303231363533e78988e69d8331333337396332图层的所有对象,右键,绘图次序,【前置】
用程序来解决,
(defun C:tes ( / blockdef dict doc lst obj sortents &tc1)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(vl-load-com)
(if (setq &tc1 (entsel "\n请选择要把图层放在最上面的参考图层"))
(progn
(setq &tc1 (cdr (assoc 8 (entget (car &tc1)))))
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(vlax-for blockdef (vla-get-blocks doc)
(cond
((not (VL-CATCH-ALL-ERROR-P (setq sortents (VL-CATCH-ALL-APPLY 'vla-item (list (setq dict (vla-GetExtensionDictionary blockdef)) "ACAD_SORTENTS"))))))
((setq sortents (VL-CATCH-ALL-APPLY 'vla-AddObject (list dict "ACAD_SORTENTS" "AcDbSortentsTable"))))
)
(setq lst nil)
(vlax-for obj blockdef (if (= &tc1 (vla-get-layer obj)) (setq lst (cons obj lst))))
(if lst (progn (vla-MoveTotop sortents (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbobject (cons 0 (1- (length lst)))) lst)))))
)
(vla-regen doc :vlax-true)
)
)
(princ)
);复制到记事本,以【.lsp】为后缀命名,打开CAD加载了,命令【TES】,选择参考图层,那么这个图层的所有对象就置于最上层,包括块里面的对象也同时前置了。