明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1863|回复: 3

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

[复制链接]
发表于 2009-10-26 09:19:00 | 显示全部楼层 |阅读模式

RT

Public Sub delete()

Dim objLayer As AcadLayer
Set objLayer = ThisDrawing.Layers("testlayer")

'这里用什么方法?

End Sub

 楼主| 发表于 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 是何意?

发表于 2009-10-26 19:38:00 | 显示全部楼层

表示以"图层"组码为条件的过滤器,必须与图层名组合起来用.如果会LISP的话,可以用

(setq obj (entset (ssname (ssget) 0)))看来所选择对象相应的组码值.

发表于 2009-10-27 07:32:00 | 显示全部楼层

1按图层过滤实体

2删除

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 01:27 , Processed in 0.160290 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表