明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1459|回复: 2

ObjectIdToObject引起的CAD崩溃。

[复制链接]
发表于 2008-7-11 09:37:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-7-11 11:30:23 编辑

这条语句Set Ent = ThisDrawing.ObjectIdToObject(gg.Cells(ii, jj)),能引起系统崩溃,百思不得起解?

ObjectIDObject读的数据源是

212790095221279009602127900968
212790099221279017762127901768

存在问题如下

1、上表数据获取是从Ent.ObjectID得来,反过来再通过ObjectID来更改其实体属性(如更改文本属性TextString)。可是有的实体读出来后,有实体不存在现象的表述。

2、解决方法用的是将所有实体copy后册除

Sub CopyEntityDeleteEntity()
  Dim Ent As AcadEntity, Ent1 As AcadEntity
  For Each Ent In ThisDrawing.ModelSpace
    Set Ent1 = Ent.Copy()
    Ent1.Delete
  Next Ent 
End Sub

通过ObjectIDObject可得到实体,但也出现了系统崩溃现象。

3、解决之道,就是将这个文件在文件夹中copy 后,paste重新改名才得以解决。

提示 ObjectIDToOjbect作用于对象ICadDocument失败 error is Run-time error-2147467259(80004005)

以此为题耗时费力,当网虫,大海捞针。拿本书去肯砖头吧?

 楼主| 发表于 2008-7-11 16:33:00 | 显示全部楼层

看来老天爷照顾,没花多少时间,参考了discussion.autodesk.com相关内容,基本找到原因。

不应用ObjectID而直接用handle

发表于 2008-7-15 16:41:00 | 显示全部楼层

句柄Handle在图形重新打开后都不会改变,而OjbectID是每次打开图形时都不同。

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

本版积分规则

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

GMT+8, 2024-11-26 08:27 , Processed in 0.137801 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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