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

好心人帮帮小弟吧 关于ObjectDBX

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

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

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

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

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

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

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

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

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

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

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