基于SolidWorks的滚动轴承三维模型自动生成系统
2013-07-21汪洪单澍泓仲琪瑶
汪洪,单澍泓, 仲琪瑶
(1.洛阳LYC轴承有限公司,河南 洛阳 471039;2.解放军驻258厂军代室,河南 洛阳 471039;3.中铝洛阳铜业有限公司, 河南 洛阳 471039)
随着三维机械设计软件技术的迅速发展,许多主机生产厂已经普遍采用三维软件进行产品设计和性能评估,同时对配套的轴承生产厂家也提出了更高的要求,不仅要求其提供二维设计图,还要提供轴承的三维装配模型图。作为轴承生产厂家,也已经不满足于传统的二维设计图,更希望采用更具直观性和可操作性的三维模型图。主流二维设计软件AutoCAD的三维建模功能较弱,生成的三维模型不易操作和修改,与主要的三维设计软件缺乏数据的兼容性,因此,不宜采用AutoCAD来开发真正的三维设计系统。SolidWorks经过多年的发展已成为目前使用最广的三维设计软件,其三维建模过程简单、直观,二次开发工具十分丰富,得到了广泛应用。
作为高度标准化和系列化的滚动轴承,采用软件进行参数化自动创建三维模型具有很大的优越性,可以避免交互式手工建模的重复和繁琐。下文简要介绍基于SolidWorks的三维滚动轴承模型自动生成原理及关键软件技术,并介绍了将各个零件插入装配体的几种转换矩阵。
1 三维滚动轴承零件的自动生成原理
轴承的大部分零件都是旋转体,生成旋转体的关键是生成旋转体的截面轮廓。由于不同类型轴承的截面轮廓差别较大,通过软件编程的方式绘制截面的几何图形,不仅编程调试的工作量大,软件的可靠性也不易保证。同一类型不同规格的轴承的几何形状完全相同,利用轴承这一特点,首先运用交互式方法创建零件的三维模型,然后运用尺寸替换法,通过修改零件尺寸获得不同规格的轴承。
1.1 生成轴承尺寸参数表
运用任何一种设计计算软件生成一套轴承的零件尺寸名称和实际对应值的表格,该表格的具体实现方式可以是编程语言的数组或数据库的表格,见表1。
表1 变量计算值
1.2 交互式创建轴承零件的三维模型
为减少编程工作量,轴承零件首先用交互式方法创建。零件的每个尺寸都会被系统赋予一个唯一的名称,轴承零件的尺寸可分为定值尺寸和可变尺寸。对于定值尺寸,可保留系统给定的名称而不作修改;对于可变尺寸,其名称应与表1中的名称取得一致;同时,为区分定值尺寸和可变尺寸,可在可变尺寸名称前加特殊符号(例如 “=”)。可变尺寸名称的设置见图1中主要值的设置。
图1 变量名称的设定
1.3 参数替代生成实际轴承三维模型
通过软件遍历零件的所有尺寸。对于可变尺寸,根据尺寸的名称查询表1,获得可变尺寸的计算值,然后使用此计算值代替尺寸的原值,重新生成模型后就可获得符合计算尺寸要求的三维模型。运用SolidWorks API[1]进行尺寸修改的具体实现方法为:
′=====================
Sub Modify_Model(PartName As String)
′=====================
Dim swFeat As Feature;
Dim swDispDim As DisplayDimension;
Dim swDim As Dimension;
Dim Size As String;
swPart=swApp.OpenDoc6(PartName,1,0,"",Err,Warn);// 打开三维零件模型文档,PartName是文件名
swApp.ActivateDoc2(PartName,True,Err) ;// 激活该文档
swFeat=swPart.FirstFeature;// 获得零件的第一个特征
While Not swFeat Is Nothing;// 判断是否为有效特征,如果是则处理该特征;否则结束循环
swDispDim=swFeat. GetFirstDisplayDim ension;// 获得特征的第一个显示尺寸
While (Not swDispDim Is Nothing);// 判断该显示尺寸是否有效。如果有效,则处理该显示尺寸
swDim=swDispDim.GetDimension;// 由显示尺寸获得相对应的驱动尺寸
If Left(swDim.FullName,1) = "=" Then;// 判断变量名的第一个字母是否是“=”号,如果变量名称前有等号,表示该变量的值需要用程序进行替代;否则是定值尺寸而无需修改
Size=Mid(swDim.FullName,2,InStr(2,swDim.FullName,"@",1)-2);// 获得变量名,存入字符串变量尺寸中
swDim.SetUserValueIn2(swPart,Gv(Size),0);// 根据变量名,查询尺寸数据表,获得尺寸的实际值,并用尺寸的实际值来修改三维模型的尺寸值
End If
swDispDim=swFeat.GetNextDisplayDimension(swDispDim);// 获得下一个显示尺寸
End While
swFeat=swFeat.GetNextFeature;// 获得下一个特征
End while
swPart.ForceRebuild3(True);// 根据更改后的尺寸,重新构造三维模型
swPart.Save2(False);// 根据更改后的尺寸,重新构造三维模型
End Sub;// 保存三维零件模型文件
2 三维轴承装配体的自动生成原理
构成轴承的各个零件生成后,将这些零件引入装配体文档后就可构成轴承的装配体。由于创建各个零件的坐标系与装配体的坐标系不可能总是相互重合,因此在将零件插入装配体时需根据轴承的装配关系对轴承零件的位置和方向进行调整。根据计算机图形学原理[2],对图形的任何调整操作都可以转换为若干个基础转换矩阵的乘积。在SolidWorks中,转换矩阵T是一个4×4的矩阵
其中,左上角的9个元素(a~i)构成3×3的旋转子矩阵,左下角的3个元素(j,k,l)构成位移向量,分别代表零件沿X,Y,Z方向的位移,右下角的元素m是比例因子,可以控制零件的缩放。(n,o,p)元素未使用,可设置为零。
现将零件插入装配体时主要用到的几种转换矩阵介绍如下。
(1)相对装配体坐标系的平移,转换矩阵为
其中,x,y,z分别代表零件沿X,Y,Z轴方向的位移。
(2)绕装配体坐标系X轴的旋转,转换矩阵为
其中,θ是绕X轴的旋转角。例如:将一个滚动体插入装配体时,需对每个滚动体根据其方位角的不同使用旋转转换矩阵。
(3)创建对称于X=0平面的(镜像)轴承零件,转换矩阵为
当创建双列或四列滚子轴承时,部分零件会呈现出镜面对称关系。例如:双外圈双列圆锥滚子轴承,其2个单滚道外圈就具有镜面对称关系。使用镜面对称转换矩阵可以避免创建2个形状相同而方向相反的零件。
当某个零件插入装配体涉及到平移和旋转等多个操作时,可根据操作的顺序将相应的转换矩阵相乘即可得到复合操作的转换矩阵。
例如,实现将某个零件装入装配体并沿X方向移动10 mm的实现方法为:
Dim swComp As Component2
Dim XForm As MathTransform;// 声明一个转换矩阵对象
swComp=swAssembly.AddComponent4(PartName,"",0,0,0);// 将名称是PartName的零件插入装配体文档swAssembly
XForm.ArrayData=SetXFormMatrix(1,0,0,0,1,0,0,0,1,10,0,0);// 设定转换矩阵为沿X方向移动10 mm的平移矩阵
swComp.Transform2=XForm;// 指定插入零件的转换矩阵是XForm
程序自动生成的四列圆锥滚子轴承的剖视图如图2所示。
图2 四列圆锥滚子轴承剖视图
3 结束语
运用SolidWoks可以自动创建三维滚动轴承零件和装配体模型,为设计和性能评估提供了更具直观性和可操作性的模型。在SolidWorks2009上运用Visual Basic.net软件成功开发了涵盖主要轴承类型的三维滚动轴承模型自动生成软件,并在企业的产品设计中获得了成功应用。希望进一步努力,共同推进三维软件在轴承行业的发展和应用。