欢迎来到天天文库
浏览记录
ID:38711193
大小:128.50 KB
页数:4页
时间:2019-06-18
《基于DwgDirectX开发AUTOCAD图纸明细表提取程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于DwgDirectX和扩展实体数据开发AutoCAD图纸明细表提取程序摘要:基于对OpenDWG技术的分析,配合使用DwgDirectX和AutoCAD扩展实体数据,开发在脱离AutoCAD平台的情况下批量提取DWG文件中明细表的程序,详细的介绍了工程图明细表信息读写实现技术,并给出了关键代码。关键词:明细表AutoCADOpenDWGDwgDirectX扩展实体数据引言:产品的设计过程中产生了大量的装配图,图纸中的明细表纪录了组成该装配件的零部件的信息,标题栏纪录了该图本身的一些属性。工程图中的设计和管理信息集中体现在标题栏和明细栏中,这些信息描述了产品的装配
2、结构。一般情况下,标题栏位于图纸的右下角,每张图纸的设计和管理信息集中反映在标题栏中,包括图号、名称、幅面、比例、设计、校对、审核、版本等;明细栏位于标题栏上方,其中收集了部件装配图中用到的零件清单,包括零件序号、代号、名称、材料、重量等。已有很多文献介绍了基于工程图的位置和形状特征来进行数据提取,但是这些算法对数据的位置和形状特征要求比较苛刻,实际提取过程中会出现数据漏提或错提,而且对于进行了分栏的明细表数据提取更是困难重重。本文提出一种使用基于DwgDirectX和扩展实体数据进行数据提取的方法,可以使数据提取不再受到工程图的位置和形状特征的制约,使数据提取准确
3、、快速。关于附着实体扩展数据在明细表中的应用详见笔者的另一篇论文《VBA操作AutoCAD扩展实体数据开发零部件序号标注及明细表关联生成系统》。一.OpenDWGToolkit技术剖析AutoCAD的DWG格式是一种非公开的二进制格式。OpenDWGToolkit(简称“ODT”)是OpenDWG联盟(“OpenDWGAlliance”,现为“OpenDesignAlliance”)推出的一组开发工具,其中用来读写DWG格式文件的库DwgDirectX,通过DwgDirectX利用VB、VC等语言可在脱离AutoCAD的情况下直接对DWG读写,能够快捷地访问Auto
4、CAD图形里的各种实体或对象类型,将DWG文件格式解读成为一种开放的工业标准文件格式,对外屏蔽了DWG的版本差异,支持处理AutoCAD2.5到最新版本DWG文件。数据结构如图所示:DwgDirectX组织数据的方式与ObjectARX非常相似,包括图块(Block)、图层(Layer)、线型(LineType)、形文件(ShapeFile)、视图(View)、视口(ViewPort)、标注样式(DimStyle)、用户坐标系(UCS)、注册应用程序(RegApp)9个容器表,块表包括ModelSpace(模型空间)和PaperSpace(图纸空间)两种基本类型。需
5、要检索扩展数据的实体包含在块表的ModelSpace(模型空间)或PaperSpace(图纸空间)中,本文针对块表的ModelSpace(模型空间)进行操作。二.使用DwgDircetX脱离AutoCAD进行数据读写1.引用DwgDircetX,建立VB开发环境要实现使用ODT进行数据提取(本文以DwgDirectX1.12版本为例,最新版本为3.0)必须具备的库文件有8个:DwgDircetX.Dll、OdaX.Dll、DD_Alloc.dll、DD_Db.dll、D_Ge.dll、D_Gi.dll、D_Reg.dll、D_Root.dll,在VB中对DwgDir
6、cetX.Dll、OdaX.Dll进行引用,然后在VB中添加模块(Module),加入声明:GlobalodaAppAsAcadApplicationGlobalodaDocAsAcadDocument声明之后的“odaDoc”与VBA中的“ThisDrawing”等同使用,这样便可脱离AutoCAD操作实体对象了。2.提取明细表数据子过程代码不依赖工程图的位置和形状特征来进行数据提取,而以附着的扩实体数据进行提取,前提是我们已经在绘图过程中,对标题拦和明细栏数据附着了约定规则的扩展实体数据。例如:扩展数据按表中的模式进行附着:序号应用类型实体类别序号数据种类编码(
7、Item)1ListSNList1序号图号名称数量材料单重总重备注45678910112ListSNList2序号图号名称数量材料单重总重备注45678910113ListSNList3序号图号名称数量材料单重总重备注4567891011-…ListSNList-…序号图号名称数量材料单重总重备注4567891011nListSNListn序号图号名称数量材料单重总重备注4567891011对按上表模式进行了扩展数据附着的明细表实体数据提取自过程如下:提取序号为Number明细表数据,声明ListArray为字符型一维数组,保存提取的明细表数据:PublicLi
此文档下载收益归作者所有