AutoCAD与Excel二次开发及其在海洋工程中的应用技术研究
2011-12-21王志祥王默熙郑炳祥王玉伟陈元元吴建章
王志祥 王默熙 郑炳祥 王玉伟 陈元元 吴建章
(海洋石油工程股份有限公司 中国 天津 300452)
AutoCAD与Excel二次开发及其在海洋工程中的应用技术研究
王志祥 王默熙 郑炳祥 王玉伟 陈元元 吴建章
(海洋石油工程股份有限公司 中国 天津 300452)
伴随着国家十二五规划出台,深海石油开采上升为国家核心战略。但在海洋工程实际工作中,图纸量大、信息量大、Excel数据处理量大,图纸间、图纸与Excel数据传递若仍然采用人工方法,显然已经非常落后。为大幅度提高工作效率、降低劳动强度,笔者采用VB对AutoCAD及Excel进行联合开发,设计了一套工程师辅助软件,在工程实际应用中取得了极其优异的效果。
海洋工程;Excel;数据传递;优异效果
0 引言
日常工作中存在着很多重复、繁琐、耗时的工作,比如在AutoCAD中制作材料表、将AutoCAD图中的材料表整理到Excel中、将多个Excel表中的数据进行汇总处理、绘制不同尺寸标准部件等。
以上各项工作目前多采用人工方式,由于工程中图纸数量庞大,这些工作不仅耗费了大量时间,延迟了工程的交付时间,而且劳动强度大、工作效率低、很容易出错。
为了节省工作时间、提高工作效率、降低劳动强度,将工程师从这些重复、繁琐、耗时的工作中解放出来,去完善和优化其他更为重要的工作,笔者采用VB对AutoCAD及Excel进行了二次开发,设计与开发了一套工程师辅助软件,在工程应用中取得了很好的应用效果。
1 技术原理
本文以AutoCAD2004和Excel2003为平台,以Visual Basic为编程工具,成功应用Automation通信协议标准对AutoCAD和Excel进行了二次开发及应用。AutoCAD,Visual Basic,Excel之间的通信示意图如图1.1所示。
图1.1 AutoCAD,VB,Excel通信示意图
1.1 Automation通信协议
Automation是基于Microsoft公司Component Object Model(COM)技术的通信协议标准,从OLE(Object Linking and Embeding)发展而来。
利用该通信标准,可以将一个应用程序中的开放对象嵌入或链接到其他应用程序中,从而实现不同应用程序间的数据通信和数据共享[1]。
Automation通信协议以客户端/服务器方式工作。作为Automation服务器的应用程序能够为其他应用程序提供一定服务及开放对象;作为Automation客户端的应用程序能够通过适当协议访问服务器应用程序[2]。
本文中 AutoCAD2004和 Excel2003作为 Automation服务器,Visual Basic作为 Automation客户端。 在 Visual Basic中依据Automation通信协议访问AutoCAD与Excel开放对象的属性及方法,实现AutoCAD、Visual Basic与Excel三者间的数据通信,从而实现对AutoCAD图形用户界面中图形对象的适当操作及对Excel数据的各种访问。
1.2 AutoCAD中的开放对象
图1.2 AutoCAD应用程序对象模型示意图
理解AutoCAD的对象模型是对其进行编程的基础,AutoCAD的对象模型结构示意图如图1.2所示。
AutoCAD应用程序以层次结构组织对象,顶层是Application对象,即AutoCAD应用程序本身,其他对象均继承自Application对象。
Application对象下一层是 Preferences、Document等对象,通过Preferences对象可以对AutoCAD Tools/Preferences菜单项中的各个选项进行设置。
Document对象是控制 AutoCAD图形文件的直接对象,代表AutoCAD图形文件。Document对象包含Model Space、Paper Space对象及Blocks、Layers、Selectionsets、utility等一系列对象。Model Space是当前图形文件中图形实体,如直线、圆、多义线等的集合,每个实体即是一个对象,可通过属性和方法改变实体或生成新实体[3]。
对非图形实体,如层(layer)、线形(line type)等的访问则通过访问Document对象相应的集合类型子对象,如Layers、LineTypes等实现。
1.3 Excel中的开放对象
Excel应用程序的对象模型包含一些功能强大的数据对象,常用对象包括:Application对象、Workbook对象、Worksheet对象和Range对象等。
图1.3 Excel 2003应用程序对象模型示意图
Application对象处于对象层级结构的最高层,代表了当前正在运行的Excel应用程序本身,其他对象都是该对象的子对象。
Workbook工作簿对象位于Application对象的下一层次。一个Workbook对象代表一个Excel文件,包括Worksheet对象、Range对象等。
Worksheet对象代表Excel工作簿中的工作表。通过该对象,可以在程序中完成对工作表的操作。
Range对象是一个单元格区域,该区域可以是一个单元格、某一行、某一列或任意单元格区域[4]。
理解了AutoCAD与Excel应用程序对象模型,就可以在客户端应用程序VB中,遵循Automation通信标准,编写程序以访问服务器端应用程序AutoCAD、Excel开放对象适当的属性和方法,从而代替人工快速高效地完成一些重复、繁琐、耗时的工作。
2 主要实现功能
本软件目前具有下述功能:将Excel表格导入AutoCAD图纸、将AutoCAD图纸中的材料表导出至Excel、多个Excel表格数据汇总整理、在AutoCAD图纸中绘制标准部件。
2.1 将Excel表格导入至AutoCAD图纸
由于AutoCAD制表功能和文字处理功能不强,
图2.1 将Excel表格导入至AutoCAD图纸界面
图2.2 将Excel表格导入至AutoCAD程序流程图
工作中对AutoCAD图纸中材料表格式的要求比较严格,如字高、线宽、对齐方式等,因此在AutoCAD中采用手工方式制作材料表是一项繁琐、耗时的工作,占用了工程师很多宝贵的时间。
本功能实现了将Excel表格自动导入AutoCAD图纸的指定位置,实现了用Excel强大制表功能及文字处理功能对AutoCAD功能的补充,简化了AutoCAD制作材料表的过程,大大提高了工作效率,提高了材料表的质量[5]。
本功能具有字高、线宽、对齐方式、有无边框、表格排布方式可定制等优点。由于采用“四点定位表格”方法,因此可以精确确定导入AutoCAD表格的插入点位置、导入表格的宽度及高度,完全能够满足实际工作的需求,具有很强的实用性。
2.2 将AutoCAD图纸中的材料表导出至Excel
本功能实现了将AutoCAD材料表、各种文字信息自动导出到Excel中,导出的表格格式及文字信息与原AutoCAD信息一致,并且操作简单、实用。
本功能支持单个导出、批量导出功能,操作简单,只需在AutoCAD选择导出点,即可将导出点确定范围内的材料表自动排序并导出到Excel中,导出材料表与AutoCAD原材料表格式保持一致。
本软件支持容差处理功能,因为AutoCAD材料表的各行文字信息没有严格对齐,一般都存在一定偏差,通过设置容差,可以增强软件对不同图纸的适应能力。
图2.3 将AutoCAD图纸中的材料表导出至Excel界面
图2.4 将AutoCAD材料表导出至Excel程序流程图
2.3 多个Excel表格自动汇总整理
在日常工作中经常需要使用Excel对数据进行处理,处理过程中往往存在着很多重复、繁琐、耗时的工作。本软件实现了在VB中操纵Excel,从而实现自动化办公,提高工作效率。
本功能用以将多个Excel表格中的数据进行汇总整理,能够将多个Excel表格中名称及规格等相同的散料汇总在一起,并能够实现对汇总后的表格进行同类数量求和。
本功能支持多个关键字汇总整理,实现将多个关键字相同的散料汇总到一起。软件具有批处理功能,可同时读取并处理多个Excel文件,节省了工作时间、提高了工作效率。
图2.5 多个Excel表格自动汇总整理主界面
图2.6 多个Excel表格自动汇总整理程序流程图
2.4 在AutoCAD图纸中绘制标准部件
针对在AutoCAD绘图中常用的、形式相同的标准部件,一个可行方法是将其做成参数化设备,当需要时只需输入合适的尺寸数据,即可实现图纸的自动1:1绘制,减少了绘制图形的工作量,提高了工作效率。
对于图2.7中所示的标准图形部件,当需要绘制一个形式相同、尺寸不同的标准部件时,只需在参数表中输入各个实际尺寸值,点击“绘制图形”按钮,即可绘制出新图形,避免了对原图进行修改的繁琐过程,提高了工作效率。
图2.7 在AutoCAD图纸中绘制标准部件界面
3 小结
本文以AutoCAD2004和Excel2003为平台,以Visual Basic为编程工具,成功应用Automation通信协议对AutoCAD和Excel进行了二次开发,所设计与开发的软件极大地提高了生产效率,节约了劳动时间,降低了劳动强度,在实际工程应用中取得了很好的应用效果。
[1]王述云.利用ActiveX Automation技术实现工艺文件的输出[J].组合机床与自动化加工技术,2004,1.
[2]肖启敏,朱育林.基于VB二次开发AutoCAD的机械传动CAD系统[J].机电产品开发与创新,2007,4.
[3]杨立军,党新安,夏田.基于VB的AutoCAD二次开发技术[J].现代制造工程,2004,3.
[4]姚文涛.Excel VBA应用开发经典案例[M].北京:清华大学出版社,2009,7.
[5]张帆,郑立楷,等.AutoCAD VBA二次开发教程[M].北京:清华大学出版社,2006,1.
Further Development of AutoCAD and Excel and its Application in Ocean Engineering
WANG Zhi-xiangWANG Mo-xiZHENG Bing-xiangWANG Yu-weiCHEN Yuan-yuan WU Jian-zhang
(China Offshore Oil Engineering Company,Tianjin,300452,China)
As for the twelfth five-year plan Coming on,exploit oil in deep sea becnme the main stratagem of China.There are many drawing、information and data transfer in daily work of offshore engineering.It is very fall behind if we use statistical data by people.To improve work efficiency and reduce intensity of labour greatly,this paper makes a further development of AutoCAD and Excel using the VB programming language based on the Automation Protocols.A software toolkit has been designed and developed which has been used in engineering application and obtained an excellent effect in the application.
Offshore engineering;Excel;Data transfer;Exceptional effection
王志祥(1981—),男,江苏涟水人,助理工程师,硕士研究生,主要研究方向为海洋平台配管。
王默熙(1985—),男,吉林前郭人,助理工程师,学士,主要研究方向为海洋平台配管。
郑炳祥(1985—)男,安徽太和人,助理工程师,学士,主要研究方向为海洋平台配管。
王玉伟(1987—),男,黑龙江宁安人,助理工程师,学士,主要研究方向为海洋平台配管。
陈元元(1986—),男,湖南茶陵人,助理工程师,学士,主要研究方向为海洋平台配管。
吴建章(1982—),男,河北石家庄人,助理工程师,硕士研究生,主要研究方向为海洋平台仪表。
张慧]