1 引言
随着机械工业的发展,冲压模具应用的范围越来越广,如何提高冲压模具加工的质量和速度成为一个关键问题。实现冲压模具的自动设计是解决这一问题的主要途径之一,而对冲压模具进行自动装配是自动设计中的一个重要环节。对零部件进行自动装配,可以大大提高冲压模的设计效率和质量。针对冲压模而言,其装配结构关系已经确定,实现装配的自动化也就是要实现参数化装配设计。
SolidWorks是一套基于Windows的以参数化和特征建模的技术为几何造型基础CAD/CAE/CAM/PDM桌面集成系统,它提供了几百个API函数,为使用VB/VC等高级语言对SolidWorks进行二次开发提供了便利。采用VB对SolidWorks进行冲压模自动装配的二次开发,使零部件的装配实现了参数化、自动化,大大方便了模具设计工程师对模具的设计和修改。
2 冲压模的装配设计方法
装配体的零部件可以包括独立的零件,也可以是其他的装配体。装配体的设计方法主要有3种:自下而上装配、自上而下装配和混合装配。自下而上的设计方法是指先建立零件,再将其插入到装配体,根据设计要求,将各个零件进行配合。自上而下的设计方法是指从装配体到零件的设计过程,即先产生一个装配,建立装配结构,逐步向下添加或设计新的几何体。混合装配是将以上两种装配混合运用的装配方法。根据冲压模具的特点,采用混合装配方法,先采用自下而上的装配方法将模具中的除紧固件以外的标准件和半标准件装配起来,然后采用自上而下的方法将成形零件等非标准件和紧固件装入装配体中,把也就是从前期装配起来的装配体中将这些零件与前期装配起来的装配体的相交的部分裁剪掉,从而形成模具装配体。
3 自动装配的设计思路
冲压模主要包含的零部件有:成形零件、定位零件、导向零件、固定零件、紧固零件、压料装置、卸料装置和其他辅助结构零件。这些零件中成形零件属于非标准件,导向零件和紧固零件属于完全标准件,其余的大多数零件属于半标准件。在进行装配之前,要完成非标准件的设计,其他零件要建立了相应的零件库,还要建立装配关系数据库,其中存放零件之间装配特征。数据的存储选择了Acess数据库系统。
零件装配关系的自动确定是实现产品装配自动化的重要环节。由于冲压模具有典型的结构,装配关系可以采用规则库的方式存储起来,通过RRR(基于规则推理)技术来获得冲压模的装配关系。
装配顺序是实现产品装配自动化的重点研究内容之一,合理的装配顺序可以提高模具的装配效率。在系统中采用自外向里的装配方式,将模具的下模座作为基础元件,依次加入与前面零件相连的零件,直到所有零件用完为止。零件由人工提供或通过CBR技术来进行推理获得,在装入一个零件后,从装配关系库中推理得到该零件在装配体中的装配关系,通过SolidWorks中的API函数来对零件进行定位。当定位完成后装入下一个零件。在装配过程中,引入装配层的概念,将下模座的层号设为0,与下模座相连的零件的层号设为1,依次类推,相连接的两个零件中,层号小的零件称为父零件层号大的零件称为子零件。装配过程如图所示。
自动装配过程的程序流程图
4 自动装配中的装配特征
装配特征是用来描述零部件中参与装配操作区域的信息单元,主要由装配特征语义、几何元素(装配特征面集)、装配特征坐标系、配合特征、装配公差内容组成。信息单元是指装配信息的属性集合。装配特征具有以下性质:装配特征都是成对出现的;装配特征之间具有明确的运动关系和位置关系;运动关系和位置关系与特定的功能具有明确的对应关系。
特征间的装配关系通过特征中参与装配的几何要素来实现。不同特征在装配时,特征间的装配关系不同,限定的自由度数也不相等。常见的构成装配特征的几何特征面有:平面、圆柱面、圆孔面、凸球面、凹球面、曲面、逆曲面等;构成装配特征的装配配合类型主要有:重合、平行、垂直、相切、距离、同轴心等。
构成装配特征的几何特征之间存在确定的约束关系,如两特征面的法线相反,曲面方程相同,相互之间在相对运动方式上存在确定的关系等。根据装配约束关系,由装配特征向几何结构特征进行映射的操作,建立具有该装配约束关系的几何特征对,其表示方法为:特征名称<配合关系>特征名称。比如:面面匹配的装配特征planeplane进行装配特征映射,就是在该装配特征面的位置上生成一对具有相同几何特性的有向平面对,该平面对具有相反的法线方向。
5 参数化零件库的建立
参数化设计的目的就是通过尺寸驱动方式在设计或绘图状态下灵活的修改图形,提高设计效率。参数化设计通常是指软件设计者为图形设计及修改提供一个软件环境,工程技术人员在这个环境下所绘制的任意图形可以被参数化,修改图中的任一尺寸,均可实现尺寸驱动,引起相关图形的改变。
在SolidWorks环境下生成零件的方法是:先建立零件造型的模板文件,将零件的参数存放在一个相应的数据库中,当输入零件的关键尺寸后,通过对数据库的检索查询出所要零件的相关尺寸,利用模板文件重新建模。在实现时,利用ModelDocExtension::SelectByID方法选择零件所要修改的尺寸,通过ModelDoc::Parameter属性来改变选择尺寸的数值,当所有尺寸修改完成后使用ModelDoc2::EditRebuild方法来重新建立零件。最后为了在装配时方便选择,还要在生成的零件上添加相关的装配基准。
对于冲压模来说,除了零件成形部位外,其他零部件的形状改变很少,通常只需要采用类比设计或改变一些关键尺寸就可以得到新的系列化设计结果。这也就为实现冲压模设计的自动化、智能化提供了前提。
6 基于SolidWorks的自动装配的实现
6.1 创建装配文档
在创建装配文档之前,首先是建立应用程序与SolidWorks的连接,就是建立二者之间的通信和控制关系,然后获得当前活动文档,使用NewDocument方法创建新的装配文档。在程序中,SolidWorks程序就是一个Application程序对象,可以通过VB提供的CreateObject方法创建二者之间的连接。具体的方法如下:
建立与SolidWorks的连接:Set swAPP=CreateObject(“SldWorks.Application)
获得当前文档:Set part-swAPP.ActiveDoc
创建新装配文档:Set part=swAPP.NewDocument(templateName,paperSize,width,height)
其中templateName是创建新文件时的模板名,paperSize是纸的尺寸( 通常为0),width和height分别为纸的宽和高(通常为0#)。
6.2 与数据库的连接
在模具的装配过程中有许多装配特征,采用数据库的方式将这些装配特征存储起来形成装配关系知识库。装配过程中组件和组件之间的配合关系通过对该知识库的查询获得。在应用程序中数据库采用Acess2000,应用程序采用ADO的方式读取数据库。ADO(ActiveX Data Object)技术是由Microsoft公司开发的最新的数据访问接口技术,ADO是建立在OLEDB之上的高层数据库访问技术。ADO数据访问接口让程序设计者简单地创建几个对象便可以连接数据来源、获取所需的数据和进行数据访问后的保存操作。ADO对象模型定义了一个可编程的分层对象集合,主要由3个对象成员Connection(用来建立与数据源的连接)、Command(用来在数据源中添加、删除和更新数据,或在表中查询数据)和Recordest(用来代表记录集,是基于某个连接的表或Command对象的执行结果)。具体的方法如下:
Dim con As ADODB.Connection
Set con=CreateObject(“ADODB.Connection”)‘创建Connection对象,建立与数据源的连接
con.Open“peovider=msdasq1;datasource=装配关系.mdb”‘打开装配关系数据库
Dim rst As ADODB.Recordest
Set rst=New ADODB.Recordest‘创建Recordest对象
Set rst.ActiveConnection=con
rst.CursorLocation=adUseClient
rst.Open“select*form 装配关系”,con,adOpenStatic,adLockBatchOptimistic‘ 打开“ 装配关系”表’
data=rst(i) ‘将当前记录的第i列的值赋值给data变量’
rst.MoveNext‘移动指针’
6.3 增加新的组件
在创建了新的装配体文档后,就是向此装配体中添加组件,先调用SldWorks::OpenDoc6方法打开所要添加的组件,再调用AssemblyDoc::AddComponent2方法来把这个组件放入装配环境中,采用ModelDocExtension::SelectByID方法来选择要进行匹配的特征,当匹配特征选好之后通过AssemblyDoc::AddMate方法来增加组件之间的配合关系,依次将组件间的匹配关系添加到装配环境中后组件便可以固定。这些函数的使用方法为:
打开组件:retval=SldWorks.OpenDoc6(filename,type,options,configuration,&Errors,&Warnings)
其中filename为所要打开的文档名,type打开文档类型,options为打开方式,configuration为打开文档的样式,函数返回所打开文档的指针。
增加组件:swCompenent为返回后的组件,compName为零件或部件的全名(包括路径),x,y,z为组件中心在装配环境中的坐标。
选择匹配特征:retval=part.Extension.SelectByID(Name,Type,X,Y,Z,Append,Mark,Callout)
其中Name为选择的对象名或空字符串,Type为对象类型或空字符串,X,Y,Z为对象的坐标或0,Append说明是否为追加选择,Mark是标记,Callout是相关联的草图的指针(一般为Nothing)。
增加配合:void AssemblyDoc.AddMate(mateType,align,flip,dist,angle)
其中mateType为配合的匹配类型,align为配合的对齐类型,flip为配合的配合方向,dist配合时的距离值,angle配合时的角度值。
6.4 装配特征的存储和检索
装配特征如何存放是实现自动装配的一个关键问题,合理的存储形式可以使自动装配实现起来更为方便。在程序设计时装配关系存储采用数据库来存放,数据库的结构见图2所示,其中零件名称是指要进行装配的零件,匹配对象1是指装配时子零件上用来进行匹配的对象名,匹配零件是指装配体中原来存在的零件,也即要装入零件的父零件,装配对象2是指装配时父零件上用来进行匹配的对象名,匹配关系是指装配中的匹配类型对应中的mateType,对齐关系是指装配中对齐类型对应AddMate中的align,匹配方向与AddMate中的flip对应,匹配尺寸1与匹配尺寸2分别对应AddMate中dist和angel。
图2 装配关系库的结构
在装入零件后,按刚装入的零件的名称在数据表中进行查询,再根据父零件的名称对表中“匹配零件”项进行查询,从而获得与其父零件的装配关系。
7 实例
以一套采用固定卸料方式卸料的落料模为例来说明如何按照上面的方法实现零部件的自动装配的实现过程。模具采用后侧导柱模架,卸料方式采用封闭式固定卸料板卸料,模具所包含的零件有凹模、卸料板、凸模、固定板和模柄等零件。在装配前,首先从建立好的参数化零件库中生成这些零件,装配时从装配关系库中提取出这些零件的装配关系。根据模具的结构零件库来获得该模具所包含的所有零件,先将下模座装入装配体中,然后依次将导柱、导套、上模座、凹模、凸模等零件装入到装配体中,每装入一个零件后从装配关系库中检索它与其父零件的装配关系,添加它们的匹配关系到装配体中。将这些零件全部装入装配体后,也就完成了模具的自动装配。
8 结语
本文通过落料模自动装配的实例,介绍了在SolidWorks环境下实现冲压模自动装配的可能以及实现方法,使冲压模零部件的装配实现了参数化、自动化,大大方便了模具设计工程师对模具的设计和修改,进而缩短了模具产品开发的周期,提高了企业技术应用水平
|