基于设计环境的图纸BOM管理系统(一)
1.2.2 图纸的批量录入
图纸管理以“项目”为划分,每个“项目”的图纸都可以批量录入,指定文件夹或是多个dwg文件都可以。对于单张图纸的录入过程如图3所示,图纸的批量录入是循环执行单张录入的过程。
图3 单张图纸的录入过程
图3“遍历图纸”是对图纸中所有实体的迭代过程,从中找出标题栏和明细表,然后对整个标题栏和明细表的数据进行读取,这是图纸数据读取的关键部分。对图纸数据的读取主要有3种方法:“模板匹配法”、“块属性定义”和“图纸属性定义文件”。其中,“模板匹配法”要求现有的图形和预先定义的模板的形式完全一致,这样就可以根据模板中的位置来提取图纸中的数据,该方法主要用于一些格式比较固定的纯表格类数据的提取,对图纸的要求非常严格;“块属性定义”是现在用的非常广的一种图纸数据提取方法,在AutoCAD中提供一种块编辑器功能,可以对图块进行属性定义或是在图块中填写扩展数据来标识图形,在获取数据时对图纸进行遍历,找到之前定义的属性块,这样就可以通过定义的属性提取出填写在图纸中的数据;“图纸属性定义文件”则主要适合一些自由表格图形的数据提取,通过在属性表中定义的图纸属性和相应的相对坐标及坐标偏移量就可以找到一个包容盒,这样包容盒中的文字数据就可以很方便的提取了。这里,系统提供了“块属性定义”和“图纸属性定义文件”这两种方法来提取图纸数据。下面主要是以“块属性定义”为例,图纸中标题栏和明细表都被定义成带属性的块,完整定义信息是由定义文件和保存在图块中的扩展数据组成的。图纸的遍历仅执行一次,遍历的算法过程如图4所示。
图4 图纸的遍历过程
“读取标题栏信息是否成功”,是检查遍历的图纸的结果中是否存在标题栏的ID,如果存在则读取标题栏中保存的扩展数据,找到相应的定义文件,定义文件中保存了标题栏的字段的定义信息,然后根据定义信息可以得到标题栏中各个字段的填写区域,从而可以获取到标题栏中填写的所有信息,例如:图号、名称、图幅等。“读取明细表信息是否成功”的过程也是类似的。程序的基本流程图如图5所示。
图5 读取标题栏定义的过程
“检查是否存在递归包含”的作用是检查一张图纸是否在明细表中又包含了自己,如果存在递归包含则不会被添加到图库中,因为这在输出产品结构树时会引起一个类似死循环的结构。如果要添加的文件已经存在图纸数据库中,则删除原来已经保存在数据库中的相关图纸信息,重新添加一次。
1.2.3 产品结构树输出
在图纸的标题栏和明细表信息的录入时,系统会在图库数据库中新建1个“图纸关系表”(如果已经存在,则或删除重建),用来管理录入图库中的图纸之间的关系。“图纸关系表”中主要记录了3个字段:项目ID(根据项目新建的顺序,从1开始顺序取值)、图纸ID(按照图纸添加的顺序,从1开始顺序取值)、父图纸ID。图纸的父子关系主要是根据图纸中的明细表的引用关系来确定的:如果a图纸的明细表中引用了b图纸,则认为b图是a图的零件,a图是b图的父亲。产品结构树的输出过程如图6所示。
图6 产品结构树输出过程
“建立文档父子关系”是产品结构树的关键步骤,其过程主要分为3步:
1)从“图纸信息表”中获取图纸ID;
2)根据图纸ID在相应的“明细表信息表”中查询该图纸明细表中所引用的图纸的ID,保存到一个数组中;
3)根据获得的图纸ID数组逐个的查询,这样就得到了文档的父子关系,然后添加到“图纸关系表”中;“检查是否存在递归包含”的依据是“图纸关系表”中图纸ID和其父图ID是否相等,如果相等,则认为是存在递归包含,不相等接着进行下一步,插入到结构树的相应位置进行显示。
1.2.4 BOM报表输出
BOM报表可以输出多种格式:txt、xls、dbf和dwg。图纸的数据包含标题栏和明细表信息,数据按照产品结构树的层次来输出。BOM报表输出的数据来自“产品结构信息”表,这个表中的数据是“图纸信息表”和“明细表信息表”的综合,包含的数据量非常大,考虑到整个系统的性能,“产品结构信息”表不会自动刷新,用户在需要时手动刷新。txt、xls和dbf格式都是按照顺序直接写出数据,是比较通用的格式,而dwg格式报表则是把数据填写在dwg格式的表格中,这是很多管理软件没有的报表格式,dwg格式的报表在工业实际中应用非常广泛,符合设计人员的使用习惯,方便修改和维护。dwg格式报表需要预先定义一个报表格式和相应的表格定义文件,系统会根据dwg表格模板和定义文件中定义的字段选择性的提取“产品结构信息”表中的数据填写到表格中,从而输出dwg报表。
2 图纸BOM管理系统实例
图纸BOM管理首先是要建立图库数据库,数据库中主要包含图纸的定义信息,和各个用于存储图纸信息的数据表,这些信息都是以后图纸的信息提取和保存的基础。然后可以新建项目、添加图纸,新建的项目和添加的图纸信息都会被保存到先前建立的数据库中,系统最终会根据图纸的信息生成一个产品结构树,可以对树中的任意一张图纸进行查看,填写等操作,对于每个项目都可以输出报表,选择输出报表,可以得到如表1所示的报表数据。
表1 报表数据
针对这个网格中数据,可以输出成多种格式:txt、dbf和dwg。对于dwg格式的报表需要预先定制好输出的表格形式,表2是输出的dwg报表。
表2 输出dwg报表
3 结束语
图纸BOM管理系统已经在多个企业使用,如:成都成工工程机械有限公司等,系统直接集成在CAD环境中,操作简单直观,符合设计人员的使用习惯,提高了图纸数据的重复利用率,减少了设计者的重复劳动,得到了用户的一致好评。未来该图纸BOM管理可以朝着网络协同方面发展,实现多用户并行工作和图纸数据的完全共享,这将又会是一次大的飞跃。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于设计环境的图纸BOM管理系统(二)