胎面2D花纹的自动测量及重构算法研究
2017-07-22陈进富宋忠辉董玉德张方亮刘彦超白苏诚
陈进富,宋忠辉,董玉德*,张方亮,刘彦超,白苏诚
[1.合肥工业大学 机械与汽车工程学院,安徽 合肥 230009;2.佳通轮胎(中国)研发中心,安徽 合肥 230601]
轮胎花纹作为车辆与地面直接接触的部位,其形状直接影响轮胎与地面的牵引力[1]、侧滑力、排水性和噪声等,同时汽车行驶过程中的操纵稳定性和乘坐舒适性也与轮胎花纹有密切关系。轮胎花纹造型是由三维CAD软件设计,其中CATIA软件应用最广,鉴于轮胎花纹表面的复杂性,在利用CATIA软件设计轮胎3D花纹时,通常先设计胎面2D花纹,然后利用develop命令将2D花纹缠绕到轮胎胎面上[2],利用一系列命令生成单节距花纹,最后对不同节距花纹进行装配形成整条轮胎。
胎面2D花纹的设计尤为重要,快速高效地获取2D花纹的几何参数并实现参数与模型的共享对提高胎面2D花纹的设计效率具有重要的作用。陈理君等[3]提出通过将扫描轮胎花纹图案处理成[0-1]矩阵的算法识别出了轮胎花纹的周期与节距的排列规律,刘雨青等[4]提出利用轮廓提取和种子填充算法计算出花纹块和花纹沟槽的面积,但该算法是基于AutoCAD二维软件平台下完成的,所测的数据也主要用于噪声的分析并不能重构出模型。
本工作提出基于特征遍历算法用于2D花纹参数的自动测量,并结合数据库技术和面向组件技术开发出的综合系统。
1 系统原理
系统以CATIA软件为平台,利用CAA组件应用架构进行二次开发,该方式提供了大量的API接口以便扩展系统功能,具体是通过将RADE模块以及API接口相结合来实现对CATIA的深层次开发,其中RADE模块集成在VC++开发环境中。同时采用SQLServer数据库[5]对获取的参数信息进行管理,访问数据库方式采用的是ADO技术[6],该技术不仅具有OLE DB技术的优点而且使用方便。系统原理如图1所示。
图1 系统原理示意
2 花纹参数自动测量
三维空间的2D花纹本质上是其二维图形的三维表现,即将原有二维图形中的点、直线和圆弧等扩展到三维空间,难点在于如何通过程序获取模型信息。另外,在CATIA软件界面中的模型其特征树中都会有对应的信息,对于轮胎模型而言,为方便管理,通常会在模型树中新建2D花纹几何图形集,因此只需获取模型树中的信息即可。而在零件文档中,零件处于模型树的根部,零件特征在所有特征中位于最高层,同样在CAA开发模式中,零件也是Part文档的最上层对象,该对象包含两个对象:线框曲面对象(HybirdBodies)和实体对象(Bodies)。HybirdBodies对象在CATIA软件交互界面中被称为几何图形集,包含了类似零件设计中的其他对象如创建空间点、线条和平面等,因此在CATIA二次开发中具有非常重要的作用,Bodies对象与HybirdBodies对象类似。由上述分析可知,为实现参数的自动测量,可通过遍历特征树获取所有几何图形集,然后通过用户交互的方式获取2D花纹几何图形集,进而针对获取的几何特征采用不同的函数进行测量。为了能够将测得的参数自动存入数据库且达到模型重构的要求,需要将其进行细分直到不可再分以满足第1范式。由分析可知,图形是由图素构成,而每种图素都有自己的特征数据,如直线的起点和终点坐标,因此可将2D花纹图形元素所对应的特征数据存入数据库中,使2D花纹与相应数据库中的数据一一对应,实现2D花纹图与数据表的关联,不同用户间可通过读取数据库中的图形参数重构2D花纹。具体步骤如下。
(1)获取当前根节点对象。首先通过文档编辑器CATFrmEditor中的GetCurrentEditor()函数返回当前激活的编辑器,进而通过GetDocument()函数返回与该当前编辑器对应的文档,其次通过IUnknown基接口中的接口查询函数QueryInterface()获取根路径指针接CATInit,然后利用GetRootContainer()函数获取根容器并将其转化为Part容器,最后利用GetPart()函数获取零件特征,也即根结点对象。
(2)遍历2D花纹几何图形集。首先通过上一步获取的零件特征QueryInterface检索零件几何特征集接口CATIPartRequest,然后通过该接口提供的GetSurfBodies()函数检索所有几何图形集,根据GetPosition()函数确定2D花纹几何图形集在模型树中的位置,进而获取花纹特征对象CATBaseUnknown指针,随后就可通过CATIDescendants接口所提供的GetAllChildren()函数检索零件中的所有子集合(点集合、线集合、圆弧集合等),然后利用递归的方法遍历所有子集合中的元素,便可实现遍历2D花纹几何图形集的功能。需要指出的是所有的接口(包括CATIDescendants接口以及CATIPartRequest接口)都继承于基接口(IUnknown),而基接口主要通过3个基本函数(QueryInterface,AddRef,Release)对所有接口指针进行管理。
(3)几何参数的自动测量。首先利用Size()函数获取不同子集合中元素的个数,然后利用遍历的方法提取集合中的元素,针对不同集合中的元素利用CATIMeasurableIn-Context接口下的不同函数进行测量,具体功能的实现方法与其他接口一致,即通过用户对象(Client Object)、接口(interface)、实现方法(Implementation)三部分实现对CATIA的开发,这三部分有各自不同的分工和联系,用户对象包含通常所说的对象成员(如点、线、面等),接口是由一组操作集即纯虚函数组成,用户对象与实现方法的连接通过接口实现,需要指出的是同一个实现方法可以同时为多个接口所共有。几何参数的自动测量实现方法为:首先获取CATIMeasurableInContext接口对应的指针,然后利用该接口下不同的函数对被测对象进行测量,从而实现获取几何参数的功能。
3 重构2D花纹
在轮胎花纹设计过程中,通常由于用户操作习惯不同造成模型重构过程的不确定性,因此如何通过程序来组合操作步骤以达到模型重构的目的具有一定难度。由分析可知,不同图元本身虽然是孤立的,但是他们之间通过顶点连接,因此模型重构可以先从数据库中读取图形参数,然后利用CAA函数库中的不同函数将构成模型所需的所有基本线条绘制出来。由CAA提供的方式可知,基本线条的生成方式是多样的,如生成一段直线,既可以通过直线的长度、方向和起始点的坐标实现,也可以只通过起始点与终止点坐标的方式实现,结合参数的自动测量过程,本工作采用第2种方式,这种方式虽然在建模过程中并不能体现线段之间的关系,但是当模型建成之后通过依附于线段之间的顶点即可将整个模型联系起来。
3.1 搜索需要重构的轮胎2D花纹
首先通过查询轮胎的基本信息查找需要进行重构的轮胎花纹,然后可读取数据库中对应的2D花纹参数信息。为方便查询,系统提供了2种方式可供选择:(1)精确查询,直接在编辑框中输入轮胎花纹的ID信息,即可查询该轮胎花纹的基本信息;(2)模糊查询,采用的是下拉菜单的方式,该方式结合了层次结构的设计以便减少下拉选项中的内容。另外系统还提供了可视化预览功能,首先在多选框中单击轮胎花纹基本信息,然后通过ftp站点[7]将对应的花纹图片从服务器下载到本地,再利用CAA加载图片功能[8]将对应模型的图片显示在界面中。
3.2 轮胎2D花纹的重构及显示
轮胎2D花纹的重构及显示步骤如下。
(1)创建几何图形集。首先利用编辑文档类CATFrmEditor中 的GetCurrentEditor()函 数返回当前已激活编辑器,进而通过GetDocument()函数获取当前文档,然后利用Part容器实现CATIMechanicalRootFactory接口,该接口主要用于创建几何图形集、有序几何图形集和几何体,因此可利用该接口中的CreateGeometricalSet()函数创建轮胎2D花纹几何图形集以便模型的管理。
(2)线框模型的重构。利用该文档容器CATIContainerOfDocument中的GetSpecContainer()函数获得规格容器,进而将其转化为几何工厂CATIGSMFactory接口,该接口模块提供的函数可以实现绝大多数创建底层几何对象的操作,如点、线、面、圆弧、多段线、球体、旋转体、拉伸体和填充面等,因此可以先通过其提供的CreatePoint()函数创建圆弧以及直线的起始点与终止点,然后利用CreateLine()函数和CreateCircle()函数创建直线与圆弧,当利用for循环将所有的直线和圆弧都创建出来之后,即整个线框模型重构完成。
(3)线框模型的显示。通过CATIGSMProceduralView接口将创建的CATISpecObject类型的几何特征对象添加到几何集中,然后利用InsertInProceduralView()函数将其显示在窗体中。
3.3 参数输出
为方便用户察看与分析研究,本系统提供2种数据显示方式。
(1)界面显示。该方式主要通过选择器列表类CATDlgSelectorList中的SetLine()函数将需要输出的数据显示在多选框中,同时为了只显示当前数据,需要用ClearLine()函数对之前的数据进行清空。
(2)文件导出。首先利用SetVisibility()函数将选择路径窗体显示出来,并利用GetSelection()函数获取用户选择的文件路径,然后就可以利用fopen()函数打开该文件,进而利用fputs()函数按指定的数据格式写入文件中,最后利用fclose()函数关闭文件。
4 应用
当用户完成单节距花纹后,首先利用系统提供的交互界面输入该轮胎花纹的基本信息,然后选择模型树中的2D花纹几何图形集即可,界面如图2所示,系统会自动测量模型的几何参数将其存入到数据库中,并与其基本信息一一对应。
图2 选择胎面2D花纹几何图形集界面
当其他用户设计轮胎花纹时即可利用服务器中已有的模型及其参数,具体方法为:先通过系统提供的检索界面(如图3所示)筛选出需要的轮胎花纹,然后系统会利用数据库中的几何参数将对应的模型重构出来,同时将其几何参数显示在界面中,如图4所示。如果需要对数据进行分析,也可将其几何参数导出。
图3 轮胎花纹基本信息检索界面
图4 胎面2D花纹模型及其对应参数显示界面
由此可见,通过本系统不仅大大提高了测量效率,而且可以实现模型与数据的共享。
5 结语
针对轮胎2D花纹自动测量的关键技术提出相应算法,该算法不仅可以用于轮胎花纹的测量,而且对于其他线框模型也有很好的适用性,同时自动测量所生成的基本参数信息可自动导入到数据库中并相互关联。对于不同的轮胎可以通过检索轮胎花纹的基本信息重构出对应的轮胎2D花纹(包括但不限于单节距花纹),从而实现了数据与模型共享,并且开发出的系统能够无缝嵌入到CATIA软件中。