梁振剛,劉 耀,王 冬
(1.沈陽理工大學(xué) 裝備工程學(xué)院,沈陽 110168;2.齊齊哈爾北方機(jī)器有限責(zé)任公司,黑龍江 齊齊哈爾 161000)
長期以來,火炮身管建模是較復(fù)雜的工作。在分析火炮身管結(jié)構(gòu)的基礎(chǔ)上,開發(fā)火炮身管參數(shù)化建模程序,可以簡化火炮身管設(shè)計的步驟,提高火炮身管設(shè)計的效率。
根據(jù)身管結(jié)構(gòu)特征確定如何對個各部分尺寸進(jìn)行驅(qū)動的方案。一般線膛炮身管從膛內(nèi)可分為3 大主要部分:藥室部、坡膛和膛線部[1]。
藥室是火炮放置發(fā)射藥和保證發(fā)射藥燃燒的空間。其容積取決于內(nèi)彈道設(shè)計,而藥室的結(jié)構(gòu)形式和尺寸則取決于彈丸的裝填方式和彈丸外形尺寸。坡膛的幾何結(jié)構(gòu)為一截圓錐,在繪制草圖時,由一條斜線來控制其幾何尺寸。只要確定這條斜線2個端點(diǎn)的坐標(biāo)即可驅(qū)動坡膛部分的幾何尺寸。膛線是指在身管內(nèi)表面上制造出的與身管軸線具有一定傾斜角度的螺旋槽。膛線結(jié)構(gòu)參數(shù)指膛線的寬度、深度和條數(shù)。因?yàn)樯砉艿奶啪€部內(nèi)徑是保持不變的,且與口徑相等,在平面草圖上,其尺寸靠一條平行于中心線的直線控制,即3 個參量:內(nèi)徑半徑和前后2 個端面與身管后端面的距離。所以,想要驅(qū)動膛線部的尺寸只需改變這3 個參量的值即可。
將該加農(nóng)炮身管模型進(jìn)行劃分,可以得到14 個截面(如圖1),這14 個截面就是構(gòu)成身管主體模型的所有參數(shù),通過對身管主體剖面草圖上各截面上端點(diǎn)的坐標(biāo)進(jìn)行賦值的方法來對身管進(jìn)行參數(shù)化驅(qū)動。
圖1 身管截面劃分
通過對身管內(nèi)膛結(jié)構(gòu)設(shè)計和身管外部結(jié)構(gòu)設(shè)計的分析研究可知,加農(nóng)炮身管尺寸存在一定的約束關(guān)系,所以在身管建模時,尺寸參數(shù)的輸入要滿足以下幾點(diǎn):①無論在身管的哪個截面上,外徑都必須大于內(nèi)徑,且比值不能超過3;②身管坡膛錐度的范圍為0.1 ~0.2;③身管膛線纏角α =5.0° ~7.2°;④身管膛線深度與口徑的比值t/d=2;⑤身管膛線條數(shù)是4 的倍數(shù),陰線寬度均大于陽線寬度。
部分尺寸約束代碼:
If Cy2 <By2 Or Cy3 <By3 Or Cy4 <By4 Or Cy12 <By12 Or Cy13 <By13 Then
MsgBox "外徑R2 過小","提示"
膛線是身管設(shè)計的關(guān)鍵部分,決定著身管建模的復(fù)雜程度。在炮口端面處插入一基準(zhǔn)面,約束該基準(zhǔn)面與炮口端面重合,在該基準(zhǔn)面上進(jìn)行草圖繪制,生成一個新的草圖后,首先繪制一個矩形,然后分別將該矩形的下邊上兩頂點(diǎn)與炮口內(nèi)徑所在邊線添加重合的幾何關(guān)系,將左右兩邊分別添加沿y 軸的幾何關(guān)系,上下兩邊分別添加垂直于左右兩邊的幾何關(guān)系,得到膛線的輪廓。插入螺旋線,調(diào)整方向?yàn)樘啪€方向,在屬性管理器中設(shè)置螺距為膛線的長度,圈數(shù)為1。使用插入菜單下的特征→切除掃描,在左側(cè)的屬性管理器中選擇輪廓和路徑,在輪廓輸入框中選擇所繪制的矩形膛線草圖,在路徑輸入框中選擇所插入的螺旋線。完成第1 條膛線的生成后,通過插入菜單中的陣列/鏡像→圓周陣列進(jìn)行特征圓周陣列操作,繪畫出最終所要生成的膛線條數(shù)。由此,我們就可以通過尺寸驅(qū)動的方法對膛線條數(shù)進(jìn)行賦值,改變膛線的條數(shù)。在膛線繪制結(jié)束后可以修改螺旋線的長度和半徑、輪廓矩形的邊長,尺寸變更后所對應(yīng)的特征尺寸也會隨之更新,于是達(dá)成了尺寸驅(qū)動的目的。
使用VB 編寫程序建立與SoildWorks 的連接,根據(jù)輸入的尺寸參數(shù),實(shí)現(xiàn)參數(shù)化驅(qū)動,生成新的身管模型[2-3]。
實(shí)現(xiàn)參數(shù)化驅(qū)動的工作流程如圖2 所示。
圖2 工作流程
Visual Basic 不能直接調(diào)用SolidWorks 的應(yīng)用程序并與其建立連接,他需要先創(chuàng)建一個對象Object 用來“盛放”SldWorks.Application 即SldWorks 的應(yīng)用程序,通過這樣的方法獲得Solid-Works 的對象,建立了與SolidWorks 應(yīng)用程序的連接。
部分代碼:
Set swapp = CreateObject swapp.Visible
Set part = swapp.ActiveDoc
通過VB 界面輸入尺寸參數(shù),利用已編程序判斷尺寸是否滿足約束條件,如果尺寸參數(shù)滿足約束條件,通過語句Set Part =swApp.ActiveDoc 將當(dāng)前的工作環(huán)境作為對象傳遞給Part。在soildworks 應(yīng)用程序中自動重新生成三維身管模型。
部分代碼:
MsgBox "正在重建中",,"提示"
part.Parameter("Bx1@草圖2").Value = Val(Ax1.Text)
part.Parameter("Bx2@ 草圖2"). Value = Val(Ax2. Text)+ Val(Ax1.Text)
輸入數(shù)據(jù)如圖3 所示,重新生成的三維身管模型如圖4所示。
本文在火炮身管結(jié)構(gòu)分析的基礎(chǔ)上,以某加農(nóng)炮身管為例,確定了建模尺寸參數(shù)。使用VB 語言在SolidWorks 基礎(chǔ)上編寫了身管三維參數(shù)化驅(qū)動程序。實(shí)現(xiàn)了對身管模型的參數(shù)化驅(qū)動,提高了火炮設(shè)計工作的效率。
[1]潘玉田.炮身設(shè)計[M].兵器工業(yè)出版社,2007.
[2]王東.Visual Basic 為基的SolidWorks 標(biāo)準(zhǔn)零件庫設(shè)計[J].現(xiàn)代制造工藝,2008(8):52 -54.
[3]陳家兌.基于solidworks 的斜齒輪參數(shù)化三維建模[J].現(xiàn)代機(jī)械,2010(2):31 -32.