Ahankhah 发表于 2022-7-6 07:23:17

是否有+层的替代方案???

大家好,
我想在开始新dwg或打开现有dwg文件时激活所需的图层过滤器,但调用+图层或-图层(以及过滤器->设置选项)不会产生任何效果或导致致命错误。
 
谁知道有什么替代方法可以将现有的图层过滤器设置为活动的?
 
注:
 
1-导致致命错误的代码如下:
(command "_.+LAYER" %filter-name% "" "")
 
2-本规范无效:
(command "_.-LAYER" "_Filter" "_Set" %filter-name% "")
 
非常感谢任何帮助或线索

BlackBox 发表于 2022-7-6 07:40:15

我记得有一个帖子讨论了层过滤器;如果内存可用,Lee能够识别图层过滤器包含在图形文档的特定字典中。
 
HTH公司

Ahankhah 发表于 2022-7-6 07:45:29

伦德曼,
我很容易定义一个新的层过滤器。当然,这是我从李那里学到的,非常感谢他。
 
我的问题是通过VLISP代码激活现有的层滤波器。

Lee Mac 发表于 2022-7-6 07:59:23

 
据我所知,我不相信AutoLISP/Visual LISP API曾经提供过此功能-可以通过创建必要的字典和XRecord条目来定义新的层过滤器,但是,我认为,如果不调用命令行,就无法通过AutoLISP或Visual LISP将层过滤器设置为最新。

Ahankhah 发表于 2022-7-6 08:08:37

李,
我解决了这个问题。调用“LAYER”命令并输入其“Filter”选项(隐藏选项),然后输入“Set”选项,最后输入所需现有层过滤器的名称,就可以实现目标。当然,为了确保命令生效,必须临时重命名“图层过滤器”,然后再次将其恢复为原始名称,如以下代码所示:
 


;;;MT:Set:Active:LayerFilter - Mehdad Ahnkhah - Mehre Taban
(defun MT:Set:Active:LayerFilter (%filter-name%)
;; here ensure that %filter-name% exists
(setvar 'Cmdecho 0)
(command
"_.-LAYER" "_Filter" "_Set" %filter-name% "_eXit" ""
"_.-LAYER" "_Filter" "_Rename" %filter-name% "temp" "_eXit" ""
"_.-LAYER" "_Filter" "_Rename" "temp" %filter-name% "_Set" %filter-name% "_eXit" ""
)
(setvar 'Cmdecho 1)
)

Lee Mac 发表于 2022-7-6 08:22:06

我很高兴你能解决这个问题Mehrdad-做得好。

Ahankhah 发表于 2022-7-6 08:26:49

非常感谢李。
 
为了成功:
有一些方法可以定位,
如果没有,有一些方法可以创建。
页: [1]
查看完整版本: 是否有+层的替代方案???