张博
【摘 要】本文简述了利用VB编程语言对AutoCAD进行二次开发的原理和方法,并结合笔者的实践,以编制水文断面绘图程序为例探讨了VB与AutoCAD的连接、绘制纵断面的数据格式、数据转换,以实现快速绘制纵断面。
【关键词】AutoCAD;二次开发;VB
0 概述
AutoCAD是由美国Autodesk公司于20世纪80年代初为微机上应用CAD技术而开发的绘图程序软件包,经过不断地完善,现已经成为国际上广为流行的绘图工具。由于它具有完善的绘图功能、良好的用户界面、易学易用等特点,因而被广泛地应用于测绘、规划、设计、土地管理等行业,AutoCAD为用户提供了多种二次开发工具,其中主要有AutoLISP、ObjectARX和VBA。
AutoLISP是一种解释性的表结构处理语言,具有语言结构简单、开发周期短、不依赖于操作平台的特点,但是作为解释语言,其运行速度和保密性方面有一定的缺陷,并且不适合开发有复杂运算的软件。
ObjectARX是一种较新的开发AutoCAD应用程序的工具,它以C++为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的AutoCAD应用程序。但是C++语言较复杂,开发ARX应用程序需要较多的软件开发经验,也不适合作为非软件开发专业人员的测绘工作者的开发工具。
Visual Basic(VB)是美国微软公司推出的程序开发工具,它简单易学,适用面广,在Windows平台上被广泛使用。为此,可以作为测绘工作者进行程序设计的首选工具。
1 ActiveX Automation技术与VB
1.1 ActiveX Automation技术
ActiveX Automation是微软公司的一个技术标准,其宗旨是在Windows系统的统一管理下协调不同的应用程序,允许这此应用程序之间相互沟通、相互控制,但两个应用程序间的沟通不是对等的,其中,一个程序称为客户程序(Client),另一个程序称为服务程序(Server),一般情况下,由客户程序提出需要进行什么操作,服务程序针对操作申请,完成相应的命令。AutoCAD R14后的版本中就引入了ActiveX Automation技术,利用AutoCAD ActiveX技术,可以从其它外部应用程序(如VB)或AutoCAD内部(AutoCAD VBA)操作AutoCAD对象。VB是最为常用的支持ActiveX Automation技术的开发工具,它可以编制出ActiveX的客户程序,用来操作AutoCAD。即利用VB编制能与AutoCAD相沟通的应用程序,以此来实现AutoCAD的二次开发。
2 开发AutoCAD2004应用程序实例
笔者用VB6.0编制了水文断面机助制图程序,程序设计流程图、界面及部分源代码见下图。该程序通过读取野外采集的纵断面数据文件,自动计算和提取完成制图所需的亘长和高程数据并写成文件,然后完成纵断面的绘制,并可通过对界面的操作来控制制图的横向比例尺及纵向比例尺。
2.1 程序设计整体流程
2.2 数据预处理
外业采集数据时有时一天可能采集多个转角之间的断面数据,本段程序主要就是根据已知的转角坐标、把外业采集的数据自动进行分类,不同转角耐张之间的数据生成一个文件。下面以一个耐张之间的数据简单介绍一下:
首先把新建一个转角坐标文件,本例中命名为ZUO.TXT。运行程序的数据预处理,点击原始数,在提示窗口中选择外业采集的数据,本例中命名为断面数据.TXT。在点击转角数据,提示窗口中选择已经建好的ZUO.TXT。最后点击预处理命令,生成数据文件如图5,在点击程序中的生成断面数据命令,即生成数据文件如图6。主要代码如下:
3 结束语
本文以编制水文断面绘图程序为例探讨了VB与AutoCAD的连接、绘制纵断面的数据格式、数据转换,以实现快速绘制纵断面。如今,计算机科学的飞速发展和数字化测绘的日益普及,对我们测绘工作者也提出了更高的要求,如果测绘工作者能够掌握一种编程语言,会对自己的工作大有裨益。而VB由于其简单易学,功能强大,应该成为我们测绘工作者学习编程语言的首选工具。
【参考文献】
[1]段兴.Visual Basic6.0控件实用程序设计100例[M].人民邮电出版社,2002,10.
[2]申石磊,季超.Visual Basic程序设计基础[M].高等教育出版社,2010,03.
[责任编辑:薛俊歌]