基于AutoCAD将表格导出Excel的设计与实现

(整期优先)网络出版时间:2022-12-16
/ 2

基于AutoCAD将表格导出Excel的设计与实现

刘永贵

(云南省地图院 云南 昆明 650034)

摘要:随着科学技术的快速发展,测绘行业也有了突飞猛进的发展。AutoCAD在测绘中应用,使得测绘工程逐步向数字化的方向发展。在测绘实践生产过程中,经常需要将AutoCAD中生成的表格进行编辑处理,以满足项目技术设计及相关规范要求。在数据量较大的情况下,采用手工的方式不仅效率低,且容易出错,本文基于ObjectARX编程语言在AutoCAD平台上进行开发,能够快速、准确、便捷地将AutoCAD生成的表格内容导出为Excel格式,使得数据编辑、处理及输出效率有了很大的提高。

关键词:AutoCAD;ObjectARX;二次开发;表格;Excel

1、AutoCAD绘图软件概述

AutoCAD(Auto Computer Aided Design),即Autodesk(欧特克)公司于1982年开发的一种自动计算机辅助设计制图软件,主要用于机械、建筑、电子、航天、服装、纺织、测绘等领域。同时,对于不同的领域,Autodesk(欧特克)研发了使用于行业专用的版本和插件,已经成为国际上最为普及的绘图工具。对于AutoCAD绘图软件而言,主要是通过交互菜单以及命令行方式实现各种操作,具有良好的用户界面,同时拥有多文档的设计环境,使用方法简单。AutoCAD绘图软件具有六个特点:一是图形绘制功能完善;二是图形编辑功能强大;三是二次开发以及用户定制方式多样;四是图形格式转化多样以及数据交换功能较强;五是支持多种软件设备以及操作平台;六是通用性以及易用性较强。

2程序的设计

基于AutoCAD进行二次开发的测绘生产及应用软件非常多,根据实际业务需求会自动生成很多表格,比如“地籍测量”、“两权发证”中界址点成果表和“公里设计”中的里程表。部分表格需要输出或编辑后输出,采用手工交互的方式就会非常繁琐,为了使得重复性较大的计算绘图任务工作量减小和更加规范准确,因此采用程序实现表格批量输出到Excel就非常有意义。

AutoCAD成为二维CAD的标准,因为它具有开发的体系结构,从而允许用户和开发者采用高级编程语言对其进行扩充和修改,使整个开发程序在无人干预的情况下嵌入系统,将大大提高工作的效率。其支持的开发语言主要有:Auto LISP、ADS、Object ARX、Visua LISP和VBA等。

ObjectARX是一种新的开发应用工具,以C++为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使开发者方便快捷地开发高效简洁的AutoCAD应用程序。它包括一组动态链接库(DLL),这些库与AutoCAD在同一地址空间运行并能直接利用AutoCAD核心数据结构和代码,因此其开发的应用程序速度更快、集成度更高、稳定性更强。

本文基于ObjectARX编程语言在AutoCAD平台上进行二次开发,结合用户的使用习惯,设计并实现一个操作简单、使用方便的表格导出程序。

构成AutoCAD中的表格一般有直线和文字组成,少数含有多段线,但经过打断处理即可转为直线段。要将AutoCAD中文字写入到Excel之中,首先要对表格进行解析,来确定文字的内容、格式、行号、列号、行宽及列宽。整个程序的设计流程图如图1所示:

图1 程序设计流程图

由流程图可知,其中关键技术分为解析单元格及导出两个部分。基于 AutoCAD中表格构成,程序首先读取表格中的所有直线和文字,并对每一个文字进行解析,解析内容分为文字内容、格式、行号、列号、行宽及列宽。

文字内容及格式:读取AutoCAD中的文字,即可获取该文字的内容和格式,但只是AutoCAD中的文字样式,因此需要在AutoCAD文字格式和Excel文字格式建立一种对照。此对照关系可以根据实际情况进行调整而得出。

单元格行号和列号:行号和列号用于确定导出至AutoCAD中存储的位置。判断此位置就需要借助直线段,在水平和垂直方向分别向直线段作垂线,分别用两个方向上垂足点的个数来判断行号和列号。

单元格行宽及列宽:由文字至最近的垂足点的距离来判断AutoCAD表格中的行宽和列宽,将此宽度与Excel中的宽度建立一种对照关系即可。

程序自动遍历所有的文字,将其按照设计要求全部解析成需要的单元格,并存储到相应的变量中,用于导出至Excel。

3程序的实现

基于以上表格导出Excel程序的设计,本文基于AutoCAD平台进行功能的实现。程序界面如图2所示:

图2 AutoCAD中的表格

图3 Excel中的表格

程序按照简便性、实用性、快捷性的原则设计和实现,使得表格编辑与导出 Excel的效率有了很大的提高。

4、结束语

本文基于ObjectARX编程语言和AutoCAD软件平台,设计并实现将AutoCAD中表格导出至Excel之中。该程序在一定程度上提高了工作效率,减少了重复性的工作。本文的设计模式和功能希望对从事相关工作的人员有所帮助。

参考文献:

[1]秦洪现,崔惠岚,孙剑等.Autodesk系列产品开发培训教程[M].北京:化学工业出版社,2008年1月

[2]Autodesk Asia Pte Ltd . Autodesk·地理信息系统解决方案[M].北京:电子工业出版社,2010年12月

[3]暴风雪科技.AutoCAD2004实用教程[M].上海:海科学普及出版社,2005年

[4]郭达志等.地理信息系统基础和应用[M].测绘出版社,1997年

[5]杨本伦.VisualBasic开发技术大全[M].北京:清华大学出版社,2010年6月