AutoCAD和Excel间的数据通信.pdf
河 南科学 第2 2 卷 第4 期 文章编号 1 0 0 4 3 9 1 8 { 2 0 0 4 } 0 4 - 0 5 5 2 - 0 3 A u t o C A D和 E x c e l 间的数据通信 王永 杰 , 周振 红 , 苗 丽 郑州大学环境与水利学院 , 河南 郑州4 5 0 0 0 2 摘要 介绍了A u t o C A D和E x c e l 之间基于A c t i v e X自动化技术的通信机制, 并利用V B A在A u t o C A D的V i s u a l B a s i c 编辑器中创建了实际应用程序。本例应用程序查找 当 前图形中的所有块参考, 然后把其属性显示在 E x c e l 表格中。 关键词 A u t o C A D ; E x c e l ; A c t i v e X; V B A ; 对象模型 中图分类号T P 3 9 1 . 7 2 文献标识码 A A u t o C A D作为一个强大的绘图软件, 有时需要和别的应用程序进行数据通信。例如, 为了有效地使用 A u t o C A D , 机械设计人员可以把一些标准件如螺钉 、 螺母 、 轴承等做成一个符号库 用建块命令可以把图形保 存成一个符号 , 当需要绘制符号库中的图形时, 用户直接从库中调用相应符号。同时用户需要从图形中提 取出这些符号 块对象 的属性参照信息, 然后在 E x c e l 表格或者数据库中使用这些信息, 创建管理信息列 表, 如一个机械设备装配图的零件清单和材料清单 B M 等u J 。在 A u t o C A D中加人 A c t iv e X A u t o ma t io n 就 是为了协调不同的应用程序, 允许它们之间互相通讯, 每个应用程序都可以决定哪些信息和能力愿意公布或 暴露给系统的其他应用程序。文本通过建立 A u t o C A D与 E x c e l 之间的数据通信, 在 A u t o C A D中直接调用 E x c e l , 对图中的所有块对象进行分类汇总, 制作设备材料报表。 1 A c t i v e X A u t o ma t i o n技 术 A c t i v e X A u t o m a t io n 是微软建立的标准 此前称之为O L E自动化 , 它允许一个 Win d o w s 应用程序通过 A c t iv e X对象控制另一个 Wi n d o w s 应用程序。A u t o C A D 2 0 0 0内嵌了 A c t i v e X A u t o m a t io n 语言 Ⅵ3 A V is u a l B a s ic f o r A p p li c a t io n , 它是 O f f i c e 软件家族中的标准宏语言。V B A集成开发环境提供了高效的用户编程能 力, 能够使 A u t o C A D与其它支持 V B A的应用程序, 如 E x c e l , 进行数据通信。 2 E x c e l 对象模型 要运用 E x c e l 做报表, 必须了解 E x c e l 的对象模型。E x c e l 对象具有紧密的级联关系, 其中, A p p l i c a t io n 是 E x c e l 的根对象, 其它对象由此而派生。对于 E x c e l 而言, 对象问的级联关系为 A p p l i c a t io n - - Wo r k B o o k 工作簿 - Wo r k S h e e t - E 作表 一C e l l 单元格 。一个 Wo r k B o o k 对象实际上就是一个 E x c e l 文件, E x c e l 应 用程序可以同时打开或创建多个文件, 它们被保存在 Wo r k B o o k s 集合对象中, 可以通过索引号或名称访问 集合中的任何一个工作簿。每个工作簿对象上可以有多个工作表。 3 A u t o C A D对象模型 A u t o C A D 2 0 0 0 对客户应用程序暴露了许多用于 A u t o m a t io n的对象, 这些对象拥有大量的方法和属性。 A u t o C A D对象模型为理解各个对象之间及对象与应用程序整体功能之间的相互关系提供了一个简单的框 架。图 1 显示了A u t o C A D对象模型的顶端部分, 第一层对象就是 A u t o C A D应用程序本身。 在图 1 所示的层次中, 每个对象都含有在它下层的对象。使用A c t i v e X A u t o ma t io n的一般原则是 以自 顶向下的方式来检索对象。在 V B A集成开发环境中, 系统提供了一个 T h is D r a w in g 对象, 它代表的就是当 前的A u t o C A D图形, 相当于图 1 中的 D o c m n e n t 对象。 收稿日期 2 0 0 4 0 2 2 5 收稿 日期 王永杰 1 9 7 7 一 , 男 , 河北河问人 , 郑州大学环境与水利学院硕士研究生。 维普资讯 2 0 0 4年 8月 A u t o C AD和 E x c e l 间的数据通信 --- 5 5 3 --- 图 1 Au t c l 2 AD对象模型 F ig 1 Ob j e c t mo d d o f Au t o C A D 4 A u t o C A D和 E x c e l 之间数据通信的实现 A u t o C A D和 E x c e l 通过 A c t i v e X对象暴露其内部数据和功能, 通用的面向对象的编程语言便可利用这 些对象访问应用程序[ 。通常, A u t o C A D中图形对象的属性值有的随块插入, 这时它们是块的属性; 有的则 用单行或多行文本命令直接写入。在机械制图中, 图纸中的设备大部分是标准件, 且以块的形式存储在图形 库中, 设计绘图时常以块插入方法加以引用。因此, 可在 A u t o C A D的 V i s u a l B a s i c 编辑器中创建调用 E x c e l 的应用程序, 通过遍历当前 A u t o C A D图形中的所有块对象来提取其中的属性值, 自动制作设备材料报表。 本应用程序是遍历含有四个块对象的 A u t o C A D图形, 如图 2 所示, 从中提取块信息, 并 自动生成 E x c e l 表格, 如图3 。部分源代码如下所示 图 2 Au t c l 2 A D图形 F i g 2 Th e D r a win g o f Au t o CA D F o r E a c h E l e mOb j I n T h i s D r a wi n g . Mo d e l S p a c e Wi t h E l e mOb j 图 3 自动生成的 E x c e l 表格 F i g . 3 Th e T a b le o f E x c e l ‘ 遍历整个模型空间寻找图块参考 维普资讯 -- 5 5 4-- 河南科学 第2 2 卷第4 期 I f S t r C o mp . E n t i t y Na me , Ac D b B l o c k R e f e r e n c e ,1 0 Th e n I f. Ha s At t r i b u t e s Th e n A H a y D a t a . G e t A t t r i b u t e s ‘ 取得属性 ‘ 复制块属性的标签字符串到 E x c e l , 写入表头信息 元件类型 F o r A p p C o u n t L B o u n d A r r a y Da t a T o UB o u n d A r r a y D a t a I f He a d e r TF F a l s e Th e n I f S t r C o mp A r r a y D a t a Ap p C o u n t . E n t i t y N a me , Ac D b A t t r i b u t e ,1 0 T h e n E x c e l S h e e t . C e l l s R o wNu m, Ap p C o u n t 1 . Va l u e A r r a y D a t a A p p C o u n t . T a g S t r i n g En d I f En d I f Ne x t Ap p C o u n t Ro wNu r n Ro wNu / n 1 For A p p C o u n t L B o u n d A r r a y Da t a T o U I u n d Ar r a y D a t a E x c e l S h e e t . C e l l s R o wNu m,A p p C o u n t 1 . Va l u e A r r a y D a t a A p p C o u n t . T e x t S t r i n g Ne x t Ap p Co u n t He a d e r TF Tr u e En d I f En d I f En d W i t h Ne x t E l e mOb j 5 结语 本文通过 A c t i v e X自 动化技术实现了A u t o C A D和 E x c e l 之间的数据通信, 这样就可将A u t o C A D图形中 的数据信息传送给 E x c e l 表格, 在 E x c e l 中自动制作各种数据统计报表; 把具有极高绘图能力的A u t o C A D和 强大数据处理能力的 E x c e l 进行无缝集成后, 工作人员也可以通过调用 E x c e l 表格中的数据在 A u t o C A D中 自动绘图, 极大地提高了工作效率。 参考文献 [ 1 ] 李凤华. A u t o C A D 2 0 0 2 / 2 0 0 0 V B A开发指南[ M] . 北京 清华大学出版社, 2 0 0 1 . [ 2 ] 杜平安. A u t o C A D明细表自动导入 E x c e l 的实现方法[ J ] .工程图学学报, 2 0 0 3 , 1 5 0 5 5 . Th e d a t a c o mmu n i c a t i o n b e t we e n Au t o CAD a n d Ex c e l WA NG Y o n g j i e , Z HO U Z h e n - h o n g , MI A O L i S c k D { E n v i r o n me n t a n d Wa t e r C o n s e r v a n c y , Z h e n g z h o u Un i v e r s i t y , Z h e n g z h o u 4 5 0 0 0 2 ,C h i n a Ab s t r a c t Th e ∞Ⅱ l mu n i c a t i o n me c h a n i s m b e t we e n Au t o C AD a n d Ex c e l i s i n t r o d u c e d b a s e d o i l Ac t i v e X Au t o ma t i o n t e c h n i q u e 。 a n d a n a p p l i c a t i o n p r o g r a m i s b u i l d e d u p i n t h e Vi s u a l B a s i c ed i t o r o f Au t o CA D b y VB A. T h e p r o g r a m c a n r a n s a c k a l l b l o c k o b j e c t s i n t h e a c t i v e d d r a wi n g , a n d t h e i r a t t r i b u t e s a r e i n ser t e d i n a t a b l e o f Ex c e 1 . K e y w o r d s Au t o C A D; E x c e l ; A c t i v e X;V B A; o b i e c t mo d e l s 维普资讯