明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3542|回复: 9

[讨论]关于利用ObjectDbx技术获取或修改图元数据

[复制链接]
发表于 2007-7-31 10:30:00 | 显示全部楼层 |阅读模式

关于利用ObjectDbx技术获取或修改图元数据,请教两个问题:

1.除了在AutoCAD VBA环境下使用之外,能否在VB或OFFICE VBA中使用?若能,需要哪些设置?

2.访问图元时是否只能通过遍历所有图元并逐一判断是否为期望的图元,能否根据图元句柄直接获取图元?

发表于 2007-7-31 14:48:00 | 显示全部楼层

回答1:除了在AutoCAD VBA环境下使用之外,ObjectDbx技术能在VB或OFFICE VBA中使用,须在VB或OFFICE VBA中引用 ObjectDbx 类型库;

回答2:AutoCAD图元句柄是在图纸打开随机生成的,也就是说图纸中某一图元的句柄不是固定不变的。访问图元时不用通过遍历所有图元,你可以根据你要访问图元的类型过滤掉不需要遍历的图元,提高效率。

 楼主| 发表于 2007-8-2 11:17:00 | 显示全部楼层

问题3:用ObjectDbx的open方法打开一个文件执行完处理之后,如何将DWG文件释放?不释放的话,CAD不能打开该图,说是该图正在被使用。

 楼主| 发表于 2007-8-6 12:12:00 | 显示全部楼层

在VB或OFFICE VBA中均没有测试成功,已经引用 ObjectDbx 类型库。

执行语句 Set objDBX = CreateObject("ObjectDBX.AxDbDocument.1") 时报错:ActiveX部件不能创建对象

无论CAD是否启动都是如此,在VB或OFFICE VBA中所报错误相同,同样的语句在AutoCAD VBA中运行正常

 楼主| 发表于 2007-8-6 12:15:00 | 显示全部楼层
问题4:用ObjectDbx技术可以读取属性块的属性值,请问如何修改并保存属性块的属性值?
 楼主| 发表于 2007-8-6 12:20:00 | 显示全部楼层
问题5:我的机器上安装的是CAD2002,除了有ObjectDBX1.0类型库之外,还有一个AutoCAD/ObjectDBX Common 1.0类型库,请问两者有什么关系,后者如何使用?
 楼主| 发表于 2007-8-13 08:00:00 | 显示全部楼层
看来没什么人关心ObjectDbx。
发表于 2007-8-13 17:23:00 | 显示全部楼层

不太懂这个方面的东西,你如果懂不妨拿出一些例子程序来,或者书单也行

我们学习学习,

学习的人多了,有问题时回的人自然就多了。

发表于 2008-10-15 09:55:00 | 显示全部楼层
本帖最后由 nonsmall 于 2012-7-29 20:13 编辑

Private Sub Command1_Click()
    Set Acad = GetObject(, "AutoCAD.Application.16")
    Set AcadDbx = Acad.GetInterfaceObject("ObjectDBX.AxDbDocument.16")
End Sub

发表于 2014-2-21 13:51:28 | 显示全部楼层
猫老师是高手啊,搜了好久,都没发现别人知道这个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:02 , Processed in 0.154794 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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