珠海华成电力设计院有限公司广东珠海519000
摘要:本文介绍了AutoCADVBA二次开发的原理及依据,结合实例介绍掏挖基础绘图程序开发过程和实现方法,利用AutoCADVBA开发的程序解决了工作上遇到的问题,从而提高工作效率。
关键词:AutoCAD;VBA;宏;程序开发
1前言
AutoCAD是目前最受欢迎的CAD软件之一。该软件直1982年问世以来,版本不断升级,功能不断增强,占据CAD领域主导地位。AutoCAD之所以在20多年的时间里获得如此巨大的发展,除了本身具有强大的图形处理功能外,更重要的原因是其开放型结构吸引了众多的CAD工作者。AutoCAD为各行各业的CAD软件开发人员提供了功能的极其强大的软件平台和丰富工具,用户可以开发出适合其专业领域的CAD应用软件,极其地提高了绘图效率。目前AutoCAD提供的开发工具有三种:VisualLISP、VBA(VisualBasicforApplication)和ObjectARX(AutoCADRuntimeeXtension),本文结合输电线路结构设计中的实际工作,利用AutoCADVBA开发了设计中经常会遇到大量的、重复性的、有规律的绘图程序,例如:掏挖基础、板式基础、台阶基础绘图程序,这些程序已在本人所在单位使用,大大提高了设计的效率和准确性。
2问题的产生
目前全国大多数电力设计院输电线路基础设计都采用山西省电力勘测设计院编制、并经电力规划设计总院鉴定的“铁塔基础优化设计软件”(TFOD2006)进行优化设计,该软件是在Windows平台上开发的架空送电线路计算机辅助设计系统软件之一,以AutoCAD绘图软件包为绘图支撑软件。软件使用方便灵活,支持运行中的人工干预,模块化的图形设计,自动化程度高,图面设计清晰美观,适用送电线路铁塔及微波铁塔基础的优化设计计算和验算,绘制施工图。但是采用TFOD2006软件计算后成图需要大量的二次加工才能满足施工图的要求,诸如文字样式、文字移动、文字对齐、箍筋长度、掏挖基础内箍筋、主柱最小配筋率调整等修改,以及增加一些地区习惯等特殊要求,当采用TFOD2006软件绘制较多基础施工图时,往往会花费很多时间和精力。采用TFOD2006软件绘制基础施工图,首先要对基础进行优化设计计算,优化设计计算完成后会自动生成一个后缀reg的结果文件和一个后缀cad绘图文件,最后利用cad绘图文件和TFOD2006软件的绘图功能生成基础施工图。仔细对比reg结果文件和cad绘图文件的格式是非常有规律的,这为利用AutoCADVBA开发程序解决上述修改提供了契机。
3开发原理
VBA是通过对AutoCADActiveXObject的引用,实现主应用程序的开发,其开发应用程序的机理:VBA→AutoCADActiveXObject→Application,AutoCADActiveX提供了一系列ActiveXObject供VBA从AutoCAD内部应用。这一系列ActiveXObject按一定层次组成的一种对象结构,每一种一系列ActiveXObject代表了AutoCAD中一个明确的功能,如画线、画圆、图块定义等。AutoCAD所提供的大多数功能,均以方法和属性的方式被装在ActiveXObject中。只要使用面向对象的编程语言(如VBA、VisualLISP)对其中的属性进行应用,即可达到对AutoCAD实现编程的目的。
4开发实例
下面以掏挖基础绘图程序为例简单介绍利用VBA开发应用程序的过程及实现方法。
首先需编写一个遍历TFOD2006软件生成的结果文件(.reg)的子程序,通过运行该程序可以获得reg文件中的一些数据。通过对比reg结果文件,发现它的格式非常有规律,绘图需要的基本数据的位置按规律在固定的位置,通过文本函数的操作,就可以得到绘图所要的基本数据,如下图1所示。
图1掏挖基础绘图基本数据
图1中除绘图比例是根据需绘制基础的外型大小自动判断后给出比较合理的比例外,其它数据均与reg结果文件保持一致,这样绘制掏挖基础的施工图需要基本数据就得到了。每张掏挖基础的施工图都是由若干直线、多义线、圆、文字、引用图块组成,而绘制的每个直线、多义线、圆、文字都是利用VBA程序中对ActiveXObject的属性进行修改,当然对ActiveXObject的属性的修改也是要利用上述获得的绘图基本数据通过一些简单的算术计算得到。
VBA程序代码的合集称为宏,宏无法独立运行,必须依附某个应用程序,可以看成是VBA中的过程。运用VBA进行二次开发而生成的文件成为工程,在AutoCADVBA中,生成的文件.dvb格式保存。
在AutoCAD菜单栏栏点击“工具”选项,然后选择“宏”、“宏(M)”,就可以执行;也可以采用AutoLISP编制的程序加载后就直接可以在命令行中输入程序命令来执行;但更方便的是可以将宏程序设置成菜单,这样就可以通过菜单的方式来运行宏程序,大大提高效率。
5结束语
本文结合作者在自身专业上遇到的问题,利用AutoCADVBA开发一些小程序去解决这些问题。同时简单介绍了AutoCADVBA二次开发的原理及依据,结合实例介绍掏挖基础绘图程序开发过程和实现方法,利用AutoCADVBA二次开发去解决大量的、重复性的、有规律的绘图是一个很好的办法,程序生成的图纸均不需要二次加工,且满足作者所在设计院的设计成品和习惯要求,从而提高工作效率。
参考文献
[1](美)MarionCottingham.译者:孔祥丰,等.AutoCADVBA从入门到精通.电子工业出版社2001年11月
[2]周乐来,马婧.AutoCAD2008VisualLISP二次开发入门到精通.机械工业出版社.2007年8月
[3]张帆,郑立楷,卢择临,等.AutoCAD二次开发教程.北京清华出版社.2006年1月
作者简介:
刘作林(1982-),男,珠海华成电力设计院有限公司,广东珠海市高新区科技创新海岸科技六路27号(519000),本科学历,主要从事送电线路结构设计。