基于VBA的AutoCAD图块属性提取与Excel输出
基于VBA的AutoCAD图块属性提取与Excel输出
第23卷第3期(总第102期)机械管理开发
Vol.23No.3(SUMNo.102)MECHANICALMANAGEMENTANDDEVELOPMENT
2008年6月Jun.2008
基于VBA的AutoCAD图块属性
*
提取与Excel输出
何
【摘
兵,车林仙
泸州
(泸州职业技术学院,四川646005)
要】应用AutoCAD的VBA(VisualBasicforApplication)二次开发功能,编制了属性块的属性提取程序,并以应用实例说明了
AutoCAD图块属性提取与Excel输出,可以利用Excel强大的统计功能方便作出相关报表。
【关键词】AutoCAD;属性块;VBA;属性提取【中图分类号】TP317.3
【文献标识码】A
【文章编号】1003-773X(2008)03-0015-02
AutoCADDrawing-blockAttributeExtration
AndItsExcelOutputBasedOnVBA
HEBing,CHELin-xian
(LuzhouPolytechnicCollege,Luzhou646005,SichuanChina)
〔Abstract〕UsingtheexploitativefunctionofVBA(VisualBasicForApplication)basedonAutoCADsoftwareplatform,thispaperhas
madeaprogramforgettingattributesfromdrawing-blocksfromAutoCADanditsExceloutput,andmakingcorrespondingreportformsthroughExcelcomprehensivestatisticalfunction.
〔Keywords〕AutoCAD;Adrawing-blockwithattributess;VBA;Getattributes.
0引言
OnErrorResumeNext
SetExcelApp=GetObject(,"Excel.Application")IfErr<>0Then
SetExcelApp=CreateObject("Excel.Applicationn")EndIf
随着计算机软硬件技术的飞速发展,机械、建筑、电气领域中绝大多数企业采用AutoCAD绘制二维工程图。无论是交互式绘图,还是二次开发,对于标题栏、明细表及其它类似表格的处理,基本上都采用插入图块的方法,较为麻烦;而且做相关报表时,仍需作大量的人工抄录工作,不仅繁琐且易出错,不利于图纸上相关内容的信息管理;因而对构建设计的MIS(Management
InformationSystem)系统有相当的难度。基于此,我们采用AutoCAD中的VBA技术,对标题栏信息进行二次开发,可以方便地将图纸信息提取到Excel中,便于统
计、汇总,大大提高了工作效率。
2实例
2.1示例操作步骤[3]
定1)画出属性定义表格。2)定义属性,用“attdef”
义其属性,此例中每一图块共有6个属性,其中序号属
性设为不可见,其余可见,分别填写其属性。然后选择一行作为一个图块。3)重复步骤2,完成整个明细表的属性定义,保存,见图1。工具”4)在AutoCAD中,单击“宏”→“代码窗口”中创建→“VisualBasic编辑器”→“代码。5)在VisualBasic编辑器“工具”→“引用”中引用“项。6)调试,保MicrosoftExcel9.0ObjectLibrary”存代码→运行,结果见图2。
2.2创建过程及代码与调试并保存(部分核心原代码)[4][5]
Sub
BlkAttr_Extract()
DimExcelSheetAsObjectDimExcelWorkbook
AsObject
SetExcelWorkbook=Excel.Workbooks.AddDimExcelAsExcel.Application
1跨平台技术
在AutoCAD中创建Excel应用程序,其步骤如下:[1][2]
宏”→“1)打开AutoCAD的“VBA编辑器”。
工具”→“引用”项,在弹出的“引用”对话2)选择“
框的“可使用的引用”列表框内,选择“MicrosoftExcel
项。9.0ObjectLibrary”确定”按钮。3)单击“
4)在AutoCAD中创建Excel应用程序,语句如下:
DimExcelAppasExcel.Application'激活要与之通信的Excel应用程序
收稿日期:2007-10-10;修回日期:2008-02-29
基金项目:“四川省高等教育人才培养质量与教学改革项目”立项文章,编号:06-511-254
作者简介:何兵(1972-),男,四川泸州人,讲师,硕士。研究方向:CAD/CAM,机电控制技术。
15
基于VBA的AutoCAD图块属性提取与Excel输出
第23卷第3期(总第102期)机械管理开发
否有属性
2008年6月
If.HasAttributesThenArray1=.GetAttributes
填在第1行
'如果有属性
'提取块引用中的属性,如果有
'从第2行开始,填写其它的
RowNum=RowNum+1
表行内容
ForCount=LBound(Array1)ToUBound(Array1)ExcelSheet.Cells(RowNum,Count+1).Value_=Array1(Count).TextStringNextCountEndEndEnd
IfIfWith
'显示Excel工作表中的结果EndSub
NextblkElemExcel.Visible=True
2.3运行结果
运行上述代码后,将在“文件夹下生成一“属E:\”
文件,见图2。第一行标题的文字不是块属性,性表.xls”
而是文本对象,所以在“属性表.xls”文件中的第1行为空。在多数情况下,作为标题的明细表行是固定的,所以标题行的块属性往往被设成固定不变(Constant)类
图1
创建具有属性块供电主接线图
型。在ActiveX中的Attribute和AttributeRef对象,都有一个Constant属性,用来判断某个块或块引用中的属性值类型,它是一个布尔类型的值,其值若为True,表示块属性值为Constant类型。
3结论
应用AutoCAD的VBA二次开发功能,编制了属性块的属性提取程序,运行程序后,自动提取属性块的有关参数,方便进行图纸相关信息管理。对设计信息管理系统(MIS)具有参考价值,在企业信息化管理建设中具有重要意义。
图2
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




