e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  CAD

基于SolidEdge的BOM信息的自动提取与应用研究

2011/6/2    来源:万方数据    作者:何丽  孙文磊      
关键字:SolidEdge  装配BOM信息  SolidEdge二次开发  
以CAD软件SolidEdge为开发平台,分析研究装配体和包含于装配体内零件的内部信息表达;用Visual Basic作为开发工具。利用SolidEdge的二次开发接口技术及数据库技术,实现SolidEdge装配BOM信息的自动提取,并将其作为基础数据生成中间数据表,应用于PDM和ERP系统集成中;最后,给出了具体应用研究实例。

0 引言

    随着信息技术的发展,信息化已经成为制造企业提高产品竞争力的核心。物料清单BOM(Bill Of Materials)逐渐成为产品的核心基础数据之一,是产品数据管理(PDM)和企业资源规划(ERP)等相关应用的重要基础数据。BOM是PDM与ERP的重要组成部分和两大信息平台的交汇点,对消除它们之间存在的“信息孤岛”具有重要的意义。

    在过去的产品设计中,材料清单是由设计人员人工统计出来的。在设计复杂的产品时,材料清单的统计工作量相当大且容易出现错误。在市场竞争的推动下,产品的设计和更新速度加快,产品的设计会被反复地修改和完善,其产品的BOM也会随之发生相应的变化。如何最大限度地利用设计阶段的BOM信息是加速产品从设计领域到制造领域转化的关键。本次研究主要针对由设计阶段产生的产品装配图进行分析,以SolidEdge为开发平台,应用Visual Basic开发工具自动地从产品装配图中提取BOM信息,并将提取到的信息作为基础数据生成中间数据表,应用于PDM和ERP系统集成中。

1 SolidEdge的层次结构与二次开发原理

    1.1 SolidEdge的对象层次结构

    对象之间一般通过被称为对象模型或对象层次结构的形式相互联系。SolidEdge的对象层次结构是对其进行二次开发的重要基础。其对象层次结构可以描述为自上而下的树形结构,如图1所示。

    根据SolidEdge的层次结构,运用SolidEdge的二次开发技术可逐层次地提取我们需要的装配BOM信息和相关零部件的信息。

图1 SolidEdge的对象层次结构图

图1 SolidEdge的对象层次结构图

    1.2 SolidEdge的二次开发原理

    应用程序接口(SolidEdge API)是SolidEdge的对象连接和嵌入(OLE)应用程序开发的接口,用户可以通过SolidEdge API,并利用支持OLE编程的开发平台对SolidEdge进行二次开发。在众多支持OLE自动化技术的开发工具中,Visual Basic具有简单易学、功能强大、面向对象编程等优势,并且,从SolidEdge帮助文件Visual Basic Examples中不难发现,SolidEdge提供了大量与VB接口的类型库,库中提供了大量的OLE对象及对象拥有的属性、方法和事件等,程序员对这些OLE对象及其方法和属性进行操作便可实现不同功能的二次开发。

    用Visual Basic开发工具对SolidEdge进行二次开发,须在Visual Basic环境下引用关于SolidEdge的类型库。VB开发的应用程序和SolidEdge是以客户/服务器的方式工作的,用户只需在客户端应用程序上进行操作即可驱动SolidEdge完成相应的工作。在VB环境中编写代码建立VB和SolidEdge对象的联系并对其进行各项操作。

2 装配BOM信息自动提取的实现方法

    在PDM系统中添加产品的装配图,一方面生成符合PDM管理系统要求的树形层次结构,另一方面是在添加产品装配体的同时需要提取装配体中的BOM信息及相关零部件的信息,并将提取到的信息写入到数据库。PDM系统提取SolidEdge装配体信息及相关零部件信息流程如图2所示。实现步骤与方法如下所述。

    2.1 提取装配体文件中各个节点的信息

    在该信息提取的步骤中,主要完成对产品装配体节点信息(如名称及节点所对应零件的路径)的提取、不同节点指向相同零件或子装配体信息的处理(为使在PDM系统中不出现相同零件的重复管理),最后将提取信息及处理后得到的相关数据写入数据库。其实现方法是:在PDM系统中编写ReadOccurrences()和ReadSubOccurrences()等函数遍历各个节点,完成装配体节点信息的提取、处理及存储。由此方法得到的数据使2.3步骤中打开零件文件的次数减到最少,提高了数据读取与写入的效率。

    2.2 在PDM系统中以树形结构表示装配体的BOM信息

    在上述步骤中完成了装配体文件中各节点信息的提取且将提取到的有用数据写入数据库,该步骤主要是调用数据库中的数据对零件或子装配体完成自动编码。其实现方法是:在PDM系统中编写AddRecord()和AddNode()函数,实现以树形结构表示装配体的BOM信息。

    2.3 提取零部件的文件属性和物理属性

    该步骤主要是遍历PDM系统中各个节点的零部件,打开其对应路径下的装配体和零件文档,自动提取我们所需要的零部件的文件属性和物理属性。其实现方法是:在PDM 系统中编写ReadAssemblyProperties()、ReadPartProperties()等函数,完成零部件文件属性和物理属性信息的提取。

    2.3.1文件属性的提取

    在VB中编写代码可以监视到文档对象的7大类父属性。从父属性的子属性项中可以找到系统需要的属性(即子属性),如DocumentName、Material、DocumentNumber、密度、精确度、folder等文件属性信息。在VB代码中访问各个子属性的名称和值的形式分别为:objPropertsets.item(父属性)(子属性).Name和objPropertsets.item(父属性)(子属性).Value。其中,父属性和子属性都有两种表现形式:“属性名称”或Index(子属性序号,为一个整数)。而父属性下的子属性个数的形式为:objPropertsets.item(父属性).Count。

图2 装配体BOM的信息自动提取及存储流程图

图2 装配体BOM的信息自动提取及存储流程图

    2.3.2 物理属性的提取

    SolidEdge文档对象SheetMetalDocument和PartDocument具有集合属性Models,对每一个成员model 使用SolidEdge API函数GetPhysicalProperties()得到其物理属性,对于那些需要计算得到的物理属性(如重量等)可以通过调用ComputePhysicalProperties()自动计算然后提取得到。装配体的物理属性需要先计算,然后使用GetAssemblyPhysicalProperties()直接提取。

责任编辑:许小倩
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
相关资料
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐