h_lon 发表于 2003-12-21 11:20:00

老大,有没有除自写函数外更简单的方法实现冻结当前层外的其他图层?

mccad 发表于 2003-12-21 11:38:00

' 冻结除当前图层外的图层
Sub FreezeOtherLayer()
    Dim layer As AcadLayer
    For Each layer In ThisDrawing.Layers
      If layer.Name <> ThisDrawing.ActiveLayer.Name Then layer.Freeze = True
    Next
    ThisDrawing.Application.Update
End Sub

' 解冻除当前图层外的图层
Sub UnFreezeOtherLayer()
    Dim layer As AcadLayer
    For Each layer In ThisDrawing.Layers
      If layer.Name <> ThisDrawing.ActiveLayer.Name Then layer.Freeze = False
    Next
    ThisDrawing.Regen acAllViewports
End Sub

h_lon 发表于 2003-12-21 13:28:00

太谢谢你了.

mikewolf2k 发表于 2003-12-23 19:16:00

express/bonus 内好像有一个该功能的命令,你找找看.

h_lon 发表于 2003-12-23 20:14:00

mikewolf2k兄,express/bonus 是哪里的命令?能不能说详细点.谢谢!

mikewolf2k 发表于 2003-12-23 20:56:00

express/bonus 是安装cad时附带的.不过听说2002,2004中没有.
layers下有一大堆关于图层的命令,你自己看看吧.我没用过.

subtlation 发表于 2003-12-25 10:40:00

express有一些关于图层的命令,但是没有楼主所说的那一项。

mikewolf2k 发表于 2003-12-25 18:52:00

是吗,不好意思,我只知道有一些关于图层的命令,但我没用过,具体什么功能并不清楚.

subtlation 发表于 2003-12-26 13:07:00

已经把老大这个程序下载了,然后在增加了加锁和解锁。方便多了。
原来经常用cad自带的命令,慢许多,可是一直想不起来要编一个。多到这儿来可以拓宽思路啊。
页: [1]
查看完整版本: 老大,有没有除自写函数外更简单的方法实现冻结当前层外的其他图层?