乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 108|回复: 5

删除一个图层上的所有实体,用什么办法比较好呢?

[复制链接]

28

主题

117

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
229
发表于 2003-7-3 20:10:00 | 显示全部楼层 |阅读模式
我目前用的方法是
for i=0 to mospace.count-1 step 1
if mospace.item(i).layer="kk" then
set entry=mospace.item(i)
entry.delete
end if
next
但如果mospace中实体数量很大的时候就很慢了,请问有没有更好的办法呢?
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-7-3 22:51:00 | 显示全部楼层
用选择集的方法比较好
回复

使用道具 举报

2

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
11
发表于 2003-7-7 11:47:00 | 显示全部楼层
如何使用选择集?
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-7-7 12:24:00 | 显示全部楼层
  1. Sub DelLayEnt()
  2.     Dim LayerName As String
  3.     LayerName = "0"  '这里保存着要删除的图层名称
  4.     Dim ss As AcadSelectionSet
  5.     Set ss = CreateSelectionSet()
  6.     Dim fType As Variant
  7.     Dim fDate As Variant
  8.     BuildFilter fType, fData, 8, LayerName
  9.     ss.Select acSelectionSetAll, , , fType, fData
  10.     Dim Ent As AcadEntity
  11.     For Each Ent In ss
  12.         Ent.Delete
  13.     Next
  14.     Update
  15.     Debug.Print "所有在图层" & LayerName & "上的对象都已经被删除了。"
  16. End Sub
  17. Public Sub BuildFilter(typeArray, dataArray, ParamArray gCodes())
  18.     Dim fType() As Integer, fData()
  19.     Dim index As Long, i As Long
  20.    
  21.     index = LBound(gCodes) - 1
  22.         
  23.     For i = LBound(gCodes) To UBound(gCodes) Step 2
  24.         index = index + 1
  25.         ReDim Preserve fType(0 To index)
  26.         ReDim Preserve fData(0 To index)
  27.         fType(index) = CInt(gCodes(i))
  28.         fData(index) = gCodes(i + 1)
  29.     Next
  30.     typeArray = fType: dataArray = fData
  31. End Sub
  32. Public Function CreateSelectionSet(Optional ssName As String = "ss") As AcadSelectionSet
  33.     Dim ss As AcadSelectionSet
  34.    
  35.     On Error Resume Next
  36.     Set ss = ThisDrawing.SelectionSets(ssName)
  37.     If Err Then Set ss = ThisDrawing.SelectionSets.Add(ssName)
  38.     ss.Clear
  39.     Set CreateSelectionSet = ss
  40. End Function
回复

使用道具 举报

58

主题

274

帖子

14

银币

中流砥柱

Rank: 25

铜币
507
发表于 2012-4-1 09:05:00 | 显示全部楼层
谢谢mccad,代码非常好用
回复

使用道具 举报

1

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
7
发表于 2012-9-7 10:13:00 | 显示全部楼层
这个是什么语言的代码
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-30 02:38 , Processed in 0.758432 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表