代码请求
我需要代码来评估哪些图层在MS中是关闭的或冻结的,然后在所有布局的所有视口中冻结它们。有人至少得到了接近这一点的东西吗?
:丑陋:
**** Hidden Message ***** 这确实做到了,但使用SendCommand.....
Sub freezeall()
Dim oLay As AcadLayer
Dim lSpace As Long
Dim iEcho As Integer
ThisDrawing.StartUndoMark
lSpace = ThisDrawing.ActiveSpace
iEcho = ThisDrawing.GetVariable("nomutt")
ThisDrawing.SetVariable "nomutt", 1
ThisDrawing.ActiveSpace = acPaperSpace
For Each oLay In ThisDrawing.Layers
If oLay.Freeze = True Or oLay.LayerOn = False Then
ThisDrawing.SendCommand "vplayer f " & oLay.Name & vbCr & "a" & vbCr & vbCr
End If
Next
ThisDrawing.ActiveSpace = lSpace
ThisDrawing.SetVariable "nomutt", iEcho
ThisDrawing.EndUndoMark
End Sub
那么vplayer不暴露于VBA?似乎奇怪的是,您可以通过其他方式操纵层 有了。您必须更改存储在视口(1002,1003)中的扩展数据
Frank Z或O制作了一个不错的“sub VpLayerOff”,它googles ok
页:
[1]