基于VB.NET的AutoCAD二次开发在管线成图中的应用
2013-12-12张彦涛
张彦涛
(河北天元地理信息科技工程有限公司,河北廊坊065201)
一、引 言
AutoCAD是目前世界上在图形应用方面使用广泛的计算机辅助设计软件,但其在特定领域的功能不足或很薄弱。利用VB.NET开发出针对“地下管线”特定的AutoCAD应用软件,实现仅依靠Auto-CAD自身不能或不易做到的功能,解决实际工程中的问题。
利用VB.NET进行AutoCAD的二次开发具有很大的优势,它是一种面向对象的可视化编程工具,具有快速的开发环境,其语法简单、功能强大、界面清晰,可充分利用.NET的各种优势,大大提高开发速度。
二、.NET 框架
.NET框架是NET最为重要的组件,如图1所示。.NET框架平台代表了一种崭新的软件开发模式,它与Win32 API或COM一样,是把系统服务以接口形式提供给开发人员的软件开发平台。与以往不同的是,.NET框架能够更好地完成代码重用、资源配置、多语言集成开发和安全管理等任务,在安全性、易用性及开发效率等方面远远超过了以前的开发模式。
使用.NET开发程序具有许多好处,概括起来有以下几点:
1)统一的面向对开发平台。
2)内存自动管理-垃圾收集。
3)一致的异常处理。
4)支持多种开发语言。
图1 .NET框架
三、基于VB.NET二次开发生成管线图的实例
1.AutoCAD .NET API简介
从AutoCAD 2006开始,AutoCAD增加了.NET API,它提供了一系列托管的外包类(managed wrapper class),使开发人员可在.NET框架下,使用VB.NET对AutoCAD进行二次开发。随着版本的更新,从AutoCAD 2008开始.NET API已经拥有与C++相匹配的强大功能。由于开发接口是完全面向对象的,又具有方便易用的特点,因此NET API是目前较理想的AutoCAD开发工具,也是今后的发展方向。
2.AutoCAD命名空间
AutoCAD的托管程序集为两个文件:acdbmgd.dll和acmgd.dll,它们存在于AutoCAD的安装目录下,如C:Program FilesAutoCAD 2010,其中acdbmgd.dll包含Obj ectDBX托管类,主要包含用于处理AutoCAD数据库和DWG文件的相关操作的命名空间和类,如实体操作等,而acmgd.dll包含 Auto-CAD托管类,用户处理AutoCAD程序级别的对象,如程序对象、文档对象等。命名空间相关功能见表1。
表1 命名空间相关功能
3.开发实例
(1)技术框架
技术框架如图2所示。
图2 技术框架
(2)数据采集
地下管线数据采集主要分为:
1)管线探查。采用管线探测仪或探地雷达对隐蔽点进行探查,采用量测工具对明显点进行调查。查清各种管线的位置、走向、埋深、材质等相关属性。
2)管点测量。利用全站仪、RTK等相关仪器测定各种管线隐蔽点和明显点的坐标和高程。
(3)数据入库
1)手工录入,手工录入如图3所示。
图3 手工录入图
2)PDA数据导入,将PDA与计算机连接,直接将探查数据导入对应的数据库。
(4)管线图形绘制
1)启动 Microsoft Visual Studio.NET 2008,如图4所示。
图4
2)在【文件】菜单中,选择用 VB语言创建工程,【新建】一个类库(class library)项目,指定工程名称和存放位置如图5所示。
图5
3)导入命名空间,主要代码如下:
4)绘制管线段,主要代码如下:
成图效果如图6所示。
图6
四 结束语
本文通过实例证明了基于 VB.NET的Auto-CAD二次开发在管线成图方面的优越性和易用性,并在实际工程施工中得到了很好的应用,极大地提高了工作效率。
略)