程
序带给测量人员的方便是显而易见的,我们有时候为解决某些难以人工计算的技术问题,有时候也为提高功效而设计程序。本文和大家一起走入VBA f or CAD的入门之路。
01
VBA是什么
VBA(Visual Basic for Application)是专为某类应用程序设计的basic语言,它是BASIC语言的一个子集,极大的方便了应用程序的二次开发。
在microsoft office系列软件中,都可以看到VBA的身影,很多人用VBA进行第二次开发,以解决某些特定的问题。AutoCAD在早期是不支持VBA的,二次开发用的AutoLisp语言,这门语言我从来没有学过,很高兴AutoCAD VBA的引入。
02
进入AutoCAD VBA编辑器
打开Autocad程序,在“工具”-“宏”的下一级菜单可以看到VBA编辑器,点击进入。一些AutoCAD软件在安装时并没有安装这部分,软件会提示下载,并可以从官方网站上下载不同AutoCAD版本的VBA,下载好安装即可。进入VBA,如下图所示:
03
添加程序
一般来说,有三种程序添加方式:
1、添加窗体,并在窗体的各控件下编写程序
2、添加模块。主要用于常用函数的编写
3、添加类模块。用于各种类的编写。(要理解类,您需要了解面向对象程序设计的相关知识)
04
举个简单的例子
现在我们举一个简单的例子,我们要在当前图形文档里画一条直线,下面一步一步跟我做:
1、添加一个窗体(也可以添加模块再在cad里加载,具体可百度,很多)
画一个按钮(从工具箱拖过来,您可以调整位置和大小,把名字改成“绘直线”,熟悉了怎么改都行),双击按钮,进入程序编写。
2、编写程序
AutoCAD中的点是按三个元素的一维数组表示的,数组的下标从0开始,因此只能定义如a(2)表示三个元素的数组,其值有a(0),a(1),a(2)三个数据。如上图中为b点赋值x=500,y=500,z=0分别按b(0) = 500: b(1) = 500: b(2) = 0来进行。如果只想平面绘图,定义两个元素的数组可以不?不行,CAD中对点的定义就是这样,宁愿一个空着(实际默认为0)。
点、直线、多段线、曲线等在AutoCAD中都是对象,绘图指明对象属性即可,比如直线指明两个端点坐标,点指明一个坐标即可。对象有很多(准确说有很多类,类实例化后才是对象),输入时会自动提示,可以选择。
绘图需要指明在哪个文档中绘图,比如thisdrawing就是在当前文档中绘制,也可以定义并加载其他文档,然后再在其中绘图。除了指明文档外,还需要指明在模型空间绘制还是布局中绘制,比如上面例子中的thisdrawing.modelspace.Addline就表示在当前文档的模型空间绘制一条直线。
程序编写好后,点击运行,如下图所示:
点击按钮,就会按要求绘制一条直线。
05
入门之后要干的事
前面1-4您都可以依样画葫芦做下来,然而我们仅仅是打开了VBA for CAD的门缝儿,还没有真正踏进去,要进一步入门,还需要以下过程:
1、切实去了解VBA的语法,一种语言而已,这个可以很快学会,VBA有中文的帮助文档,不过我看了下,仅仅针对VBA,对于如何使用AutoCAD中的对象却没有,在AutoCAD的帮助文档里有,不过是英文,如果您对英文不熟悉,可以买一本相关的书来看,很多,也可以百度。
2、需要去掌握一定的程序设计基本知识或者基本算法,比如排序,查找等等,这方面的能力基本和语言无关,任何语言可能都会用到。缺乏这些能力,编程难如登天。可以去看看《数据结构及算法》相关书籍。
3、提高分析问题的能力。编程并不是一件困难的事,困难在于问题分析,怎样清楚地去描述问题,采用什么样的方案去解决问题才是编程的核心所在。对于一件任务,别急于去编写程序,先思考框架,然后解决模块的问题,编程水到渠成。
4、编程大多和数学有关,如果数学基础不好,则需要补充一定的数学知识,这个过程十分漫长,您可能在遇到问题时才会去学习,这比不学胡乱搞一通要好得多。
入门易,深化难。
请关注工程测量之家公众号,在以后的文章里我们会介绍更多的工程测量技术应用,让我们一道走在熟手的成长征途中。识别图中二维码,关注“工程测量之家”公众号。
如果您认为这篇文章对您有帮助,请在下方点赞。
领取专属 10元无门槛券
私享最新 技术干货