切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
  • AutoCAD块属性的生成与提取

    作者:佚名 来源:网络 时间:2011-03-13 11:53 阅读:5680 [投稿]
    1.引言 目前,AutoCAD提供了五种二次开发手段,分别是:AutoLISP, ADS ,ARX , VisualLlSP, VBA和Visual Basic。这五种开发工具都具有强大和丰富的二次开发能力及自己鲜明的特点。由于有些工具不适应目前的可视 ..
    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。

    插人明细栏表头后,就可以依次输人明细栏的各项内容了。为了统一明细栏的格式和便于以后的明细栏信息提取,这里采用了带属性的块插人来输入各项明细栏信息。

    达到这个目的,需要建立一个带有属性的块mxl。属性是在一个块内的变量文字区,利用属性可以给块加上文字或数据信息。首先按照有关明细栏的标准要求画出一行符合要求的明细栏表格,然后选择AutoCAD的下拉菜单中的绘图Draw-块Block-定义属性Define Attributes,或者直接在命令行输人attdef命令来生成明细栏的各项内容属性。

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

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

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

    我们用InsertBlock方法将块插人到图形中,用AddAttribute方法往块中添加属性,属性的参数有标记、属性值、插入属性时的提示、文本的插人点。
    分享到:
    扫一扫,关注光行天下的微信订阅号!
    【温馨提示】本频道长期接受投稿,内容可以是:
    1.行业新闻、市场分析。 2.新品新技术(最新研发出来的产品技术介绍,包括产品性能参数、作用、应用领域及图片); 3.解决方案/专业论文(针对问题及需求,提出一个解决问题的执行方案); 4.技术文章、白皮书,光学软件运用技术(光电行业内技术文档);
    如果想要将你的内容出现在这里,欢迎联系我们,投稿邮箱:service@opticsky.cn
    文章点评