乐筑天下

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

[转帖]从 Visual Basic 连接至 AutoCAD

[复制链接]

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2008-4-7 09:16:00 | 显示全部楼层 |阅读模式
用好多大侠都在问从 Visual Basic 连接至  的问题。
在此转帖autocad的帮助文件,各位大侠只要经常使用AutoCAD的帮助文件,会有很多益处。
要更新代码样例以在 VB 中使用,必须先引用 AutoCAD 类型库。要在 VB 中完成此操作,请从“工程”菜单中选择“引用”选项,启动“引用”对话框。在“引用”对话框中,选择 AutoCAD 类型库,然后单击“确定”。
下一步,将代码样例中所有的 ThisDrawing 引用替换为引用活动文档的用户指定的变量。要完成这项操作,请为 AutoCAD 应用程序 (acadApp) 和当前的文档 (acadDoc) 定义变量。然后,将应用程序变量设置为当前的 AutoCAD 应用程序。
如果 AutoCAD 正在运行,指定 AutoCAD 版本号时,VB GetObject 函数将检索 AutoCAD Application 对象。如果 AutoCAD 没有运行,发生的错误(本例中)会被捕获然后清除。CreateObject 函数接着会试图创建一个 AutoCAD Application 对象。如果创建成功,会启动 AutoCAD;如果失败,则会显示一个消息框,说明发生的错误。
同时运行多个 AutoCAD 任务时,GetObject 函数会返回 Windows 运行对象表中的第一个 AutoCAD 实例。关于验证 GetObject 返回任务的详细信息,请参见 Microsoft Visual Basic 文档中关于对象运行表 (ROT) 和 GetObject 函数的部分。
要显示 AutoCAD 图形窗口,需要将 AutoCAD 应用程序的 Visible 特性设置为 TRUE。
如果 GetObject 创建了一个新的 AutoCAD 实例(即调用 GetObject 时 AutoCAD 没有运行),没有将 Visible 设置为 TRUE 会导致 AutoCAD 应用程序不可见,甚至 AutoCAD 不显示在 Windows 任务栏上。
注意  使用依赖于版本的 ProgID。如果 CreateObject 或 GetObject 函数使用的是独立于版本的 ProgID,则将函数更改为使用依赖于版本的 ProgID。例如,如果使用的是 CreateObject,请将 CreateObject ("AutoCAD.Application") 替换为 CreateObject ("AutoCAD.Application.16")。此外,如果 GetInterfaceObject 方法使用的是独立于版本的 ProgID,则必须将该方法更改成使用依赖于版本的 ProgID。
本例使用 Err 的 Clear 和 Description 特性。如果用户编码环境不支持这些特性,则需要适当修改样例:
Sub Ch2_ConnectToAcad()    Dim acadApp As AcadApplication    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    MsgBox "Now running " + acadApp.Name + _           " version " + acadApp.VersionEnd Sub接着,将文档变量设置为 AutoCAD 应用程序中的 Document 对象。Document 对象由 Application 对象的 ActiveDocument 特性返回。
Dim acadDoc as AcadDocumentSet acadDoc = acadApp.ActiveDocument从现在开始,使用 acadDoc 变量引用当前的 AutoCAD 图形。
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2008-4-7 12:30:00 | 显示全部楼层
一般来说,你将acadDoc变量改名为ThisDrawing变量,就跟VBA一样了。我一般这样写,所以可以先在VBA中调试,再直接转换到VB中去。
回复

使用道具 举报

3

主题

26

帖子

3

银币

初来乍到

Rank: 1

铜币
38
发表于 2008-4-17 22:27:00 | 显示全部楼层
如果关闭了当前的文档窗口,没有关闭autocad软件,菜单栏只剩下“文件”、“视图”、“窗口”、“帮助”四个选项时,如果再运行连接cad的话,会在
Set acadDoc = acadApp.ActiveDocument这出错,这个该怎么处理??
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 22:07 , Processed in 0.443269 second(s), 59 queries .

© 2020-2025 乐筑天下

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