econnerly 发表于 2022-7-5 16:47:23

lisp请求:关闭所有lay

我以前有一个非常方便的lisp,但后来换了公司,忘了带上它。
 
该命令是LPO,它将打开每个关闭的层,甚至外部参照,我将能够单独单击我想要保留的层。单击enter后,其他层将返回到关闭状态。这是我见过的最有用的套路之一。
 
我有非常基本的Lisp程序周围的知识,真的很感谢一些帮助。
 
我也做了搜索,没有找到任何类似的。
 
提前感谢。

Grrr 发表于 2022-7-5 16:59:15

听起来像Kent Kooper的Layer Isolate/Unisolate。但我不确定它是否适用于外部参照。

econnerly 发表于 2022-7-5 17:10:58

 
事实上是相反的。我碰巧有一个旧的命令gif。
 
http://i.imgur.com/8z32cUr.gifv

econnerly 发表于 2022-7-5 17:21:52

你会发出命令,它会把所有“关”的东西都变成“开”。然后,你可以用你的鼠标选择各个图层,使其保持“打开”。其余的原始关闭层将返回到“关闭”状态。

BIGAL 发表于 2022-7-5 17:37:09

如果你看一下这段代码,它显示了层的细节,在这个阶段没有代码,有些人可能有一些不难的任务,为什么不亲自去做呢。
 

(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq alllayers (vla-get-layers doc))
(vlax-for lay alllayers
(vlax-dump-object lay)
)

 
查看转储,您将看到打开/关闭freez/解冻开关,因此可以列出现有条件。
 

; IAcadLayer: A logical grouping of data, similar to transparent acetate overlays on a drawing
; Property values:
;   Description = ""
;   Freeze = 0
;   LayerOn = -1
;   Linetype = "Continuous"
;   Lineweight = -3
;   Lock = 0
;   Material = "Global"
;   Name = "0"
;   PlotStyleName = "Color_7"
; IAcadLayer: A logical grouping of data, similar to transparent acetate overlays on a drawing
; Property values:
;   Description = ""
;   Freeze = -1
;   LayerOn = -1
;   Linetype = "Continuous"
;   Lineweight = -3
;   Lock = 0
;   Material = "Global"
;   Name = "alan1freeze"
;   PlotStyleName = "Color_7"
;   Plottable = -1
; IAcadLayer: A logical grouping of data, similar to transparent acetate overlays on a drawing
; Property values:
;   Description = ""
;   Freeze = 0
;   LayerOn = 0
;   Linetype = "Continuous"
;   Lineweight = -3
;   Lock = 0
;   Material = "Global"
;   Name = "alan2off"

econnerly 发表于 2022-7-5 17:42:27

我希望我对lisp的了解能像这个板块上的大多数人一样好。这让我头晕。
 

BIGAL 发表于 2022-7-5 17:48:22

我确信有一个lisp“保存当前图层设置”我没有。下一步是重置冻结和图层设置,然后将图层重置回原来的状态。也许周末我有时间
页: [1]
查看完整版本: lisp请求:关闭所有lay