mccad 发表于 2003-11-16 20:14:00

ObjectDBX库与AutoCAD类型库的主要区别

1.DBX库中没有Application对象,也就是说没有应用程序对象,所以一切与该对象有关的属性方法都不可用,如窗口的缩放、程序的加载卸载、图形的缩放等。
2.DBX库中没有事件,所以不要指望用事件来触发一些动作。
3.DBX库中没有打印项,但有打印配置。
4.DBX库中没有选择集。
5.DBX库中没有菜单和工具栏项。
6.DBX库中没有Utility(实用工具)项,也就是说该项中的各种数据的输入方法都不可用。
7.DBX中没有设置当前标注样式、字体样式、图层、布局、线型、视口、选择集等项。
8.由于DBX库中的SaveAs方法只能另存为当前版本的DWG文件, 没有Export和Import方法,所以增加了DXFIn和DXFOut两个方法来输入和输出DXF文件。
9.DBX库中没有保存SetVariable和读取GetVariable系统变量的方法。
10.DBX库中没有EndUndoMark、LoadShapeFile、PurgeAll、Regen、SendCommand、StartUndoMark 、WBlock 方法。

基本上就以上这些不同的地方。
因为没有选择集,所以要对图形中的某些特征对象修改时只能遍历整个图形,这样也就会浪费很多时间。
因为SaveAs方法没有版本选项,所以你不能通过DBX来保存成低版本的图形。
因为没有符号表的当前活动项,你不能在不打开图形的情况下修改活动的配置让以后图形打开后直接显示活动配置。
没有Wblock方法将部分图形输出成文件,但可以用CopyObjects方法将图形中的某些内容复制到打开的图形中。
用DBX保存的文件不能形成缩略图,因为它不知道当前窗口的内容。

efan2000 发表于 2004-1-19 12:01:00

ljq发表于2004-1-16 15:35:00static/image/common/back.gifdbx的SaveAs可用,但save不可用,为什么?



可能是防止原文件被修改吧。只有自己来解决了。
打开原文件,使用SaveAs另存成一临时文件,关闭原文件,删除,再更改临时文件的名称为原文件的名称。

树櫴希德 发表于 2023-7-4 21:06:35

mccad 发表于 2003-11-17 22:40
其实ObjectDBX最致命的问题就是没有选择集和选择方法(指无需要交互操作的选择方法)。
这样造成了要得到某 ...

请问DBX不能新增图源是吗?

xazjg 发表于 2021-9-28 11:06:33

我用dbx打开文件后,使用saveas方法保存,总显示错误,文件共享冲突,造成死机,并且产生了dwl,dwl2文件无法删除,源文件被锁定

myfreemind 发表于 2003-11-16 23:28:00

这样的话就限制了许多功能,虽然说用VBA也可以实现批量的操作,但必须要用AUTOCAD先打开,一次又不能打开太
多的图,还是有一些手工活要做!:)

龙龙仔 发表于 2003-11-17 14:24:00

解决DBX库中没有WBlock 方法:
思路:
用转换方式处理 ,先把未打开图檔中要wblock的图块转入目前图文件,再用wblock指令输出,再把目前图檔内图块定义purge。

mccad 发表于 2003-11-17 22:40:00

其实ObjectDBX最致命的问题就是没有选择集和选择方法(指无需要交互操作的选择方法)。
这样造成了要得到某一特征对象时不得不遍历整个图形,这样对于大的图形来说会消耗很长的时间。

QQ糖 发表于 2003-11-19 22:02:00

mccad发表于2003-11-17 22:40:00static/image/common/back.gif其实ObjectDBX最致命的问题就是没有选择集和选择方法(指无需要交互操作的选择方法)。
这样造成了要得到某一特征对象时不得不遍历整个图形,这样对于大的图形来说会消耗很长的时间。



请问如何遍历整个图形来获得每个实体的信息?

ljq 发表于 2004-1-16 15:35:00

dbx的SaveAs可用,但save不可用,为什么?

myfreemind 发表于 2004-1-18 22:06:00

QQ糖发表于2003-11-19 22:02:00static/image/common/back.gif以下是引用mccad在2003-11-17 22:40:34的发言:
其实ObjectDBX最致命的问题就是没有选择集和选择方法(指无需要交互操作的选择方法)。
这样造成了要得到某一特征对象时不得不遍历整个图形,



请问如何遍历整个图形来获得每个实体的信息?

要获取其他信息你自己加就可以了!
Sub rota()

Dim ent As AcadEntity
For Each ent In ThisDrawing.ModelSpace
Debug.Print ent.ObjectName
Next

End Sub

netcai 发表于 2004-7-20 01:45:00

可能是防止原文件被修改吧。只有自己来解决了。<BR>打开原文件,使用SaveAs另存成一临时文件,关闭原文件,删除,再更改临时文件的名称为原文件的名称。


问题是我在C#中打开的文件总是无法关闭,试了很多方法都不行,不知道那位知道。

netcai 发表于 2004-7-21 00:08:00

论坛好冷清啊
页: [1] 2
查看完整版本: ObjectDBX库与AutoCAD类型库的主要区别