明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2107|回复: 3

删除图中的匿名组

[复制链接]
发表于 2012-5-10 10:45:36 | 显示全部楼层 |阅读模式
代码:
Using Trans As  Transaction = DB.TransactionManager.StartTransaction
            Dim groupDict As  DBDictionary = Trans.GetObject(DB.GroupDictionaryId,  OpenMode.ForWrite)            
            For Each Ent As  DBDictionaryEntry In groupDict
                If Ent.Key.Substring(0, 1) = "*" Then
                    Dim grpObj As Group = Trans.GetObject(groupDict.GetAt(ent.Key),  OpenMode.ForWrite)
                    grpObj.Erase()
                End If
            Next            
            Trans.Commit()            
End Using


上面的代码可以正常运行,不过有点遗憾的是,速度比较慢,删除下面测试文件中的匿名组约需30分钟这样,如果用lisp方法删除,只要5分钟左右。各位高手能否支个招,看怎样删除能提高其速度??
测试文件


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-5-11 19:47:06 | 显示全部楼层
Dim grpObj As Group = Trans.GetObject(ent.Value,  OpenMode.ForWrite)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2012-5-12 12:45:47 | 显示全部楼层
谢谢,可能是因为CAD的原因吧,我在Autocad Map 3d 2011 -64 上测试一下,删除全部匿名组还是花了近25分钟。在CAD08里删除快多了。
发表于 2012-6-22 10:55:53 | 显示全部楼层
本帖最后由 雪山飞狐_lzh 于 2012-6-22 10:56 编辑

if Ent.Key(0) = '*'  then 试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 18:27 , Processed in 0.168872 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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