第二章 AutoCAD VBA项目管理

说明:本篇内容由SudoMe根据AutoCAD官方开发文档整理修改而来,如有内容表述不准确或理解错误的,请及时反馈。

AutoCAD VBA

使用AutoCAD VBA有以下优点:

  • VBA及其环境易于学习和使用。
  • VBA与AutoCAD一起在进程中运行,这意味着程序执行非常快速。
  • 快速构建对话框,开发人员能够快速设计应用程序原型并接收对设计的反馈。
  • 项目可以独立,也可以嵌入到图形中,应用程序分发极具灵活性。

VBA通过AutoCAD ActiveX Automation接口与AutoCAD通信。AutoCAD、ActiveX Automation和VBA的耦合不仅可以操作AutoCAD对象,还可以将数据发送到其他应用程序或从其他应用程序返回数据。

AutoCAD的ActiveX和VBA编程三要素:

  1. AutoCAD本身拥有丰富的对象封装了AutoCAD实体(图元)、数据和命令。
  2. AutoCAD ActiveX自动化接口与AutoCAD对象建立通信。
  3. VBA编程环境,它有自己的一组对象、关键字、常量等,用于提供程序流、控制、调试和执行。

注意:在使用前请下载安装AutoCAD的VBA模块,才可以使用相关的功能。

链接地址:下载适用于AutoCAD的Microsoft VBA模块 (autodesk.com.cn)

使用VBA管理器

VBA管理器是一个AutoCAD工具,可以加载、卸载、保存、创建、嵌入和提取VBA项目。

关于嵌入式和全局VBA项目

嵌入项目存储在AutoCAD图形中。每当在AutoCAD中打开包含这些项目的图形时,都会自动加载这些项目,从而使项目的分发非常方便。嵌入项目受到无法打开或关闭AutoCAD图形的限制,因为它们仅在其所在的文档中起作用。全局项目存储在单独的文件中,它们可以打开和关闭AutoCAD图形,但在打开图形时不会自动加载,全局项目更容易与其他用户共享。

打开VBA管理器

  1. 功能区“管理”选项卡→“应用程序”面板(展开的)→“VBA管理器”。
  2. 在AutoCAD命令行输入vbaman。

加载项目

加载项目有以下注意:

  • 当加载项目时,自动加载第一个项目引用的其他项目。
  • AutoCAD在启动时自动加载名为acad.dvb的项目文件。
  • 通过文件资源管理器拖动dvb文件到AutoCAD窗口图形来加载项目的方式,不会显示病毒警报。
  • 每当打开图形时,都会自动加载在图形中的嵌入项目。

加载VBA项目的方法:

  1. 功能区“管理”选项卡→“应用程序”面板(展开的)→“加载工程”。在“打开VBA工程”对话框中,选择要加载的项目文件。
  2. 功能区“管理”选项卡→“应用程序”面板(展开的)→“VBA管理器”。在“VBA管理器”中,单击“加载”选择要加载的项目文件。
  3. 在AutoCAD命令行输入vbaload。显示“打开VBA工程”对话框,选择要加载的项目文件。
  4. 将dvb文件从文件资源管理器拖放到AutoCAD窗口打开的图形中。
  5. 使用AutoLISP vl-vbaload函数。

注意:若要访问“打开VBA项目”对话框,在命令行中输入VBALOAD,对话框将打开。如果看不到“打开VBA项目”对话框,则很可能是因为系统变量FILEDIA已关闭。若要显示对话框,将其设置为1。

引用参考:AutoCAD 2024 帮助 | FILEDIA(系统变量)

卸载项目

卸载VBA项目的方法:

  1. 功能区“管理”选项卡→“应用程序”面板(展开的)→“VBA管理器”。在“VBA管理器”中,选择要卸载的VBA项目卸载。
  2. 在AutoCAD命令行输入vbaunload。

嵌入项目

嵌入项目时,会将项目的副本放入图形数据库中。每当打开或关闭包含该项目的图形时,都会加载或卸载项目。如果图形已包含嵌入项目,则必须先提取该项目,然后才能将其他项目嵌入到图形中。

嵌入项目的方法:

  1. 功能区“管理”选项卡→“应用程序”面板(展开的)→“VBA管理器”。在“VBA管理器”中,选择要嵌入的项目,单击嵌入。

提取项目

提取项目时,将从图形数据库中删除该项目,提取会提醒是否项目文件保存到本地,不保存则将删除项目数据。

提取项目的方法:

  1. 功能区“管理”选项卡→“应用程序”面板(展开的)→“VBA管理器”。在“VBA管理器”中,单击“提取”。在“AutoCAD”消息框中,单击“是”将VBA项目导出到DVB文件并删除嵌入的项目文件。单击“否”仅删除嵌入的项目文件。

创建项目

创建项目的方法:

  1. 功能区“管理”选项卡→“应用程序”面板(展开的)→“VBA管理器”。在“VBA管理器”**中,单击新建。
  2. 在AutoCAD命令输入vbanew。

保存项目

保存项目的方法:

  1. 功能区“管理”选项卡→“应用程序”面板(展开的)→“VBA管理器”。在“VBA管理器”中,选择要保存的项目保存。

注意:在保存项目之前,默认保存为project.dvb。如果使用默认文件名project.dvb保存项目,将无法再创建新的空项目。每次创建新项目时,都会加载名为project.dvb的已保存项目。

使用宏对话框

宏对话框允许运行、编辑、删除和创建宏以及设置VBA项目选项。

打开宏对话框

宏对话框打开方法:

  1. 通过单击“管理”选项卡→“应用程序”面板→“运行VBA宏”。
  2. 在AutoCAD命令行,输入vbarun。

关于创建宏

创建宏的方法:

  1. 功能区“管理”选项卡→“应用程序”面板→“运行VBA宏”。在“宏位置”选择位置,在宏名称中,输入新宏的名称,然后单击创建。

关于删除宏

删除宏的方法:

  1. 功能区“管理”选项卡→“应用程序”面板→“运行VBA宏”。在“宏位置”选择位置,在宏列表中,选择“删除”宏。

关于运行宏

运行宏的方法:

  1. 功能区“管理”选项卡→“应用程序”面板→“运行VBA宏”。在“宏位置”选择位置,在宏列表中选择宏,单击“运行”。
  2. 功能区“管理”选项卡→“应用程序”面板→“Visual Basic 编辑器”。在VBA IDE的代码窗口中,将光标放在要执行的函数或子过程上,从“运行”菜单中,单击“运行宏”。
  3. 在AutoCAD命令提示符,输入vbarun。

关于编辑宏

编辑宏的方法:

  1. 功能区“管理”选项卡→“应用程序”面板→“运行VBA宏”。在“宏位置”选择位置,在宏列表中选择宏,单击“编辑”。

关于单步执行宏

单步执行宏的方法:

  1. 功能区“管理”选项卡→“应用程序”面板→“运行VBA宏”。在“宏位置”选择位置,在宏列表中选择宏,单击“逐语句”,在“调试”工具栏或“调试”菜单上,单击“逐语句”以继续执行宏,一次一行。单击“继续”以恢复宏的正常执行。

关于设置项目选项

AutoCAD VBA项目选项设置如下:

选项 说明
启用自动嵌入 打开图形时,自动嵌入功能会自动为所有图形创建嵌入的VBA项目。
允许在错误时中断 启用此选项后,执行宏期间发现的未处理错误将暂停宏的执行,并在VBE中显示宏的错误点。禁用此选项后,执行宏期间发现的未处理错误将显示消息框,提醒您注意该错误,然后结束宏的执行。
启用宏病毒防护 每当打开可能包含宏病毒的图形时,病毒防护机制都会显示内置警告消息。

设置项目选项方法:

  1. 功能区“管理”选项卡→“应用程序”面板→“运行VBA宏”。在宏对话框中,单击“选项”,在“选项”对话框中选择需要的选项,单击“确定”。

AutoCAD VBA术语、命令

VBA术语参考

术语 说明
全局项目 存储在dvb文件中的VBA项目。
嵌入项目 存储在AutoCAD图形中的VBA项目。
当前项目 当前在VBA IDE中选择的项目。
ThisDrawing 表示当前绘图,全局项目:当前活动文档。嵌入项目:包含嵌入项目的文档。
VBA集成开发环境 VBA交互式开发环境,允许编辑代码和窗体、设置对象模型的引用。
VBA管理器 允许管理项目,可以创建、删除、嵌入或提取项目。
宏对话框 允许运行、删除和创建宏,并提供对VBA项目选项的访问。

VBA命令参考

命令 说明
VBAIDE 启动VBA IDE,VBA IDE允许您以交互方式编辑、运行和调试程序。
VBALOAD 将VBA项目加载到当前AutoCAD会话中。
VBAMAN 显示VBA管理器。
VBANEW 创建新项目。
VBAPREF 显示“选项”对话框,设置特定于VBA的选项。
VBARUN 从宏对话框或AutoCAD命令行运行VBA宏。
VBASTMT 在AutoCAD命令行执行VBA语句。
VBAUNLOAD 从当前AutoCAD会话中卸载VBA项目。

VBA AutoLISP函数参考

函数 说明
VL-VBAload 加载VBA项目。
VL-VBArun 运行VBA宏。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容