如何删除指定名字图层上的所有对象?
RTPublic Sub delete()
Dim objLayer As AcadLayer
Set objLayer = ThisDrawing.Layers("testlayer")
'这里用什么方法?
End Sub
'删除图层上所有对象
Function DelAllInLayer(ByVal LName As String)
'On Error Resume Next
Dim SSet As AcadSelectionSet
Set SSet = CreateSelectionSet("XXX")
Dim Ft(0) As Integer, Fd(0)
Ft(0) = 8: Fd(0) = LName
SSet.Select acSelectionSetAll, , , Ft, Fd
Dim E As AcadEntity
'MsgBox SSet.Count
For Each E In SSet
E.Delete
Next
End Function
Function CreateSelectionSet(Optional SSetName As String = "mjtd") As AcadSelectionSet
On Error Resume Next
ThisDrawing.SelectionSets(SSetName).Delete
Set CreateSelectionSet = ThisDrawing.SelectionSets.Add(SSetName)
End Function
大侠看看,测试通过了
Ft(0) = 8 是何意?
表示以"图层"组码为条件的过滤器,必须与图层名组合起来用.如果会LISP的话,可以用
(setq obj (entset (ssname (ssget) 0)))看来所选择对象相应的组码值.
1按图层过滤实体
2删除
页:
[1]