gzhycsu 发表于 2009-12-22 15:57:00

好心人帮帮小弟吧 关于ObjectDBX

<p>在窗体初始化的时候</p><p>Private Sub Form_Initialize()<br/>&nbsp;&nbsp;&nbsp; If Left(Version, 2) = "15" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objDBX = CreateObject("ObjectDBX.AxDbDocument.1")<br/>&nbsp;&nbsp;&nbsp; ElseIf Left(Version, 2) = "16" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objDBX = CreateObject("ObjectDBX.AxDbDocument.16")<br/>&nbsp;&nbsp;&nbsp; End If<br/>End Sub</p><p>为什么以上代码创建不了ObjectDBX.啊?</p><p>好心人帮帮我吧</p>

liub951030 发表于 2009-12-22 17:09:00

&nbsp;&nbsp;&nbsp; Dim objDBX As AxDbDocument<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; Set objDBX = CreateObject("ObjectDBX.AxDbDocument.1")<br/>&nbsp;&nbsp;&nbsp; If err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objDBX = CreateObject("ObjectDBX.AxDbDocument.15")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objDBX = CreateObject("ObjectDBX.AxDbDocument.16")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objDBX = CreateObject("ObjectDBX.AxDbDocument.17")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objDBX = CreateObject("ObjectDBX.AxDbDocument.18")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; On Error GoTo 0<br/>我一般是这样用的,因为我也分不清"."后面到底要多少才好!

英雄无敌 发表于 2009-12-24 11:28:00

<p>用Create方法好像不能成功,不知道楼上的完整代码是怎样的,但通过acadobject对象可以</p><p>前提是要事先打开了CAD</p><p>&nbsp;&nbsp;&nbsp; Set AcadObj = GetObject(, "autocad.application.16")<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox "没有打开AutoCAD 2004"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Unload Me<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' SetParent Me.hwnd, AcadObj.hwnd<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Set DbxObj = AcadObj.GetInterfaceObject("ObjectDBX.AxDbDocument.16")<br/></p>

gzhycsu 发表于 2009-12-26 20:48:00

<p>谢谢大家的帮助 后面的数字好像是指CAD的版本号吧? 怎么知道那个版本的CAD对应那个数字啊?</p>

英雄无敌 发表于 2009-12-27 14:39:00

这恐怕要读取注册表了,不同的CAD版本号在注册表中都有的,如果你是自己用,在CAD中输入acadver就可以看到版本号,如果要做通用软件,那你就必须去研究注册表了。

zzyong00 发表于 2010-1-13 16:23:00

<p>Set AcadObj = GetObject(, "autocad.application")</p><p>....................</p><p>............</p><p>不要带版本号,得到系统默认的autocad版本<br/></p>
页: [1]
查看完整版本: 好心人帮帮小弟吧 关于ObjectDBX