找回密码
 注册

只需一步,快速开始

AutoCAD块属性的生成与提取

[复制链接]
cad2006 发表于 2008-7-19 21:27:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
1 引言

    目前,AutoCAD提供了五种二次开发手段,分别是:AutoLISP, ADS ,ARX , VisualLlSP, VBA和Visual Basic。这五种开发工具都具有强大和丰富的二次开发能力及自己鲜明的特点。由于有些工具不适应目前的可视化编程要求,而逐渐被其他工具所替代。与其他几种二次开发方法相对比,VBA具有全开放式的对象模型、良好的运行速度、能够使AutoCAD与其他应用程序直接共享数据等优点。
    本文研究利用VBA操作AutoCAD文件中Block对象的属性,将其中包含的明细栏信息导人Microsoft Excel的Worksheet对象中,生成符合要求明细表。研究基于对象模型的AutoCAD文件信息处理技术,研究介于AutoCAD和Excel之间的数据信息交换程序的开发,以及对产生的明细表进行后续处理的方法。

2 明细表自动提取的实现

    将AutoCAD中的明细表信息自动导人Excel的实现过程为:首先通过VBA访问AutoCAD,然后从AutoCAD中获取明细表信息,接着将明细表信息导人Excel,最后再Excel中对提取出来的明细表信息进行进一步的处理。
    提取明细栏信息的过程主要包括通过块属性建立明细栏、利用VBA提取明细栏信息、在Excel中对提取的明细栏信息进行整理等几个步骤。
    现在以一个实际工作中碰到的例子来具体说明利用VBA从AutoCAD文件中提取明细表信息到Excel的全过程。因为涉及保密的原因,删去了图纸中原有的具体设计内容,仅保留了有关的图框和明细栏的内容。

2.1 明细栏的建立

    当装配图中需要输人明细栏信息时,按照国标及所标的要求,明细栏位于图纸标题栏的上方,按由下到上的顺序填写。首先在指定位置插入事先生成的标示明细栏各项名称的明细栏表头图块:明细栏头.dwg,如图1所示。

1.jpg


    插人明细栏表头后,就可以依次输人明细栏的各项内容了。为了统一明细栏的格式和便于以后的明细栏信息提取,这里采用了带属性的块插人来输入各项明细栏信息。
    达到这个目的,需要建立一个带有属性的块mxl。属性是在一个块内的变量文字区,利用属性可以给块加上文字或数据信息。首先按照有关明细栏的标准要求画出一行符合要求的明细栏表格,然后选择AutoCAD的下拉菜单中的绘图Draw-块Block-定义属性Define Attributes,或者直接在命令行输人attdef命令来生成明细栏的各项内容属性,此时弹出的对话框如图2所示。


2.jpg


    使用带属性的块插人来创建明细栏,没有具体格式限制,用户可以根据实际需要设计白己的格式,具有很大的灵活性,也利于信息的统一提取。

    在带属性的块中有Attribute和Block两个图形对象,一个Attribute对象对应明细栏中的一个栏月项,将对应明细栏中的所有栏目的Attribute对象组合在一起放人Block对象中,该对象就是用户定义的一个明细栏记录,然后将定义好的Block插人到图中,就是在图纸中放置了一条明细栏。

    由于每张总装图或部件装配图中明细栏记录的个数是不定的,因此只需为一个明细栏记录定义一个Block,该Block包含若干Attribute对象,对应于名称、材料和数量等栏目,在AutoCAD图形中生成明细栏时,有多少个明细栏记录就插人多少个明细栏Block。

    我们用InsertBlock方法将块插人到图形中,用AddAttribute方法往块中添加属性,属性的参数有标记、属性值、插入属性时的提示、文本的插人点。

    创建了明细栏图块后,其它明细栏内容均可通过插人mxl图块,依照命令行的提示输人各项明细栏的具体内容而生成。

    明细栏图块只需创建一次,以后其他装配图需要输人明细栏时就可以同样插人这次创建的mxl图块。

    因为在创建图块属性时已经规定了各属性文字的位置、格式,所以以后插人的各条明细栏的文字位置、格式均保持一致,保证了图样的统一,也便于管理,避免每次确定明细栏文字位置、格式的重复劳动,提高了输入栏信息的速度。

    通过反复插人mxl图块,并分别输人各项明细栏内容,直到完成各条明细栏信息的输人,即可完成在装配图中建立明细表的工作。
一介草民 发表于 2008-8-5 11:04:15 | 显示全部楼层
谢谢楼主,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

郑重声明:本站属技术交流,非赢利性网站。
本站言论纯属发表者个人意见,与“建筑在线”立场无关。
涉及政治言论一律删除,请所有会员注意. 本站资源由会员从网上收集整理所得,版权属于原作者。
本站所有资源是进行学习和科研测试之用,请在下载后24小时删除
本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权
请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

Archiver|手机版|小黑屋|建筑在线 ( 冀ICP备13013406号-2 )

GMT+8, 2024-12-28 19:42 , Processed in 0.050301 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表