我使用了以下代码来实现类似的功能…锁定所有视口
我添加了“layer=Defpoints”,它仍然可以正常工作
- Public Sub x()
- Dim FilterType(0) As Integer
- Dim FilterData(0) As Variant
- Dim sset As AcadSelectionSet
- Dim objVP As AcadPViewport
- Dim x As Integer
-
- FilterType(0) = "0"
- FilterData(0) = "VIEWPORT"
- Set sset = vbdPowerSet("VPUpdate")
- sset.Select acSelectionSetAll, , , FilterType, FilterData
- For x = 0 To sset.Count - 1
- Set objVP = sset(x)
- objVP.Layer = "Defpoints"
- objVP.DisplayLocked = True
- Next x
- End Sub
- Private Function vbdPowerSet(strName As String) As AcadSelectionSet
- Dim objSelSet As AcadSelectionSet
- Dim objSelCol As AcadSelectionSets
-
- Set objSelCol = ThisDrawing.SelectionSets
- For Each objSelSet In objSelCol
- If objSelSet.Name = strName Then
- objSelSet.Delete
- Exit For
- End If
- Next
- Set objSelSet = ThisDrawing.SelectionSets.Add(strName)
- Set vbdPowerSet = objSelSet
- End Function
|