列出图层名称和实体#039;s
我的部分工作涉及检查是否有任何图层名称和实体处于/或已被洋红色覆盖在视觉上看不到整个图形并忽略一些观察实体的情况下,是否有一个或多个LISP可以更快地完成:
1) 列出洋红色的图层名称
2) 列出被洋红色覆盖的实体的层名称
3) (如有可能)隔离或放大到洋红颜色的实体或用洋红颜色覆盖的实体的方法 1非常可行
2和3搜索1000000个实体可能需要一些时间。
1和2对我来说最重要,因为查看许多图形很耗时&至于3,我仍然可以手动隔离这些层,尽管这会有所帮助。但是1和2是我最需要的。 项目1
(defun c:test ( / col ans doc lay)
(setq col (strcat "Color_" (getstring "Enter color number 1-255")))
(setq ans (strcat "Layers with " col))
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lay (vla-get-Layers doc)
(if (= (vla-get-PlotStyleName lay) Col)
(setq ans (strcatans "\n" (vla-get-name lay)))
)
)
(alert ans)
)
谢谢比格尔。弹出消息很好。此外,它是否也可以在命令行中列出,以便我可以复制文本。 将“ans”行更改为将层名称写入文件比复制文本更容易。或根据下面的新行删除(警报ans)
(setq ans (strcatans "\n" (vla-get-name lay)))
(princ (strcat "\n" (vla-get-name lay)))
将行修改为2,但不完全正确。怎么了?
(defun c:test ( / col ans doc lay)
(setq col (strcat "Color_" (getstring "Enter color number 1-255")))
(setq ans (strcat "Layers with " col))
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lay (vla-get-Layers doc)
(if (= (vla-get-PlotStyleName lay) Col)
(princ (strcat "\n" (vla-get-name lay)))
)
)
)
(defun c:test ( / col ans doc lay)
(setq col (strcat "Color_" (getstring "Enter color number 1-255")))
(setq ans (strcat "Layers with " col))
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lay (vla-get-Layers doc)
(if (= (vla-get-PlotStyleName lay) Col)
(setq ans (strcatans "\n" (vla-get-name lay)))
)
)
(princ (strcat "\n" (vla-get-name lay)))
)
页:
[1]