WWWDONG 发表于 2003-10-12 16:57:00

在vb中打开2004图形时出错

此段程序在r14时使用正常,r2004中修改了版本类型,可打开r2004的程序,却无法打开
图形,也不提示出错,不知为何?请斑竹指教
On Error Resume Next
   Set acadapp = GetObject(, "AutoCAD.application.16")
   If Err Then
   Err.Clear
   Set acadapp = CreateObject("AutoCAD.application.16")
      If Err Then
         MsgBox Err.Description
         Exit Sub
      End If
   End If
Set acaddoc = acadapp.activedocument
    acadapp.Activate
    acadapp.Application.Visible = True
    acadapp.Windows(1).Visible = True
    acaddoc.open (c:\1.dwg)

gzy 发表于 2003-10-12 17:06:00

我的这段没有什么问题,你参考参考吧
On Error Resume Next
   Set acadapp = GetObject(, "AutoCAD.application")
   If Err Then
   Err.Clear
   Set acadapp = CreateObject("AutoCAD.application")
      If Err Then
         MsgBox Err.Description
         Exit Sub
      End If
   End If
Set acaddoc = acadapp.activedocument
For i = 0 To File1.ListCount - 1 Step 1
If File1.Selected(i) Then '对列表文件进行处理
    a = Path + File1.List(i)
    File1.Selected(i) = False
    acaddoc.apen a
    acaddoc.activeviewport.zoomall
    acaddoc.purgeall
    acaddoc.purgeall
    acaddoc.purgeall
    acaddoc.purgeall
    acaddoc.purgeall
   MkDir "d:\jianfei"
    acaddoc.saveas "d:\jianfei\" & File1.List(i) & ".dwg"

efan2000 发表于 2003-10-12 17:18:00

错误多多。
acadapp.Activate?应用程序有这个属性吗?应该为caddoc.Activate吧。
acadapp.Application.Visible = True
文档为应用程序的一个子对象,两者的顺序应该调换一下吧。先显示acadapp,再激活acaddoc比较合乎情理吧。
acadapp.Windows(1).Visible = True?这个从哪里冒出来的Windows?
acaddoc.open (c:\1.dwg)?y文件名应该为字符串的形式,不加双引号运行通过?
在R14中,由于是单文档的形式,故可以采用acaddoc和new和open的方法,而在R2000之后,采用的是多文档的形式,所以要使用文档集合的add和open方法才行。

SDI 系统变量
控制 AutoCAD 运行于单文档还是多文档界面。帮助第三方程序发展商更新应用程序以便与 AutoCAD 多图形模式顺利兼容。

0 打开多图形界面。
1 关闭多图形界面。
2 (只读)禁用多图形界面,因为 AutoCAD 已加载不支持多图形模式的应用程序。SDI 的设置 2 不被保存。
3 (只读)禁用多图形界面,因为用户将 SDI 设置为 1 并且 AutoCAD 已加载不支持多图形模式的应用程序。(加载应用程序之前将 SDI 设置为 1。)SDI 的设置 3 不被保存。


如果 SDI 设置为 3,则卸载不支持多图形的应用程序后 AutoCAD 会将其切换回 1。

WWWDONG 发表于 2003-10-12 19:28:00

问题找到了,错在应在Documents集合中执行open

acadapp.Documents.Open ("c:\1.dwg")即可
谢谢斑竹
页: [1]
查看完整版本: 在vb中打开2004图形时出错