摘要:数字化建模过程中,产品的自动装配可以省去大量手动工作,提高效率。本文介绍CATIA V5二次开发的方法,利用CAA实现打开CATIA装配体文件,将已有部件插入到装配体中,建立约束关系,实现产品自动装配的功能。提出采用坐标轴系统重合的约束方法,以自动钻铆机床和壁板的自动装配为实例验证。
在CATIA的装配设计(Assembly Design)模块中导入创建好的CATIA模型,通过设置约束关系、调整模型之间的相对位置即可实现产品的装配。当装配模型较多且不同装配体间具有相似的约束关系时,采用自动装配可以省去大量重复的手动装配工作,有助于提高设计和生产效率,缩短产品开发周期。本文借助组件应用架构(Component Application Architecture,CAA)对CATIA相关模块进行二次开发,将待加工产品与加工机床建立约束关系,实现了产品的自动装配功能。
1 CATIA二次开发介绍
1.1 CATIA二次开发方式
CATIA接口有两种与外部程序通信的方式:进程内应用程序(In_Process Application)方式和进程外应用程序(Out_Process Application)方式。前者记录用户的操作过程,通过VB script或Java script来录制宏,自动生成代码,后者则利用CATIA提供的CAA API实现基于组件的定制开发。进程内应用程序方式相对简单,在CATIA内部即可完成,但在运行宏时,CATIA处于非激活状态,宏之间不能调用存储变量的值,功能有限。进程外应用程序方式可以进行从简单到复杂的二次开发工作,具有强大的交互、集成和用户特征定义的功能。本文采用CAA方式实现产品的自动装配。
1.2 CAA架构
CAA是通过提供的快速应用研发环境(Rapid Application Development Environment,RADE)和不同的API接口程序来完成实现的。RADE是一个可视化的集成开发环境,它提供完整的编程工具组。实际上RADE以Microsoft Visual Studio VC++为载体,在VC++环境中增加了CAA的开发工具。API提供了操作各种对象的方法、工具和接口。
Dassault System提供的CAA产品包括:CAA RADE快速开发环境,基于Microsoft Visual Studio;CAA CATIA V5 API,CATIA V5应用开发工具;CAA ENOVIA LCA V5 API,ENOVIA LCA应用开发工具;CAA DELMIA V5 API,DELMIA V5应用开发工具;CAA ENOVIA PORTAL V5 API,ENOVIA PORTAL V5应用开发工具。
本文在CAA RADE建立的快速开发环境中调试编译,调用了CAA CATIA V5 API中的相关接口,实现了打开文档、插入部件,创建约束等功能。
2 装配约束的建立
装夹时,产品是通过夹具固定在机床上的,一款机床通常可以加工多种不同产品,但这些不同的产品与夹具的约束关系是相同的。仿真装配环境下,当产品种类较多时,采用自动装配可以省去创建相同约束而进行的大量的重复性手动工作,提高效率。
为了实现产品的自动装配,在建立机床、产品的CATIA模型时,采用了一种独立添加装夹约束的方法。独立生成参考元素而不直接获取夹具模型的几何元素是因为模型上的一些几何元素是通过拉深、镜像等特征操作得来的,是拓扑元素,在树形结构上无法直接获取,且获取难度较大。首先在各自模型的夹具零件中添加装夹约束所需的空间几何元素,参考点、参考线、参考面等;其次编制装配工作台,实现通过对话框选择产品、响应按钮与插入产品模型关联;游历装配体文件,获取参考元素;最后生成约束,实现同一机床自动更换不同产品的功能。
2.1 创建装配工作台
CATIA V5支持交互命令,通过接口CATIWorkbench和CATIWorkbenchAddin可实现在CATIA V5下拉菜单中添加工作台(Workbench)、工具条中添加按钮(Addin)的功能。点击响应按钮,弹出查找产品模型路径的对话框,用接口CATIIniInteractiveSession实现模型路径对话框的选择关联。
2.2 导入产品模型、获取夹具文件
零件是组成装配体的基本单位,装配体可以是仅由零件组成的简单装配体,也可以是由零件组成的次级装配体(已装配的产品)所组成的装配体。CATIA V5中的两种文件类型CATProduct和CATPart分别对应装配体和零件。装配体模型中,夹具中的参考元素是存在于CATPart类型文件中的,创建约束要获取参考元素,首先要找到参考元素所在的CATPart,获取的方法取决于该文件以何种形式存在于装配体中,如果是直接插入的装配体,在装配体的根目录下直接获取即可;以次级装配体的形式插入的装配体(大部分复杂装配体都是这种方式),需先在根目录下找到该次级装配体文件,打开次级装配体文件,获取次级装配体根目录下的节点文件,如果该节点文件还是CATProduct类型的就反复循环直至得到夹具对应的CATPart类型的文件。
调用类CATdocumentServices下的函数Opendocument打开机床模型文件。使用接口转换函数QueryInterface,把指针转换给接口CATIDocRoots,调用函数GetChildren就可以获取机床文件根目录上的节点了。在装配模块工作台中创建的对话框与待加工的产品路径关联,将选中的产品文件添加到机床文件的根目录下,零件也就导入到装配体中了,这时的产品模型在装配模型文件中的位置是随机的,需要建立约束使其位于正确的加工位置。
游历根目录得到的节点如果是CATPart型文件,直接获取其下的参考元素就可以了(具体方法见2.3)。如果是CATProduct类型的文件,方法同上,再次使用接口CATIDocRoots和函数GetChildren得到次级装配体根目录下的节点。如果指定的CATPart类型文件还在CATProduct类型的文件中,重复操作,直到得到该文件。
2.3 获取几何元素
得到所需的CATPart类型文件后,需要进一步检索得该文件下的参考元素。首先用接口CATInit初始化该文件指针,指钟向下传递,通过函数GetMainBody转换给接口CATIDescendants,在这个接口中就可以得到零部件几何体(Openbody)下的所有特征和参考元素了。调用函数GetChildAtPosition,根据参考元素的顺序位置就可以得到所需指针。
2.4 创建约束
零件模型是由点、线、面这些基本的几何元素构成的。在装配过程中,约束是各部件之间的相对几何关系限制条件。通过共线约束(Coincidence Constraint)、接触约束(Contact Constraint)、偏移约束(Offset Constraint)、夹角约束(Angle Constraint)、固定约束(Fix Constraint)等约束关系限制零部件的自由度,最终实现零件的定位。从特征中读取参考元素指针传给接口CATIConnector,利用函数GetProductConnector(pGeometry,pInstanceComponent,pActiveComponent,O,pConnector,iCreation)创建每个参与约束的几何元素的pConnector。其中的pGeometry代表的是要约束的几何元素的指针。最后用函数CreateConstraint(catCstTypeOn,ConnectorList,NULL,piProductOnRoot,&pCst)生成约束。ConnectorList是所有参与该约束的pConnector的列表,catCstTypeOn表示共线约束。
2.5 利用坐标轴系统装配约束复杂产品
通常的产品模型形状复杂,在空间中要创建多个参考元素,设计人员习惯不同,选取的原则也就不同,从而创建的参考元素会有很大的不同,不利于装配过程的统一和规范。而且空间的点、线、面难定位,确定参考元素间的相对位置比较繁琐。本文通过在机床和产品模型中分别添加一个包含坐标轴系统的CATPart类型文件,简化参考元素的创建,提高装配效率。坐标轴系统的坐标点、坐标轴、坐标平面等同于参考元素中参考点、参考线、参考平面,可以实现空间定位;坐标轴系统中的元素相互关联,省去调整元素间相对位置等工作;坐标轴系统的轴线有指向,轴线重合时,可选取同方向重合(两轴线夹角值为0)或是反方向重合(两轴线夹角为180°),方便定位;坐标轴系统直观、规范,利于设计人员统一使用。同时CATIA V5中的坐标轴系统,在CAA中有专用的接口,方便管理、获取。建模时,调整坐标轴系统在空间中的位置,使各自模型文件中的坐标轴系统与机床、产品固联。导入产品后,只需将产品中的指定坐标轴系统与机床上指定的坐标轴系统重合,即可实现装配。在包含坐标轴系统的零件中找到指向坐标轴系统的指针,传给CATIMf3DAxisSystem接口中的CetAxisBRepAccess函数,就可以得到坐标轴系统中的X、Y、Z坐标轴了,根据需要在两坐标轴系统间建立共线约束和角度约束就可实现坐标轴系统的重合,从而完成产品的自动装配。
3 实例验证
采用坐标轴系统重合的约束方法,以自动钻铆机床和壁板的自动装配为实例对提出的独立建立约束关系的方法进行了验证。实例建模时在机床和壁板上分别添加了坐标轴系统。
打开自动钻铆机模型,在CATIA V5中点击图4所示的开始→机械设计→自动装配工作台,系统进入自动装配界面,此时的围框上是没有壁板的。选中自动装配工作台工具条中的“打开装配模型”弹出图5所示的对话框,壁板产品路径选择产品,确定,系统实现壁板的自动装配功能。
2.5 利用坐标轴系统装配约束复杂产品
通常的产品模型形状复杂,在空间中要创建多个参考元素,设计人员习惯不同,选取的原则也就不同,从而创建的参考元素会有很大的不同,不利于装配过程的统一和规范。而且空间的点、线、面难定位,确定参考元素间的相对位置比较繁琐。本文通过在机床和产品模型中分别添加一个包含坐标轴系统的CATPart类型文件,简化参考元素的创建,提高装配效率。坐标轴系统的坐标点、坐标轴、坐标平面等同于参考元素中参考点、参考线、参考平面,可以实现空间定位;坐标轴系统中的元素相互关联,省去调整元素间相对位置等工作;坐标轴系统的轴线有指向,轴线重合时,可选取同方向重合(两轴线夹角值为0)或是反方向重合(两轴线夹角为180°),方便定位;坐标轴系统直观、规范,利于设计人员统一使用。同时CATIA V5中的坐标轴系统,在CAA中有专用的接口,方便管理、获取。建模时,调整坐标轴系统在空间中的位置,使各自模型文件中的坐标轴系统与机床、产品固联。导入产品后,只需将产品中的指定坐标轴系统与机床上指定的坐标轴系统重合,即可实现装配。在包含坐标轴系统的零件中找到指向坐标轴系统的指针,传给CATIMf3DAxisSystem接口中的CetAxisBRepAccess函数,就可以得到坐标轴系统中的X、Y、Z坐标轴了,根据需要在两坐标轴系统间建立共线约束和角度约束就可实现坐标轴系统的重合,从而完成产品的自动装配。
总结
本文利用CAA对CATIA进行的二次开发实现了自动装配平台界面的编制、待加工产品与加工机床的自动装配。以自动钻铆机床和壁板的自动装配为例,通过平台编制、模型建立、建立装配约束、实现自动装配等环节,验证了独立建立约束关系的方法的可行性。实例建模时在机床和壁板上分别添加了坐标轴系统。