汪洪,單澍泓, 仲琪瑤
(1.洛陽LYC軸承有限公司,河南 洛陽 471039;2.解放軍駐258廠軍代室,河南 洛陽 471039;3.中鋁洛陽銅業(yè)有限公司, 河南 洛陽 471039)
隨著三維機械設計軟件技術的迅速發(fā)展,許多主機生產(chǎn)廠已經(jīng)普遍采用三維軟件進行產(chǎn)品設計和性能評估,同時對配套的軸承生產(chǎn)廠家也提出了更高的要求,不僅要求其提供二維設計圖,還要提供軸承的三維裝配模型圖。作為軸承生產(chǎn)廠家,也已經(jīng)不滿足于傳統(tǒng)的二維設計圖,更希望采用更具直觀性和可操作性的三維模型圖。主流二維設計軟件AutoCAD的三維建模功能較弱,生成的三維模型不易操作和修改,與主要的三維設計軟件缺乏數(shù)據(jù)的兼容性,因此,不宜采用AutoCAD來開發(fā)真正的三維設計系統(tǒng)。SolidWorks經(jīng)過多年的發(fā)展已成為目前使用最廣的三維設計軟件,其三維建模過程簡單、直觀,二次開發(fā)工具十分豐富,得到了廣泛應用。
作為高度標準化和系列化的滾動軸承,采用軟件進行參數(shù)化自動創(chuàng)建三維模型具有很大的優(yōu)越性,可以避免交互式手工建模的重復和繁瑣。下文簡要介紹基于SolidWorks的三維滾動軸承模型自動生成原理及關鍵軟件技術,并介紹了將各個零件插入裝配體的幾種轉換矩陣。
軸承的大部分零件都是旋轉體,生成旋轉體的關鍵是生成旋轉體的截面輪廓。由于不同類型軸承的截面輪廓差別較大,通過軟件編程的方式繪制截面的幾何圖形,不僅編程調試的工作量大,軟件的可靠性也不易保證。同一類型不同規(guī)格的軸承的幾何形狀完全相同,利用軸承這一特點,首先運用交互式方法創(chuàng)建零件的三維模型,然后運用尺寸替換法,通過修改零件尺寸獲得不同規(guī)格的軸承。
運用任何一種設計計算軟件生成一套軸承的零件尺寸名稱和實際對應值的表格,該表格的具體實現(xiàn)方式可以是編程語言的數(shù)組或數(shù)據(jù)庫的表格,見表1。
表1 變量計算值
為減少編程工作量,軸承零件首先用交互式方法創(chuàng)建。零件的每個尺寸都會被系統(tǒng)賦予一個唯一的名稱,軸承零件的尺寸可分為定值尺寸和可變尺寸。對于定值尺寸,可保留系統(tǒng)給定的名稱而不作修改;對于可變尺寸,其名稱應與表1中的名稱取得一致;同時,為區(qū)分定值尺寸和可變尺寸,可在可變尺寸名稱前加特殊符號(例如 “=”)。可變尺寸名稱的設置見圖1中主要值的設置。
圖1 變量名稱的設定
通過軟件遍歷零件的所有尺寸。對于可變尺寸,根據(jù)尺寸的名稱查詢表1,獲得可變尺寸的計算值,然后使用此計算值代替尺寸的原值,重新生成模型后就可獲得符合計算尺寸要求的三維模型。運用SolidWorks API[1]進行尺寸修改的具體實現(xiàn)方法為:
′=====================
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;// 判斷是否為有效特征,如果是則處理該特征;否則結束循環(huán)
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);// 根據(jù)變量名,查詢尺寸數(shù)據(jù)表,獲得尺寸的實際值,并用尺寸的實際值來修改三維模型的尺寸值
End If
swDispDim=swFeat.GetNextDisplayDimension(swDispDim);// 獲得下一個顯示尺寸
End While
swFeat=swFeat.GetNextFeature;// 獲得下一個特征
End while
swPart.ForceRebuild3(True);// 根據(jù)更改后的尺寸,重新構造三維模型
swPart.Save2(False);// 根據(jù)更改后的尺寸,重新構造三維模型
End Sub;// 保存三維零件模型文件
構成軸承的各個零件生成后,將這些零件引入裝配體文檔后就可構成軸承的裝配體。由于創(chuàng)建各個零件的坐標系與裝配體的坐標系不可能總是相互重合,因此在將零件插入裝配體時需根據(jù)軸承的裝配關系對軸承零件的位置和方向進行調整。根據(jù)計算機圖形學原理[2],對圖形的任何調整操作都可以轉換為若干個基礎轉換矩陣的乘積。在SolidWorks中,轉換矩陣T是一個4×4的矩陣
其中,左上角的9個元素(a~i)構成3×3的旋轉子矩陣,左下角的3個元素(j,k,l)構成位移向量,分別代表零件沿X,Y,Z方向的位移,右下角的元素m是比例因子,可以控制零件的縮放。(n,o,p)元素未使用,可設置為零。
現(xiàn)將零件插入裝配體時主要用到的幾種轉換矩陣介紹如下。
(1)相對裝配體坐標系的平移,轉換矩陣為
其中,x,y,z分別代表零件沿X,Y,Z軸方向的位移。
(2)繞裝配體坐標系X軸的旋轉,轉換矩陣為
其中,θ是繞X軸的旋轉角。例如:將一個滾動體插入裝配體時,需對每個滾動體根據(jù)其方位角的不同使用旋轉轉換矩陣。
(3)創(chuàng)建對稱于X=0平面的(鏡像)軸承零件,轉換矩陣為
當創(chuàng)建雙列或四列滾子軸承時,部分零件會呈現(xiàn)出鏡面對稱關系。例如:雙外圈雙列圓錐滾子軸承,其2個單滾道外圈就具有鏡面對稱關系。使用鏡面對稱轉換矩陣可以避免創(chuàng)建2個形狀相同而方向相反的零件。
當某個零件插入裝配體涉及到平移和旋轉等多個操作時,可根據(jù)操作的順序將相應的轉換矩陣相乘即可得到復合操作的轉換矩陣。
例如,實現(xiàn)將某個零件裝入裝配體并沿X方向移動10 mm的實現(xiàn)方法為:
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 四列圓錐滾子軸承剖視圖
運用SolidWoks可以自動創(chuàng)建三維滾動軸承零件和裝配體模型,為設計和性能評估提供了更具直觀性和可操作性的模型。在SolidWorks2009上運用Visual Basic.net軟件成功開發(fā)了涵蓋主要軸承類型的三維滾動軸承模型自動生成軟件,并在企業(yè)的產(chǎn)品設計中獲得了成功應用。希望進一步努力,共同推進三維軟件在軸承行業(yè)的發(fā)展和應用。