我用这个:
加载LSP文件时执行命令:
- (defun SETLAYERFILTER ( / )
- (setvar "cmdecho" 0)
- (command "UNDO" "BEGIN")
- (setq i 0)
- (vlax-for x (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object)))(if (eq (vla-get-IsXref x) :vlax-true)(setq i (1+ i))))
- (if (>= i 1)(command "-Layer" "Filter" "Set" "All non-Xref Layers" ""))
- (command "UNDO" "END")
- (setvar "cmdecho" 1)
- (princ)
- )
- (SETLAYERFILTER)
常规命令:
- (defun C:SETLAYERFILTER ( / )
- (setvar "cmdecho" 0)
- (command "UNDO" "BEGIN")
- (setq i 0)
- (vlax-for x (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object)))(if (eq (vla-get-IsXref x) :vlax-true)(setq i (1+ i))))
- (if (>= i 1)(command "-Layer" "Filter" "Set" "All non-Xref Layers" ""))
- (command "UNDO" "END")
- (setvar "cmdecho" 1)
- (princ)
- )
当DWG文件中存在外部参照时,AutoCAD会自动创建图层过滤器。
此命令检查是否存在外部参照,如果存在。。。滤波器也存在,因此其集合也存在。 |