2006年dvb在2007年?
在ACAD2006中创建的dvb文件在2007年可以工作吗?是的,除非你做了什么疯狂的事,把它贴出来,我';我帮你试试 为了使用Acad 2007,我不得不更改DVB的参考:Autocad/Objectdbx Common 16.0类型库必须替换为Autocad/ObjObjectDBx Common 17.0类型图书馆。 让dvb文件跨多个版本工作的问题之一是早期绑定。如果要使用VBA或AutoCAD类型库以外的特定类型库,如果进行后期绑定,则会使程序更具可移植性。大多数类型库允许您选择基本版本,操作系统将跟踪最新版本
例如,如果我想获得AutoCAD 2007的参考,我可以使用[代码但是如果我想让代码在任何版本上运行,我会使用Set Acad = GetObject(,"AutoCAD.Application")
我希望这一切都像泥一样清澈。。。 谢谢大家的回复 ;本人';我对VBA很陌生
基思,所以不要设置;“硬”;工具/引用/对话框中的引用;我可以(应该)在模块中设置它们 
现在,我在模块&;中引用了ObjectDBX 16.0类型库;使用以下语句Dim dbxDoc As AxDbDocument 因此,我应该删除引用并添加以下内容:
Set dbx = GetObject(,"ObjectDBX")
Dim dbxDoc as dbx.AxDbDocument ?? 简而言之,是的,除了你需要使用;GetInterfaceObject“;对于ObjectDBX库
因此..在本例中,您只需要运行应用程序,而不需要添加对类型库的任何引用
Sub Test()
Dim ACDbx As Object
Dim Block As AcadBlock
Set ACDbx = GetInterfaceObject("ObjectDBX.AxDbDocument")
ACDbx.Open ("c:\test.dwg")
For Each Block In ACDbx.Blocks
MsgBox Block.Name
Next
Set ACDbx = Nothing
End Sub
答案并不总是那么简单,因为并非所有库都适用于所有版本的AutoCAD,但如果以编程方式设置引用,它将从计算机上的当前版本加载类,而不是尝试从开发计算机加载类
哦..你不';t根据'加载ObjectDBX对象;实际上,您加载了文档界面,然后打开了您想要操作的文档。 谢谢基思-我';我试试看!
页:
[1]