lisp make layer manager curren
希洛,是否有lisp可以使图层管理器特性过滤所有当前图层。
带命令:currentfilterall
见附件。
这里有一条“老”线索可能会有所帮助。 您好,Grrrr,
哪种代码适合我?链接不知道是哪个代码? 该线程中的代码并没有完全解决您的问题,而是找到了如何创建属性过滤器,这可能有助于您未来的代码。
请附上样本图纸进行测试,因为还有一个问题,你使用“属性”还是“组”过滤器。 谢谢你的回放,但是有Lisp程序的吗?去解决它? 我用这个:
加载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会自动创建图层过滤器。
此命令检查是否存在外部参照,如果存在。。。滤波器也存在,因此其集合也存在。 触摸后,
代码对我来说非常适合,正是我需要的,Thxxxxxxxxxx alottt Bedankt!! @触摸后良好的努力。
我只是想让你们注意一个重要的问题,你们可能想知道并从中学习,因为你们迭代块表的目的是知道当前图形中是否存在任何外部引用,所以最好停止迭代图形中的其余块,以使函数高效更快地工作。
除此之外,尽可能长时间使用DXF编码也是一个好主意。
请看一下下面的内容,我相信您可以了解代码的工作原理。
(while (and (not fnd)
(setq blk (tblnext "BLOCK" (not blk)))
)
(and (assoc 1 blk)
(setq fnd t)
(command "-Layer" "Filter" "Set" "All non-Xref Layers" "")
)
) @塔瓦,你的右边。
我的编码首先检查所有块,并计算所有外部参照,其中一个匹配就足够了。
谢谢你的提示!
欢迎你继续努力。
页:
[1]