王善濤,劉日良
(山東大學(xué) 機(jī)械工程學(xué)院 高效潔凈機(jī)械制造教育部重點(diǎn)實(shí)驗(yàn)室,濟(jì)南 250061)
螺桿作為許多機(jī)械產(chǎn)品的重要部件,在機(jī)械領(lǐng)域有著很廣泛的應(yīng)用。由于不同螺桿的螺旋曲面廓型成型機(jī)理不同、型線樣式復(fù)雜多變,螺桿的加工難度越來越大[1]。計(jì)算機(jī)輔助設(shè)計(jì)與制造(CAD/CAM)技術(shù)是數(shù)字化、信息化制造技術(shù)的基礎(chǔ)[2],在螺桿的設(shè)計(jì)制造中具有廣泛的應(yīng)用。
關(guān)于螺桿CAD/CAM技術(shù),學(xué)者們做了大量研究。北京化工大學(xué)的康凱敏采用基于Visual Basic6.0環(huán)境的SolidWorks二次開發(fā)原理,以及Access數(shù)據(jù)庫傳遞螺桿參數(shù)的方法開發(fā)出了擠出螺桿的二維零件圖的參數(shù)化設(shè)計(jì)系統(tǒng)[3]。華南理工大學(xué)的胡志明以UG為開發(fā)平臺,Visual C++6.0為編程工具,通過Access數(shù)據(jù)庫建立關(guān)系型數(shù)據(jù)表實(shí)現(xiàn)了擠出機(jī)普通螺桿BM型螺桿、銷釘型螺桿及屏障型螺桿的參數(shù)化設(shè)計(jì),用戶輸入螺桿參數(shù)后就可在短時(shí)間內(nèi)完成螺桿的三維造型[4]。華南理工大學(xué)的王明君和文勁松在Pro/E軟件中進(jìn)行二次開發(fā),實(shí)現(xiàn)了單螺桿元件的三維造型參數(shù)化設(shè)計(jì)系統(tǒng)[5]。天津科技大學(xué)的梁欣和王平對異型螺桿CAD/CAM進(jìn)行了相關(guān)的研究,討論了幾種異型螺桿造型和加工的方法[6]。目前,尚未出現(xiàn)功能完整的從螺桿模型的快速創(chuàng)建到螺桿加工過程中的刀具軌跡求解的專用CAD/CAM系統(tǒng)。在前人研究基礎(chǔ)上,本文針對螺桿的造型設(shè)計(jì)和旋風(fēng)銑削加工方法,希望解決上述不足,研發(fā)出專用CAD/CAM系統(tǒng)。
為了實(shí)現(xiàn)螺桿CAD/CAM系統(tǒng),本文選擇以UG NX 8.0軟件為平臺,綜合運(yùn)用NX Open、Block UI Styler和Menu Script二次開發(fā)工具,以C#為編程語言,結(jié)合visual studio 2010作為編程工具。
NX Open是NX面向?qū)ο蟮木幊探涌?,支持多種開發(fā)語言(VB、C++,Java和C#等),可擴(kuò)展性好,功能強(qiáng)大。UG NX 8.0軟件擁有的JA文件錄制功能[7]可以記錄和回放交互環(huán)境下用戶的操作,利用該功能可以方便快捷地進(jìn)行二次開發(fā)。NX提供了定制菜單的專用模塊Menu Script。使用Menu Script工具,用戶可以生成自己的菜單,替換UG原有的菜單,也可實(shí)現(xiàn)對UG某個(gè)菜單的編輯并生成自己的菜單。NX擁有的專用對話框設(shè)計(jì)工具Block UI Styler幾乎可以滿足所有NX二次開發(fā)需要的界面,并且對話框設(shè)計(jì)完成后可以自動生成代碼模板,方便用戶編寫程序。
系統(tǒng)采用了可以縮短設(shè)計(jì)時(shí)間、提高設(shè)計(jì)效率的模塊化設(shè)計(jì)方式。如圖1所示,根據(jù)螺桿的造型和加工特點(diǎn),螺桿CAD/CAM系統(tǒng)分為三大模塊:螺桿參數(shù)化設(shè)計(jì)模塊、讀取螺桿模型模塊和刀具軌跡求解模塊。
螺桿參數(shù)化設(shè)計(jì)模塊可以快速實(shí)現(xiàn)螺桿的三維建模。用戶輸入螺桿參數(shù)和螺桿軸截面線參數(shù)后可以快速生成需要的螺桿三維模型。讀取螺桿模型模塊用于獲得螺桿參數(shù)信息。用戶使用該模塊讀取螺桿模型可以快速了解螺桿模型的參數(shù)信息,方便對其進(jìn)行刀具軌跡求解。刀具軌跡求解模塊用于求解內(nèi)旋風(fēng)包絡(luò)銑削加工螺桿時(shí)的刀具軌跡。用戶在該模塊中輸入螺桿參數(shù)、螺桿軸截面線參數(shù)和螺桿加工刀具參數(shù)后可以顯示刀具軌跡。
圖1 系統(tǒng)結(jié)構(gòu)功能圖
作為UG環(huán)境下的應(yīng)用程序,螺桿CAD/CAM系統(tǒng)的開發(fā)遵循二次開發(fā)的常用步驟,包括環(huán)境配置、Menu Script菜單制作、Block UI Styler對話框設(shè)計(jì)、創(chuàng)建程序框架和程序的編寫與調(diào)試等,其完整開發(fā)流程如圖2所示。
首先建立一個(gè)名為“UGII_USER_DIR”的用戶變量使其指向一個(gè)絕對路徑。在該路徑下新建兩個(gè)文件夾application和startup。在startup文件夾下建立一個(gè)文本文檔,使用Menu Script腳本語言寫入菜單內(nèi)容并以.men格式保存,UG啟動后會自動加載。
利用Block UI Styler對話框設(shè)計(jì)工具,用戶可以根據(jù)自身需求選擇相應(yīng)的塊目錄添加到要設(shè)計(jì)的對話框中[8]。對話框設(shè)計(jì)完成后選擇代碼生成語言為C#,命名保存后會自動生成.dlx文件和.c#文件兩個(gè)文件,將.dlx文件放在application文件夾下。
將“%UG安裝路徑%UGOPEN/vs_filesVC#/”下的文件和文件夾復(fù)制到“%VS2010安裝目錄%/VC#/”文件夾中,使用UG NX 8.0自帶的基于C#語言的開發(fā)向?qū)X8 Open C# Wizard編寫程序。啟動visual studio 2010,選用該開發(fā)向?qū)陆ㄒ粋€(gè)項(xiàng)目(項(xiàng)目名稱需與對話框名稱相同)。打開新建項(xiàng)目,將原有的.c#文件替換為Block UI Styler生成的.c#文件,之后添加相關(guān)引用,編寫程序,調(diào)試出.dll文件,將其復(fù)制到application文件夾下。
圖2 開發(fā)流程圖
在UG CAD中,二次開發(fā)的參數(shù)化設(shè)計(jì)[9]方法有兩種,即基于圖形模板的參數(shù)化設(shè)計(jì)和基于參數(shù)化程序的設(shè)計(jì)?;趫D形模板的參數(shù)化設(shè)計(jì)方法的思想是通過修改圖形模板的特征,從而驅(qū)動圖形模板發(fā)生相應(yīng)的變化,達(dá)到參數(shù)化設(shè)計(jì)的目的?;趨?shù)化程序的設(shè)計(jì)方法的思想遵循點(diǎn)、線、面、體的方式進(jìn)行,通過尋找模型上的關(guān)鍵點(diǎn)或根據(jù)數(shù)學(xué)方程求得關(guān)鍵點(diǎn),再把關(guān)鍵點(diǎn)連成線,由線構(gòu)面再構(gòu)體?;趫D形模板的參數(shù)化設(shè)計(jì)方法具有參數(shù)修改靈活,程序代碼量小,編譯鏈接快等優(yōu)點(diǎn),但功能有限?;趨?shù)化程序的設(shè)計(jì)方法雖然程序代碼量大,不易編譯,但是其功能更為強(qiáng)大。每一種方法都可以通過NXOPEN API編程實(shí)現(xiàn)。
結(jié)合螺桿造型和實(shí)際情況,復(fù)雜造型的螺桿設(shè)計(jì)更傾向于采用基于圖形模板的參數(shù)化設(shè)計(jì)方法,簡單造型的螺桿設(shè)計(jì)則可以多采用第二種方法。下面分別對這兩種方法進(jìn)行介紹。
4.1.1 基于螺桿模板的參數(shù)化設(shè)計(jì)
基于螺桿模板的參數(shù)化設(shè)計(jì)是采用三維模型與程序控制相互結(jié)合的方式,通過修改部件的表達(dá)式,進(jìn)而修改模型。根據(jù)部件的設(shè)計(jì)要求,事先建立模型,并確立一組可以完全控制三維模型形狀和大小的設(shè)計(jì)參數(shù)。參數(shù)化程序針對這些參數(shù)進(jìn)行編程,實(shí)現(xiàn)設(shè)計(jì)參數(shù)的查詢和修改,根據(jù)新的參數(shù)值更新模型。具體步驟如下:
(1)創(chuàng)建螺桿模板。用UG創(chuàng)建一個(gè)由參數(shù)驅(qū)動的螺桿三維模型,使其包含基本的設(shè)計(jì)意圖和設(shè)計(jì)對象的拓?fù)涮卣?,并用表達(dá)式將參數(shù)關(guān)聯(lián)起來。本文建立的螺桿模板及其建模方法如圖3所示。螺桿模板的螺旋槽由螺旋槽樣條曲線和螺旋槽平底組成,如圖4所示。螺桿模板確定螺旋槽樣條曲線的型值點(diǎn)個(gè)數(shù)為18個(gè),螺旋槽平底是一條直線段,螺旋槽平底兩端的連續(xù)性為G0連續(xù)。
(2)根據(jù)給定參數(shù),在螺桿模板基礎(chǔ)上生成新的螺桿三維模型。通過相關(guān)的程序,編輯螺桿模板文件中的表達(dá)式參數(shù)值,然后驅(qū)動系統(tǒng)生成新的螺桿三維模型。用戶給定參數(shù)的對話框如圖5所示。其中,螺旋槽半個(gè)周期內(nèi)的型值點(diǎn)個(gè)數(shù)即為確定螺旋槽樣條曲線的型值點(diǎn)個(gè)數(shù)。
圖3 螺桿模板及其建模方法
圖4 螺桿模板軸截面
圖5 基于螺桿模板的參數(shù)化設(shè)計(jì)對話框
由于螺桿模板限制,型值點(diǎn)個(gè)數(shù)最多為18個(gè)。型值點(diǎn)個(gè)數(shù)大于2個(gè),螺旋槽平底寬為0時(shí),螺桿模板更新為另一種類型的雙螺桿;型值點(diǎn)個(gè)數(shù)為2個(gè),螺旋槽平底寬不為0時(shí),螺桿模板變?yōu)樘菪坞p螺桿;型值點(diǎn)個(gè)數(shù)為2個(gè),螺旋槽平底寬為0時(shí),螺桿模板變?yōu)槿切坞p螺桿。因此,用戶使用此螺桿模板生成的螺桿類型最多只有上述4種。
4.1.2 基于參數(shù)化程序的螺桿設(shè)計(jì)
采用基于參數(shù)化程序的設(shè)計(jì)方法快速構(gòu)建螺桿三維模型的程序思路為:
(1)根據(jù)螺桿尺寸參數(shù)插入圓和螺旋線的表達(dá)式,使用規(guī)律曲線(LawCurveBuilder)生成圓和螺旋線;
(2)根據(jù)螺桿軸向截面線型值點(diǎn)坐標(biāo)生成樣條線(StudioSplineBuilderEx),結(jié)合螺旋槽平底寬建立基準(zhǔn)平面(DatumPlaneBuilder),樣條線基于基準(zhǔn)平面鏡像復(fù)制(MirrorCurveBuilder)一個(gè),之后分別連接(AssociativeLineBuilder)和橋接(BridgeCurveBuilder)這兩段樣條線,生成一條閉合曲線;
(3)根據(jù)螺桿長度對生成的圓進(jìn)行拉伸(ExtrudeBuilder),讓閉合曲線沿著螺旋線掃掠(SweptBuilder),生成掃掠體,之后將掃掠體沿Z軸旋轉(zhuǎn)(MoveObjectBuilder)180度并復(fù)制一個(gè);
(4)圓柱體對兩個(gè)掃掠體求差(BooleanBuilder),生成螺桿三維模型。
利用Block UI Styler對話框設(shè)計(jì)工具制作的示例向?qū)υ捒蚪缑嫒鐖D6所示。用戶依次選擇螺桿樣式、輸入螺桿參數(shù)和螺桿軸向截面線信息后即可生成螺桿三維模型。“選擇樣式”一欄包括螺桿的旋向、單雙和錐形或柱形三種?!奥輻U參數(shù)”一欄包括螺桿的大徑、長度和導(dǎo)程等。系統(tǒng)設(shè)定型值點(diǎn)個(gè)數(shù)最少為2個(gè),最多20個(gè)。螺旋槽平底處的連續(xù)性通過第一個(gè)型值點(diǎn)的切線方向(TangentDirection)確定,G0連續(xù)不做處理,G1連續(xù)即將其切線方向設(shè)為(0,0,1)。
圖6 基于參數(shù)化程序的螺桿設(shè)計(jì)對話框
用戶使用螺桿CAD/CAM系統(tǒng)的讀取螺桿模型模塊打開需要讀取參數(shù)的螺桿模型,即可顯示螺桿的參數(shù)信息。
讀取螺桿模型的基本原理是通過程序獲得UG工作區(qū)中螺桿的所有特征(Feature),然后逐步獲得這些特征的名稱(GetFeatureName)和表達(dá)式(GetExpressions),最后輸出每個(gè)特征的名稱和控制該特征的表達(dá)式(Expression)的描述(Description)以及表達(dá)式(Expression)的名稱和值(Equation)。讀取螺桿模型模塊的實(shí)例如圖7所示,左側(cè)為螺桿三維模型,右側(cè)信息框顯示螺桿的基本參數(shù),包括螺桿長度,底部直徑和圓錐角等。
圖7 讀取螺桿模型實(shí)例
螺桿的加工方式有很多種,由此產(chǎn)生的刀具軌跡各有不同。螺桿CAD/CAM系統(tǒng)刀具軌跡求解模塊求取的刀具軌跡是指內(nèi)旋風(fēng)包絡(luò)銑削加工螺桿過程中的刀具軌跡。利用Block UI Styler對話框設(shè)計(jì)工具制作的示例向?qū)υ捒蚪缑嫒鐖D8所示。用戶根據(jù)步驟輸入螺桿參數(shù)、軸向截面線參數(shù)和刀具信息后點(diǎn)擊“完成”按鈕,即可顯示刀具軌跡信息。
圖8 刀具軌跡求解向?qū)υ捒?/p>
系統(tǒng)求取刀具軌跡的具體方法是刀具軌跡求解軸截面法,具體原理參見文獻(xiàn)[10]。設(shè)內(nèi)旋風(fēng)銑削刀具刀尖中心點(diǎn)On的坐標(biāo)為xn,yn,刀尖圓弧半徑為r0,內(nèi)銑刀盤安裝角為δ,則投影刀尖橢圓模型曲線可表示為:
(1)
刀具軌跡求解模塊對用戶輸入的螺桿軸截面型值點(diǎn)坐標(biāo)自動進(jìn)行三次均勻B樣條曲線擬合。具體原理是根據(jù)這些型值點(diǎn)反求出三次均勻B樣條的控制點(diǎn)[11],再基于這些控制點(diǎn)求出三次均勻B樣條曲線的方程,即螺桿軸截面廓型曲線的方程,可寫成如下形式:
(2)
設(shè)曲線w(x)與螺桿軸截面廓型曲線(擬合的三次均勻B樣條曲線)的切點(diǎn)為pn,則兩條曲線在pn處有相同的公切線,所以存在以下關(guān)系:
(3)
刀具軌跡求解模塊在每段B樣條曲線上等距選取不同的t值(即等參數(shù)選取點(diǎn)),t值由用戶確定,即“每段B樣條取點(diǎn)數(shù)”輸入框。t值確定后就確定了每段B樣條曲線上的點(diǎn),將這一系列的點(diǎn)設(shè)為螺桿軸截面廓型曲線與投影刀尖橢圓模型曲線的切點(diǎn)pn(x,y)。例如,“每段B樣條取點(diǎn)數(shù)”為3時(shí),示意圖如圖9所示。將pn的坐標(biāo)值帶入由式(1)和式(3)組成的方程組求解即可得到投影刀尖橢圓模型的圓心即刀尖中心點(diǎn)On的坐標(biāo)xn,yn。
采用軸截面法求解刀具軌跡的過程,工件在每次轉(zhuǎn)動的過程中為勻速等步距角轉(zhuǎn)動,同時(shí)刀盤沿著工件軸截面的軸向進(jìn)給運(yùn)動也為等步距的進(jìn)給運(yùn)動,在加工完一個(gè)軸截面槽后,工件要轉(zhuǎn)過一個(gè)步距角,根據(jù)螺旋曲面的形成原理可知,刀盤必須要軸向進(jìn)給一個(gè)對應(yīng)的軸向進(jìn)給距離來保證螺旋曲面的生成。因此,內(nèi)旋風(fēng)銑削螺桿的數(shù)控編程中的NC加工代碼C、X、Z插補(bǔ)信息可表示為:
(4)
其中,△φ為步距角,d為螺桿的底徑值,P為螺桿的導(dǎo)程,△z為刀盤沿著工件的軸向進(jìn)給步距。
圖9 示意圖
一右旋雙頭擠出螺桿,導(dǎo)程為48mm,外徑35.6mm,底徑23.6mm,螺棱寬2.88mm,螺旋槽平底寬3.12mm,螺桿長度為48mm,螺桿軸截面(螺旋槽部分)半個(gè)周期的有效型值點(diǎn)如表1所示。
表1 螺桿軸截面有效型值點(diǎn)數(shù)據(jù)
每段B樣條取點(diǎn)數(shù)為3個(gè),螺旋槽平底兩端G1連續(xù)。內(nèi)旋風(fēng)銑削加工螺桿的工藝參數(shù)設(shè)置為刀盤安裝角為23.2°,菱形刀片的刀尖圓弧半徑為1.6mm,內(nèi)銑刀盤的回轉(zhuǎn)半徑為60mm。
打開UG NX 8.0,在菜單欄會有定制的螺桿CAD/CAM系統(tǒng)菜單,如圖10所示。
圖10 螺桿CAD/CAM系統(tǒng)菜單
根據(jù)以上信息,使用螺桿CAD/CAM系統(tǒng)的螺桿參數(shù)化設(shè)計(jì)模塊中的基于參數(shù)化程序的螺桿設(shè)計(jì)方法建立的螺桿三維模型如圖11所示。使用刀具軌跡求解模塊則求解出了相應(yīng)的螺桿加工過程中的刀位數(shù)據(jù)。
圖11 螺桿三維模型
本文詳細(xì)介紹了螺桿CAD/CAM系統(tǒng)的開發(fā)平臺、編程接口和開發(fā)步驟;深入地?cái)⑹隽薈AD/CAM系統(tǒng)的模塊化結(jié)構(gòu)和功能;最后通過一個(gè)典型螺桿零件的實(shí)例,介紹了CAD/CAM系統(tǒng)的應(yīng)用情況。該螺桿CAD/CAM系統(tǒng)初步實(shí)現(xiàn)了從螺桿的設(shè)計(jì)到加工的集成,顯著提高了螺桿的設(shè)計(jì)和制造效率,未來的研究重點(diǎn)是對螺桿的加工過程進(jìn)行仿真模擬。
[1] Wang K, Wang S Q, Sun X W, et al. Machining Theory of Forming Complex Inner Helicoid and Numerical Algorithm to Design Contour of the Disc-Mill Cuter[J]. Applied Mechanics & Materials, 2011, 141:339-343.
[2] 陳鋼, 王新云, 金俊松,等. 基于UG的轎車差速器直錐齒輪專用CAD/CAM系統(tǒng)[J]. 機(jī)械傳動, 2009, 33(3):32-34.
[3] 康凱敏. 新型擠出螺桿參數(shù)化設(shè)計(jì)系統(tǒng)的研究[D].北京:北京化工大學(xué), 2007.
[4] 胡志明. 基于UG的擠出機(jī)螺桿參數(shù)化設(shè)計(jì)系統(tǒng)的研究[D].廣州:華南理工大學(xué), 2014.
[5] 王明君, 文勁松. 基于Pro/Engineer的擠出機(jī)螺桿三維參數(shù)化模塊開發(fā)[J]. 塑料科技, 2009, 37(5):71-73.
[6] 梁欣, 王平. 異型螺桿CAD/CAM的研究[J]. 天津科技大學(xué)學(xué)報(bào), 2004, 19(1):55-57.
[7] 周臨震, 李青祝, 秦珂. 基于UG NX系統(tǒng)的二次開發(fā)[M]. 鎮(zhèn)江:江蘇大學(xué)出版社, 2012.
[8] 汪銳. NX Open API編程技術(shù)[M]. 北京:電子工業(yè)出版社, 2012.
[9] 李開林, 胡志明. 擠出螺桿參數(shù)化設(shè)計(jì)在UG中的實(shí)現(xiàn)[J]. 塑料, 2013, 42(6):103-105.
[10] 韓泉泉. 復(fù)雜廓型螺桿類零件的內(nèi)旋風(fēng)包絡(luò)銑削技術(shù)研究[D].濟(jì)南:山東大學(xué),2014.
[11] 中國煤炭地質(zhì)總局航測遙感局. 煤航技術(shù)研究(10)[M]. 西安:西安地圖出版社, 2009.