浅谈基于VB的AutoCAD二次开发及其在测绘中的应用

2015-04-07 10:12张博
科技视界 2015年9期
关键词:二次开发

张博

【摘 要】本文简述了利用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.

[责任编辑:薛俊歌]

猜你喜欢
二次开发
浅谈基于Revit平台的二次开发
浅谈Mastercam后处理器的二次开发
西门子Easy Screen对倒棱机床界面二次开发
基于Pro/E二次开发的推土铲参数化模块开发