兰州人 发表于 2008-7-11 09:37:00

ObjectIdToObject引起的CAD崩溃。

这条语句Set Ent = ThisDrawing.ObjectIdToObject(gg.Cells(ii, jj)),能引起系统崩溃,百思不得起解?
ObjectIDObject读的数据源是
212790095221279009602127900968212790099221279017762127901768
存在问题如下
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

mccad 发表于 2008-7-15 16:41:00

句柄Handle在图形重新打开后都不会改变,而OjbectID是每次打开图形时都不同。
页: [1]
查看完整版本: ObjectIdToObject引起的CAD崩溃。