《Autocad VBA教程--普天同庆》由会员分享,可在线阅读,更多相关《Autocad VBA教程--普天同庆(225页珍藏版)》请在金锄头文库上搜索。
1、1Autocad VBA初级教程 (第一课:入门)作者:网友 普天同庆 | 阅读次数:2315 转自:CAD 世界网-论坛 时间:2005 年 4月 25日 16:38第一课:入门1.为什么要写这个教程市面上 ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。2.什么是 Autocad VBA?VBA是 Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好 VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用 ACAD命令不可能完成的,只要学
2、好 VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。3、VBA 有多难?相信大家都知道 Basic是的含义。应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。4、怎样学习 VBA?介绍大家一个学习公式:信心+恒心=开心。仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。本教程将陆续发布在 CAD世界论坛上,您不需要付费就可以学习。本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。5、现在我们开始
3、编写第一个程序:画一百个同心圆第一步:复制下面的红色代码第二步:在模型空间按快捷键 Alt+F8,出现宏窗口第三步:在宏名称中填写 C100,点“创建”、“确定”第四步:在 Sub c100()和 End Sub之间粘贴代码第五步:回到模型空间,再次按 Alt+F8,点击“运行”Sub c100()Dim cc(0 To 2) As Double 声明坐标变量cc(0) = 1000 定义圆心座标cc(1) = 1000cc(2) = 0For i = 1 To 1000 Step 10 开始循环Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10)
4、 画圆Next iEnd Sub也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。第二课 编程基础2本课主要任务是对上一课的例程进行详细分析下面是源码:Sub c100()Dim cc(0 To 2) As Double 声明坐标变量cc(0) = 1000 定义圆心座标cc(1) = 1000cc(2) = 0For i = 1 To 1000 Step 10 开始循环Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) 画圆Next iEnd Sub先看第一行和最后一行:Sub C100()End SubC100是宏的
5、名称,也叫过程名称,当用户执行 C100时程序将运行 sub和 end sub之间的所有指令。第二行:Dim cc(0 To 2) As Double 声明坐标变量后半段“声明坐标变量”自动变为绿色字体,它是代码语句的注释,它不会影响程序运行,它的作用是告诉阅读者程序员的想法。对于简单的程序,一般不需要写注释,如果要编写非常复杂的程序,最好要多加注释,越详细越好,对于程序员来说,这是一个好习惯。电脑真正编译执行的是这条语句:Dim cc(0 To 2) As Double它的作用就是声明变量。Dim是一条语句,可以理解为计算机指令。它的语法:Dim 变量名 As 数据类型本例中变量名为 CC,
6、而括号中的 0 to 2声明这个 CC是一个数组,这个数组有三个元素:CC(0)、CC(1)、CC(2),如果改为 CC(1 to 3),则三个元素是 CC(1)、CC(2)、CC(3),有了这个数组,就可以把坐标数值放到这个变量之中。Double是数据类型中的一种。ACAD 中一般需要定义坐标时就用这个数据类型。在 ACAD中数据类型的有很多,下面两个是比较常用的数据类型,初学者要有所理解。Long(长整型),其范围从 -2,147,483,648 到 2,147,483,647。Variant 它是那些没被显式声明为其他类型变量的数据类型,可以理解为一种通用的数据类型,这是最常用的。下面三
7、条语句cc(0) = 1000 定义圆心座标cc(1) = 1000cc(2) = 0它们的作用是给 CC变量的每一个元素赋,值其顺序是 X、Y、Z 坐标。For i = 1 To 1000 Step 10 开始循环3Next i 结束循环这两条语句的作用是循环运行指令,每循环一次,i 值要增加 10,当 i加到 1000 时,结束循环。i也是一个变量,虽然没有声明 i变量,程序还是认可的,VB 不是 C语言,每用一个变量都要声明,不声明就会报错。简单是简单了,这样做也有坏处,如果不小心打错了一个字母,程序不会报错,如果程序很长,那就会出现一些意想不到的错误。step后面的数值就是每次循环时增
8、加的数值,step 后也可以用负值。例如:For i =1000 To 1 Step -10 很多情况下,后面可以不加 step 10如:For i=1 to 100,它的作用是每循环一次 i值就增加 1Next i语句必须出现在需要结束循环的位置,不然程序没法运行。下面看画圆命令:Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10)Call语句的作用是调用其他过程或者方法。ThisDrawing.ModelSpace是指当前 CAD文档的模型空间AddCircle是画圆方法Addcicle方法需要两个参数:圆心和半径CC就是圆心坐标,i*10 就
9、是圆的半径,本例中,这些圆的半径分别是 10、110、210、310本课到此结束,下面请完成一道思考题:1.以(4,2)为圆心,画 5个同心圆,其半径为 1-5本章将为你介绍 AutoCAD VBA 工程及 VBA 交互开发环境(VBA IDE)。尽管大部分 VBA 环境在行为上都是相似的,但 AutoCAD VBA IDE 还是有些独有的特性。在 AutoCAD 中还有些相关的命令可以用于装载工程、运行工程,或打开 VBA IDE 环境。本章将概要介绍 VBA 工程、VBA 命令和 VBA IDE 的使用。本章具体内容如下:了解嵌入和全局 VBA 工程 用 VBA 管理器组织工程 处理宏 用
10、 VBA IDE 编辑工程 更多的信息 回顾 AutoCAD VBA 工程术语 回顾 AutoCAD VBA 命令 了解嵌入和全局 VBA 工程 返回目录来源: 明经通道 作(译) 者: 郑立楷 上传者: mccad 上传时间:2002 年 8 月 29 日 AutoCAD VBA 工程是代码模块、类模块和窗体的集合,它们组合起来以执行给予的功能。工程可保存在 AutoCAD 图形中,或作为独立的文件保存。嵌入工程是保存在 AutoCAD 图形中。当包含有这些工程的图形中 AutoCAD 打开时,他们可以自动地装载,这种方法可以很方便地分发工程给用户。嵌入工程也有它的极限,它不能打开或关闭 A
11、utoCAD 图4形,那是由于他们的函数只存在于工程所在的文档中。使用嵌入工程不需要在运行程序之前查找并装载工程文件。举个含有嵌入工程的图形的例子,当图形打开时,一个时间日志被触发。通过这样一个宏的应用可以登记并记录用户在该图形上所花费的时间。这时用户不必去记住在打开图形之前装载工程,这就是自动操作的一个很好的例子。全局工程保存在独立的文件中,它更加通用,因为他们能在 AutoCAD 图形中运行,也能打开、关闭AutoCAD 图形,但它在图形打开时不能自动装载。用户必须知道他们所需要的宏包含在哪个工程文件中。然而,全局工程非常容易与其它使用者共享,它可以将通用的宏做为很好的库而存在。举个例子,
12、你保存在一个工程文件中的宏是有关多个图形的材料清单。这个宏可以在工作周期的末期由管理员运行,这样就可以收集到所有图形的信息。在特定的时间,用户可以在同个 AutoCAD 进程中同时装载嵌入工程和全局工程。AutoCAD VBA 工程与 Visual Basic 工程在二进制结构上是不兼容的。然而,其中的窗体、模块和类可以通过在 VBA IDE 环境中使用输入和输出 VBA 命令来在工程之间进行转换。关于 VBA IDE 的更多信息,可以查看“用 VBA IDE 编辑工程”用 VBA 管理器组织工程 返回目录你可以使用 VBA 管理器查看装载在当前 AutoCAD 进程的所有 VBA 工程。VB
13、A 管理器一个AutoCAD 工具,它允许你装载、卸载、保存、创建、嵌入和分离 VBA 工程。打开 VBA 管理器的步骤:1.在工具菜单中选择宏-VBA 管理器。 2.或者,在 AutoCAD 中调用 VBAMAN 命令。 本节的内容:装载现存的工程卸载工程嵌入工程到图形中从图形中分离工程创建新的工程保存嵌入工程装载现存的工程当你装载工程到 AutoCAD 中,所有的公用的子程序(也称为宏) 都可以使用。 嵌入于图形中的工程在图形打开时就被装载。保存在 DVB 文件中的工程必须单独装载。装载现存的 VBA 工程文件1.在 VBA 管理器中,使用装载项可弹出打开 VBA 工程对话框。 2.在打开
14、 VBA 工程对话框中,选择打开的工程文件。该 VBA 工程对话框允许你打开有效的DVB 文件。如果你尝试打开不同类型的文件,你将会得到出错信息。 3.选择打开。 你也可以使用 VBALOAD 命令直接出现打开 VBA 工程对话框以装载工程文件。另外,当工程装载后,该工程所引用的其它工程将会自动地装载。还有,AutoCAD 在启动时将自动装载名称为 acad.dvb 的工程文件。 5相关主题:病毒警告 每次当你装载工程时,你会看到启用或禁用工程中的代码以阻止宏病毒的警告框。如果你选用启用代码,如果工程中含有宏病毒时病毒可能会发作。如果你禁用代码,工程同样会装载,但工程中的所有代码将不能运行。想
15、查看更多关于病毒保护的信息,请参考“设置工程选项” 。 卸载工程 卸载工程以释放内存并保持装载的工程列表的长度以方便管理。你不能卸载嵌入工程或由其它已装载工程所引用的工程。卸载 VBA 工程的操作 1.在 VBA 管理器中,选择要卸载的工程。 2.选择卸载。 或者,使用 VBAUNLOAD 命令,它将提示你所要卸载的工程。 嵌入工程到图形中 当你嵌入一个工程时,你是将工程的一个副本置于图形数据库中。无论何时,当所包含工程的图形打开或关闭时,工程会同时被装载和被卸载。一个图形只有在同一时间包含一个嵌入工程。如果图形已经包含有一个嵌入工程,你必须在同样地入其它工程之前将该嵌入工程分离出。嵌入工程到
16、 AutoCAD 图形中的操作 1.打开 VBA 管理器并选择你所要嵌入的工程。 2.选择嵌入。 从图形中分离工程 当你分离工程时,其实是将工程从图形数据库中删除,同时会提示你将工程保存为外部的工程文件。如果你没有将其保存为外部工程文件,该工程的数据将会删除。从 AutoCAD 图形中分离工程的操作 1.打开 VBA 管理器并选择要从图形中分离的工程。 2.选择分离。 3.如果你想保存工程信息为外部工程文件,可以在“你是否想在删除 VBA 工程前将其输出?”的提示下选择“是 ”,此时会显示另存为对话框,允许你保存文件。 如果你不想保存该工程信息到外部文件,可以在“你是否想在删除 VBA 工程前将其输出?”的提示下选择“ 否”,此时工程信息将在没有保存的情况下从图形中删除。 创建新的工程 新的工程将作为未保存的全局工程被创建。当工程创建时,你可以将工程嵌入图形中,或将其保存为工程文件。创建新的 VBA 工程的操作 1.打开 VBA 管理器。 62.选择新建。 新创建的工程将使用默认的