错误层上的块
VBA-好的,我是由不在零层上的块和外部参照生成的
如何收集块集合,然后将所有块和外部参照放置在层0上?
获取所有acadblockreference和acadexternalreference对象的选择集。迭代选择集中的每个项目,将其层设置为;0
Public Sub BlocksAndXrefsToZeroLayer()
Dim oEnt As AcadEntity
Dim I As Integer
Dim oSS As AcadSelectionSet
Dim iType(3) As Integer
Dim vData(3) As Variant
Dim P1(2) As Double
Dim P2(2) As Double
Set oSS = getSS("zlayer")
iType(0) = -4: vData(0) = ""
oSS.Select acSelectionSetAll, P1, P2, iType, vData
If oSS.Count < 1 Then Exit Sub
For I = 0 To oSS.Count - 1
Set oEnt = oSS(I)
If ThisDrawing.Layers(oEnt.Layer).Lock Then
' entity is on a locked layer - can't change it
Else
oEnt.Layer = "0"
oEnt.Update
End If
Next
End Sub
Public Function getSS(strName As String) As AcadSelectionSet
Dim SS As AcadSelectionSet
On Error Resume Next
ThisDrawing.SelectionSets(strName).Delete
Set SS = ThisDrawing.SelectionSets.Add(strName)
Set getSS = SS
End Function
谢谢马克,我';我试试看。 马克,
神奇的代码
谢谢!
页:
[1]