明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1857|回复: 7

[求助]vb中怎么打不DWG文件啊?

[复制链接]
发表于 2004-12-15 16:22:00 | 显示全部楼层 |阅读模式
我写了一个程序: Dim acadapp As New AcadApplication '建立Application对象
Dim acaddoc As New AcadDocument '建立Document对象
On Error Resume Next Set acadapp = GetObject(, "AutoCAD.application") '若AutoCad已启动 , 则直接得到
If Err Then
Err.Clear
Set acadapp = CreateObject("autocad.application") '若AutoCad未启动,则运行它
If Err Then
MsgBox Err.Description
Exit Function
End If
End If
MsgBox "Now running " + acadapp.Name + " version " + acadapp.Version acadapp.Visible = True
Set acaddoc = acadapp.ActiveDocument '设acaddoc为当前图形文件 Dim dwgname As String
dwgname = "F:\ElectroSign\updataDwg\dwg\jxf.dwg"
If Dir(dwgname) <> "" Then
acaddoc.Open(dwgname) '打开一个CAD文件
acadapp.Visible = True '使AutoCad可见
Else
MsgBox "没有此文件"
End If jxf.dwg文件找得到,为什么AutoCad可见后,仍然是默认的Drawing1.dwg啊? 这样的话,我无法对jxf.dwg进行修改啊?? 在此请教高手!:)
发表于 2004-12-15 18:10:00 | 显示全部楼层

回复

怎么可能?dwg文件一直没打开吗?还是没有激活active?
发表于 2004-12-15 18:32:00 | 显示全部楼层
当在多文档界面模式下运行时,用户必须从 Documents 集合使用 Open 方法。当在单文档界面模式运行时,用户必须从 Document 对象使用 Open 方法。
发表于 2004-12-15 18:39:00 | 显示全部楼层
<BR>Dim acadapp As New AcadApplication                                         '建立Application对象<BR>Dim acaddoc As New AcadDocument                                                                 '建立Document对象<BR>Dim acaddocs As AcadDocuments


<BR>rivate Sub Command1_Click()<BR>                         On Error Resume Next<BR>                         <BR>                         Set acadapp = GetObject(, "autocad.application.16")                 '若AutoCad已启动 , 则直接得到<BR>                         If Err Then<BR>                                         Err.Clear<BR>                                         Set acadapp = CreateObject("autocad.application.16")                 '若AutoCad未启动,则运行它<BR>                                         If Err Then<BR>                                                 MsgBox Err.Description<BR>                                                 Exit Sub<BR>                                         End If<BR>                         End If<BR>                         MsgBox "Now running " + acadapp.Name + " version " + acadapp.Version<BR>                         <BR>                         acadapp.Visible = True<BR>                         Set acaddoc = acadapp.ActiveDocument                                                                                                                                 '设acaddoc为当前图形文件<BR>                         Set acaddocs = acadapp.Documents<BR>                         <BR>                         Dim dwgname As String<BR>                         dwgname = "d:\a.dwg"<BR>                         If Dir(dwgname) &lt;&gt; "" Then<BR>                                         acaddocs.Open (dwgname) '打开一个CAD文件<BR>                                         acadapp.Visible = True         '使AutoCad可见<BR>                         Else<BR>                                         MsgBox "没有此文件"<BR>                         End If


End Sub
 楼主| 发表于 2004-12-15 18:39:00 | 显示全部楼层
我现在处理的就是单文本


我用的是ActiveDocument.open 打开的。


但是返回后,acaddoc里的不是"F:\ElectroSign\updataDwg\dwg\jxf.dwg",


而是AutoCAD默认drawing1.dwg。


我没法对"F:\ElectroSign\updataDwg\dwg\jxf.dwg",进行修改啊。


再次请教,谢谢!!:))
发表于 2004-12-15 18:45:00 | 显示全部楼层

回复

你打开你的AutoCAD, 看看SDI系统变量的当前值是什么? 如果是0把它改成1,再运行你的程序?
 楼主| 发表于 2004-12-15 18:52:00 | 显示全部楼层
太感谢你了!:)


不过我还是有两个问题不懂:


1. Set acadapp = GetObject(, "autocad.application.16")                 


为什么要用autocad.application.16而不用autocad.application啊??


2.为什么ActiveDocument.open就不能打开而                Documents.open就可以啊?


我处理的就是单文本啊??


呵呵
发表于 2004-12-15 18:56:00 | 显示全部楼层

回复

1. 16是当前autocad的版本,如果本机上安装了autocad2000,autocad2004,那么要调用哪个呢, "autocad.application.15"就代码前者,"autocad.application.16"代表后者;


2. 如mccad所说, 如果当前的autocad实例设置为单文档的,那么用Document.open就可以,反之,要用Documents.open; 可以取得系统变量SDI的值(GetVariable函数吧),来判断.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 22:24 , Processed in 0.174190 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表