wkplan 发表于 2022-7-6 11:42:36

如何访问Layerstatus

大家好,
 
使用以下代码,我可以创建并保存新的图层状态:
 
是否有方法检查层状态allready是否存在?
考虑过类似TBLSEARCH的内容,但在帮助文件中找不到任何内容。。。
 
向所有人致意
沃尔夫冈

lpseifert 发表于 2022-7-6 11:49:19

不确定你在找什么,在-layer命令中没有状态选项。。。
如果要查看层状态是否存在,请查看(layerstate getnames)函数

StevJ 发表于 2022-7-6 11:57:18

我用这个:
 
这并不漂亮,但很管用。
史蒂夫
.

Lee Mac 发表于 2022-7-6 12:01:18

我认为他是在寻找层状态,而不是实际的层,但如果您愿意,可以将代码整理成这样:
 

(if (tblsearch "LAYER" "NOPLOT")
(setvar "CLAYER" "NOPLOT")
(command "_.-Layer" "_M" "NOPLOT" "_C" "MAGENTA" "NOPLOT" "_LT" "CONTINUOUS" "NOPLOT" "U" "NOPLOT" ""))

 
不需要第二个程序

StevJ 发表于 2022-7-6 12:04:16

哎呀。我误解了。
李,谢谢你的清理工作。
 
(^_^)
史蒂夫

wkplan 发表于 2022-7-6 12:09:52

 
是的,我指的是图层状态。
对不起,我不是母语人士,在德语中这叫做“层状态”。
 
多亏了LeeMac和StevJ,我只想看看是否存在某个层状态(具有一个众所周知的名称)。
 
请给我一些时间看看lpseifert的建议,(layerstate getnames)听起来很棒。
 
带着解决方案回来(希望不是带着另一个问题!)
沃尔夫冈

Lee Mac 发表于 2022-7-6 12:12:46

我会使用以下内容:
 

(if (vl-position (strcase <item>) (mapcar (function strcase) (layerstate-getnames)))
..

lpseifert 发表于 2022-7-6 12:22:03

六羟甲基三聚氰胺六甲醚。。。使用2009 at work,(layerstate getnames)可以工作。在家里使用2008,它没有。;甚至没有出现在开发者的帮助中。该功能是在2009年添加的吗?

wkplan 发表于 2022-7-6 12:23:42

大家好,
谢谢你的回答。
 
我在2005年的开发帮助中找到了一些“layerstate”的入口,但对我来说这似乎是VBA。。。
...仍在学习lisp,没有足够的大脑来学习另一种语言:lol:
 
作为一种解决方法,我决定保存当前图层状态,然后创建一个同名的新图层。这样,我可以对该层进行tblsearch,如果tblsearch无法查找该层,我知道层状态尚未保存。
 
我需要这个功能,因为我写了一个小工具,它通过简单的点击来冻结对象层。
 
如果图形有多个图层并且所有图层都处于启用状态,则此选项非常有用。
Thaught在使用该工具之前保存当前层状态一次会很好。
 
代码如下:
我知道这远不是一个完美的代码,但可能对其他人有用。
 
当做
沃尔夫冈

Lee Mac 发表于 2022-7-6 12:27:59

Wolfgang,我在#7中的代码建议对你无效吗?
页: [1] 2
查看完整版本: 如何访问Layerstatus