乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 48|回复: 2

在同一个窗口vb.6代码中打开多个autocad文件

[复制链接]

18

主题

65

帖子

49

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
107
发表于 2008-11-25 04:14:39 | 显示全部楼层 |阅读模式
我有记事本,其中我指定了dwg文件的所有路径ex:
c:\fisrt.dwg
d:\folderr1\second.dwg
D:\aaaa\area.dwg
我正在寻找vb.6程序,它将在同一个窗口而不是单独的窗口中打开所有dwg绘图

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2008-11-25 11:04:19 | 显示全部楼层
你指的是同一个会话窗口吗
可以使用Lisp完成,因为这是Lisp论坛。如果需要VB6解决方案,可能需要移动此线程。
回复

使用道具 举报

7

主题

42

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2008-11-26 14:01:52 | 显示全部楼层
我惊讶地发现,使用“Acad.Application”的通用“getObject”调用不会返回当前正在运行的Acad实例。我必须在调用中指定版本才能获得正在运行的实例。否则,将启动
acad的*第二个*实例
下面的代码适用于我-我使用了“Acad.Application.17”,这是Autocad 2008。
我还将根目录中的图形名称调暗(将DwgToOpen调暗为字符串),当然,您会希望对其进行更改
这段代码是在Excel下创建的,不是VB6,我在这里没有它,但该死的,后期绑定就是后期绑定
技巧的一部分是调用getobject,不使用路径名参数,但使用逗号:
设置acApp=getobject(,“AutoCAD.Application.17”)
,如果acad未运行,则会在没有错误陷阱的情况下出错。因此,我们首先尝试该版本的调用,如果需要,捕获错误,然后,如果必须尝试调用的“标准”版本:
设置acApp=CreateObject(“AutoCAD.Application.17”)
以在找不到正在运行的实例时创建新实例。
  1. Sub Main()
  2.     Dim acApp As Object
  3.     ' make sure under "Tools|Options|General" you select "Break on Unhandled Errors" selected
  4.    
  5.     ' Dim a Dwg Name to open in acad
  6.     Dim DwgToOpen As String: DwgToOpen = "c:\test.dwg"
  7.    
  8.    
  9.     On Error Resume Next   ' call errors out if Acad 2008 not running
  10.         ' get running instance of AutoCad
  11.         Set acApp = GetObject(, "AutoCAD.Application.17")
  12.     On Error GoTo 0
  13.    
  14.     ' if we dont have it, create from scratch
  15.     If acApp Is Nothing Then   ' start new session of Autocad
  16.         Set acApp = CreateObject("AutoCAD.Application.17")
  17.         
  18.         If acApp Is Nothing Then
  19.             MsgBox "Unable to open Autocad 2008"
  20.             Set acApp = Nothing
  21.             Exit Sub
  22.         Else
  23.             MsgBox "We are running a new instance of acad 2008"
  24.         End If
  25.         
  26.     Else
  27.         MsgBox "We are using the current running Aacad 2008"
  28.     End If
  29.    
  30.    
  31.     ' well, we have an instance of acad ruinning, whether an already running version,
  32.     ' or a new version. Open the drawing in acad, as read-only
  33.    
  34.   Dim MyDwg As Object
  35.   Set MyDwg = acApp.Documents.Open(DwgToOpen, True)
  36. End Sub
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-3 17:03 , Processed in 0.634815 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表