- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AutoCAD结构化表单和Excel数据交换方法研究
AutoCAD结构化表单和Excel数据交换方法研究
摘 要:Excel与AutoCAD表单是工作中常见的两种工具,由于AutoCAD与Excel属于两个不同的信息系统,传统的人工填写的工作方式已经使得AutoCAD与Excel之间的信息交互越来越难以满足工作需求。文章将探讨在AutoCAD结构化表单与Excel之间进行高效数据交换的方法,介绍OLE、Excel对象模型、AutoCAD图形数据库结构等前置技术知识以及数据交换的具体实现方式,以期为相关的数据采集工作提供高效的解决方案。
关键词:Excel;AutoCAD;结构化表单;OLE;ObjectARX;二次开发
中图分类号:TP399 文献标志码:A 文章编号:2095-2945(2017)34-0093-02
引言
Excel作为最为人所熟悉的数据统计工具,被很多企业选择与使用,而AutoCAD在工程中的应用同样极为广泛。很多时候需要在这两个平台间传递数据,以作者所在的航空制造业某部门为例,工作时就需要将保存于AutoCAD图表中的产品信息录入到Excel服务器中,这些数据在后一平台上进行集中管理。本文将探讨在AutoCAD与Excel两平台间自动交换数据的方法,以及如何在基于ObjectARX(VC)开发的程序中实现。该方法用程序代替人工操作,在为设计人员提供方便的同时也保证了数据采集的可靠性。
1 运行环境概述
Excel是Microsoft发布的一款广为人知的数据统计工具。本文?论Excel与AutoCAD图表的数据交换,未涉及Excel的其它定制功能.结构化AutoCAD表单是在AutoCAD图形中加入带有附加信息的图元,如扩展数据、扩展记录、自定义实体、块参照等。以带属性的块参照为例,由于属性是一种包含了标签、提示和值的结构体,而不像普通的文字或多行文字那样只有一个值,这使得计算机能够“理解”用户所输入的内容(而不是简单地将其视为一个字符串)。这为后期的数据采集与分析提供了极大的方便。
由于windows会为每个进程分配独立的地址空间(用户空间),进程不能够以任何方式读写其他进程用户空间的数据[1]。即使使用系统API,也无法确定所需要读、写的数据的地址。所以需要使用一种能够跨越进程边界通信的方法,即OLE技术。
2 OLE技术与Excel对象模型
基于COM的OLE2(业内简称OLE)是一种Microsoft推出的一种windows下的对象通信技术,经过多年的扩充和演化,现已变成了在桌面系统上进行程序通信的一个技术总称[2]。使用OLE方式读写Excel,需要首先创建一个Excel对象(或通过其它途径获得一个),然后通过Excel预留的接口调用它所提供的服务,就像Excel本身在操作单元格一样。
为此需要了解Excel的程序结构,也就是对象模型。Microsoft在Excel 2007开发人员参考中提供了Excel对象模型参考,详细地描述了各种对象的属性和方法。对于读写Excel而言需要用到其中的3对象:_Application、_Worksheet和Range。_Application代表Excel应用程序,一个_Application 对象中包含若干个工作簿_Workbook,后者又包含多个工作表_Worksheet,而Range则代表一个区域,当然也可以是1个单元格,如图1。
首先需要获得_Application对象,进而使用其AttachDispatch函数获得_Worksheet对象、Range对象,然后便可使用SetItem和GetItem函数读写单元格里的内容。
3 AutoCAD图形数据库
读写结构化的AutoCAD表单需要了解AutoCAD图形数据库的结构。每个承载表单的dwg文件就是一个AutoCAD图形数据库AcDbDatabase[3],其中包含了块表AcDbBlockTable,块表中包含了模型空间ACDB_MODEL_SPACE,而用户所绘制的图形、文字等实体就存在于模型空间中。
ObjectARX(VC)提供了相关的类库与函数来访问上述对象。首先获得当前活动图形数据库的块表,获得包含结构化数据的块定义,然后检索模型空间中的此块定义的块参照AcDbBlockReference。需要读取的数据,也就是属性AcDbAttribute的值,就包含在这些块参照中。
4 数据结构的设计
至此已经拥有了外部读写Excel和读写结构化AutoCAD表单中数据的方法。只需设计编写承载数据的载体,将上述三者连接起来封装成命令,便可以实现结构化AutoCAD表单与Excel之间的一键式数据交换.命令通过以下步骤实现:(1)使用OLE方式获得Exc
您可能关注的文档
最近下载
- 传祺-传祺GE3 530-产品使用说明书-传祺GE3 530互联网尊享版-GAH7000BEVH0B-GE3530用户手册20180823.pdf VIP
- 学前儿童卫生与保健.ppt VIP
- OTN技术与烽火OTN解决方案.ppt VIP
- UT报告格式UT(中英).doc VIP
- 青少年运动员科学选材.docx VIP
- 2025年新人教PEP版英语三年级上册 Unit 6 Useful numbers Part A Lets learn & Listen and chant 教学课件.pptx
- 初中几何全等三角形培优系列.pdf
- 有限空间专项施工方案.doc VIP
- 相控阵培训教材(第四版).pdf VIP
- 中长导管临床应用.pptx VIP
原创力文档


文档评论(0)