hbyu2003 发表于 2015-7-20 15:53:08

求高手指点,64位的autocad2012中文版AutoCAD/ObjectDBX不能用

win7的64位安装了64位的2012版中文版,AutoCAD/ObjectDBX技术不能用,在添加引用时,没有发现AutoCAD/ObjectDBX common 18.0 Type,在C:\Program   Files\Common   Files\Autodesk   Shared也有axdb18enu.tlb文件,但就是选择后也无效,求高手指点。

hbyu2003 发表于 2015-8-3 20:46:53

知道原因了,CreateObject在2012下不能用,要用GetInterfaceobjet,引用也不是AutoCAD/ObjectDBX了,而是Axdlb,谢谢zzyong00

zzyong00 发表于 2015-7-21 11:19:40

Dim objDbx
Public Sub AcDb_Initialize()
    If Val(left(objCad.version, 2)) >= 16 Then
      Set objDbx = objCad.GetInterfaceObject("ObjectDBX.AxDbDocument." & left(objCad.version, 2))
    Else
      MsgBox "Autocad版本不支持!", vbQuestion + vbOKOnly, App.Title
    End If
   
End Sub

objCad是什么,不用我说了吧?

hbyu2003 发表于 2015-7-29 23:13:07

Dim objDbx As Object
Dim objCad As AcadApplication

Public Sub AcDb_Initialize()
'Set objCad = ThisDrawing.Application
   If Val(Left(objCad.Version, 2)) >= 16 Then
         Set objDbx = objCad.GetInterfaceObject("ObjectDBX.AxDbDocument." & Left(objCad.Version, 2))
   Else
         MsgBox "Autocad版本不支持!", vbQuestion + vbOKOnly, App.Title
   End If
   
End Sub
'运行时出现错误啊。

hbyu2003 发表于 2015-7-29 23:18:24

在64的cad2014版本下能用,可以加载引用。2012下还是不能引用的原因吧。
If VBA.Left(Version, 2) = "15" Then
      Set ObjDbx = CreateObject("ObjectDBX.AxDbDocument.1")
    ElseIf VBA.Left(Version, 2) = "16" Then
      Set ObjDbx = CreateObject("ObjectDBX.AxDbDocument.16")
    ElseIf VBA.Left(Version, 2) = "17" Then
      Set ObjDbx = CreateObject("ObjectDBX.AxDbDocument.17")
    ElseIf VBA.Left(Version, 2) = "18" Then
      Set ObjDbx = CreateObject("ObjectDBX.AxDbDocument.18")
    ElseIf VBA.Left(Version, 2) = "19" Then
      Set ObjDbx = CreateObject("ObjectDBX.AxDbDocument.19")
      
    End If
‘这是我写的程序。其他版本都能

hbyu2003 发表于 2015-7-29 23:22:53

这是错误提示。郁闷死人不。
页: [1]
查看完整版本: 求高手指点,64位的autocad2012中文版AutoCAD/ObjectDBX不能用