请教如何获取文件中的所有图层状态名称、不要图层过滤器
(defun c:QZT(/ ladict ladict1 m n statenemelst)(setq ladict1(vla-GetExtensionDictionary (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object)))))
(repeat (setq m (vla-get-count ladict1))
(setq ladict(vla-item ladict1 (setq m(1- m))))
(repeat (setq n(vla-get-count ladict))
(setq statenemelst(cons (vla-get-name(vla-item ladict(setq n(1- n))))statenemelst))
)
)
(princ)
)请教一下论坛的各位大神、这是我在论坛里面找到的关于获取文件内图层状态的代码、
之前用没啥问题、今天突然发现这个代码获取的不仅是文件内的图层状态、
还把图层过滤器也给提取出来了、想问一下大家有没有办法只获取图层状态、不要图层过滤器呢?
我只想获取到第一张图中的图层状态名、不想要下面的图层过滤器名称、
请教各位大神有没有好的方法,测试文件我放附件里面了、感谢大家!
e2002 发表于 2023-3-24 15:10
update:查了一下,确认是2008版开始提供的,距今14年了。
至少在2012版就提供了这些函数:
谢谢、这个东西确实一直没用过、主要是全英文看不懂、我刚看了一圈、找到一个判断图层状态是否存在的函数、配合我上面的代码、就可以过滤出哪些是图层状态名、哪些是图层过滤器名称了 試試這個
(defun c:tt( / adoc)
(setq lst nil)
(setq adoc(vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lyr(vla-get-layers adoc)(setq lst (cons (vla-get-name lyr) lst)) )
lst
);end_defun
e2002 发表于 2023-3-24 09:57
最初是没有,后来为操作layerstate ,autodesk提供了一系列的AutoLISP函数,在帮助文档中有。
是不是需要CAD2021以上才行啊、我用的2020没有搜到图层状态有关函数、不知道是不是搜索方式不对 lee50310 发表于 2023-3-24 03:49
試試這個
你这个是遍历图层吧、我想要的是获取图层状态名、不是图层名 最初是没有,后来为操作layerstate ,autodesk提供了一系列的AutoLISP函数,在帮助文档中有。 本帖最后由 lee50310 于 2023-3-24 14:55 编辑
xiaocainiao 发表于 2023-3-24 06:35
你这个是遍历图层吧、我想要的是获取图层状态名、不是图层名
那看看這個....輸入程式指令名稱 Layer-List,獲取 圖層狀態名
本帖最后由 e2002 于 2023-3-24 15:15 编辑
update:查了一下,确认是2008版开始提供的,距今14年了。
至少在2012版就提供了这些函数:
lee50310 发表于 2023-3-24 13:33
那看看這個....輸入程式指令名稱 Layer-List,獲取 圖層狀態名
你这是自己搞的程序吧、我输入没有这个命令 e2002 发表于 2023-3-24 09:57
最初是没有,后来为操作layerstate ,autodesk提供了一系列的AutoLISP函数,在帮助文档中有。
谢谢、会查了、以前没查过帮助、都是用论坛里面提供的lisp函数
页:
[1]
2