szuki 发表于 2009-10-26 09:19:00

如何删除指定名字图层上的所有对象?

RT
Public Sub delete()
Dim objLayer As AcadLayer
Set objLayer = ThisDrawing.Layers("testlayer")
'这里用什么方法?
End Sub

szuki 发表于 2009-10-26 10:08:00

'删除图层上所有对象
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 是何意?

Saging 发表于 2009-10-26 19:38:00

表示以"图层"组码为条件的过滤器,必须与图层名组合起来用.如果会LISP的话,可以用
(setq obj (entset (ssname (ssget) 0)))看来所选择对象相应的组码值.

mycad 发表于 2009-10-27 07:32:00

1按图层过滤实体
2删除
页: [1]
查看完整版本: 如何删除指定名字图层上的所有对象?