ahyin 发表于 2022-7-5 22:37:32

冻结所有层

尊敬的各位:,
 
我想冻结所有层,但我不知道代码是什么,我知道如果我按此关闭所有层,
 
(项目图层的vlax(vlax put属性项目“LayerON”':vlax false))
 
但是当我尝试使用
 
(vlax for item theLayers(vla put freeze item:vlax true))出现错误。
 
当做

MSasu 发表于 2022-7-5 22:44:01

请不要忘记,您无法冻结当前层。所以你应该从列表中筛选出来-可以按CLAYER系统变量列出。
 
当做

David Bethel 发表于 2022-7-5 22:45:33

为什么不使用标准命令?
(command "_.LAYER" "_Freeze" (strcat "~" (getvar "CLAYER')) "")
我看到越来越多的人无缘无故地逃避命令。我的0.02美元-David

ahyin 发表于 2022-7-5 22:50:16

谢谢msasu。
 
但是如何编写这段代码,请原谅我是lisp新手。我收到了以下错误消息。
 
命令:(vlax for item theLayers(vla put freeze item:vlax true))
*取消*
自动化错误。无效层

MSasu 发表于 2022-7-5 22:53:03

我假设theLayers变量是一个包含层实体的列表,因此您应该通过将其名称与CLAYER系统变量中存储的名称进行比较来确保跳过当前层:
 
(vlax-for item theLayers
         (if (not (equal (vla-get-name item)
                         (getvar "CLAYER")))
          (vla-put-freeze item :vlax-true)))
 
 
当做

Tharwat 发表于 2022-7-5 22:56:11

按顺序尝试以下操作,完全不使用Lisp,而且更重要的是。它将冻结除当前层之外的所有层;

-layer
F<enter>
*<enter>
<enter>
<enter>

 
非常简单。。。。。
 
当做
 
塔瓦特

ahyin 发表于 2022-7-5 23:01:45

谢谢msasu。
 

MSasu 发表于 2022-7-5 23:04:54

不客气!
 
当做

ahyin 发表于 2022-7-5 23:06:08

感谢所有CAD专家!

Se7en 发表于 2022-7-5 23:10:37

 
*呵呵,是的,我也注意到了同样的事情。
但是大卫,你不知道其他的东西都很花哨吗!?它只是“干净”、“好”和“酷”。我是说,伙计,跟上时代!
*lol*
页: [1] 2
查看完整版本: 冻结所有层