荊浩旗, 白海清, 楊 柳, 代雪峰
(陜西理工學院機械工程學院,陜西 漢中 723003)
在現(xiàn)代機械加工中,孔加工是最重要的加工工種之一。麻花鉆誕生至今已有百余年的歷史,但它仍然是應用最廣泛的孔加工刀具,尤其在以汽車與航空等孔加工占重要比重的制造業(yè)中,麻花鉆占相當重要的地位。由于麻花鉆結(jié)構(gòu)比較復雜,加上不同的加工工藝對麻花鉆的要求不同,其設(shè)計也是一個復雜繁瑣的過程。所以,實現(xiàn)麻花鉆的參數(shù)化設(shè)計,開發(fā)獨立的麻花鉆設(shè)計系統(tǒng)非常必要。
Unigraphics(簡稱UG)是當前最先進和緊密集成、面向制造業(yè)CAID/CAD/CAE/CAM的高端軟件[1]平臺之一,UG系統(tǒng)提供了強大的二次開發(fā)工具集UG/Open與特征擴展功能。參數(shù)化設(shè)計是在模型構(gòu)建過程中用參數(shù)變量來控制模型的幾何尺寸和約束關(guān)系,以達到驅(qū)動幾何圖形的目的。本文采用編程方法[1]實現(xiàn)參數(shù)化設(shè)計,即在現(xiàn)有UG系統(tǒng)基礎(chǔ)上,通過二次開發(fā)接口、高級開發(fā)語言和數(shù)據(jù)庫等相關(guān)技術(shù),來實現(xiàn)產(chǎn)品的參數(shù)化設(shè)計,是一種高級的參數(shù)化設(shè)計方法。
本文采用UG/Open API和GRIP進行參數(shù)化設(shè)計,充分利用了各開發(fā)語言的特點,用UG/Open UIStyler和MenuScript制作與UG系統(tǒng)無縫集成的用戶界面,采用UG/Open API控制用戶界面,采用GRIP簡單、方便的編程,并接收通過用戶界面?zhèn)鱽淼臄?shù)據(jù)實現(xiàn)參數(shù)化建模。系統(tǒng)還采用API與MFC實現(xiàn)數(shù)據(jù)庫技術(shù)的開發(fā),建立麻花鉆參數(shù)化數(shù)據(jù)庫,完成麻花鉆設(shè)計系統(tǒng)的開發(fā),成功應用于相關(guān)產(chǎn)品的設(shè)計開發(fā)。
GRIP是UG/Open中的一個重要模塊,它是UG的內(nèi)嵌語言,是一種圖形交互式、解釋性的編程語言[2],能夠?qū)崿F(xiàn)UG的絕大多數(shù)交互操作,如幾何體模型建立、裝配創(chuàng)建和工程圖繪制等功能。本文采用GRIP語言編程來實現(xiàn)麻花鉆模型的建立。
麻花鉆制造過程主要包括磨削螺旋槽和刃磨后刀面。根據(jù)制造過程中主要參數(shù),結(jié)合UG軟件,對相關(guān)參數(shù)進行轉(zhuǎn)化。根據(jù)近些年人們對麻花鉆建模過程的研究[3-5],采用GRIP語言進行編程,主要分為以下幾個步驟。
2.1.1 螺旋槽的繪制
麻花鉆螺旋槽的設(shè)計關(guān)系到加工過程中的排屑、散熱、冷卻等直接影響加工質(zhì)量的問題。螺旋槽的繪制首先是繪制麻花鉆螺旋槽橫向截形,包括鉆刃曲線[6]、刃帶部分曲線等繪制;再繪制螺旋線、刀具軸線等;最后以螺旋槽橫向截形為掃掠曲線,分別以刀具軸線與螺旋線為導引線,自動掃掠生成刀具螺旋槽。建模參數(shù)包括鉆頭半徑、半錐角、螺旋角、鉆芯半徑。
用GRIP語言編寫程序,調(diào)用相關(guān)GRIP內(nèi)部函數(shù)完成以上操作過程,實現(xiàn)螺旋槽實體的繪制,如圖1所示,部分代碼如下:
2.1.2 后刀面的繪制
在鉆削加工過程中,后刀面磨損較為嚴重,也是麻花鉆設(shè)計的重點。本文麻花鉆后刀面的刃磨采用常用的錐面刃磨法??紤]到后刀面的翹尾現(xiàn)象[6],讓鉆頭附加一個繞圓錐母線逆時針的旋轉(zhuǎn)角度[7]。在建模過程中,對刃磨參數(shù)進行轉(zhuǎn)化,最終后刀面的刃磨參數(shù)主要包括錐頂距,錐頂半角和附加旋轉(zhuǎn)角度。
用GRIP語言編寫程序,實現(xiàn)圓錐面軸線與母線的繪制,再調(diào)用相關(guān)函數(shù)實現(xiàn)母線繞軸線旋轉(zhuǎn)生成圓錐面的操作,旋轉(zhuǎn)復制得到對側(cè)圓錐面,再調(diào)用實心體分割函數(shù),以圓錐面為邊界分別切割螺旋槽實體,得到圓錐后刀面,如圖2所示。
圖1 螺旋槽實體的繪制
圖2 圓錐后刀面的繪制
根據(jù)文獻[8]的相關(guān)優(yōu)化參數(shù),在GRIP程序中設(shè)置初值,并調(diào)用函數(shù)實現(xiàn)接收從用戶界面?zhèn)鬟f過來的參數(shù),主要代碼如下:
采用二次開發(fā)工具UG/Open UIStyler和MenuScript設(shè)計與UG系統(tǒng)風格一致的菜單欄與對話框,可以方便的調(diào)用相關(guān)模塊,與UG系統(tǒng)無縫集成。
2.2.1 開發(fā)路徑的設(shè)置
首先自定義目錄,如D:UGOPEN,在目錄下創(chuàng)建startup、application、grip、database四個文件夾,用于存放相關(guān)的系統(tǒng)開發(fā)文件,供系統(tǒng)查找調(diào)用。在計算機屬性中設(shè)置【環(huán)境變量】,新建“UGII_USER_DIR=D:UGOPEN”,完成開發(fā)環(huán)境的設(shè)置。
2.2.2 菜單欄與工具欄的設(shè)計
編寫菜單文件,在UG界面菜單添加新的菜單欄“麻花鉆參數(shù)化設(shè)計”,菜單下含兩個下拉子菜單“錐柄麻花鉆”和“直柄麻花鉆”。在菜單的基礎(chǔ)上,制作工具欄,可以點擊工具欄來快速、直接響應,實現(xiàn)和菜單欄一樣的效果,如圖3所示。
圖3 系統(tǒng)菜單欄與工具欄
2.2.3 系統(tǒng)對話框的設(shè)計
UIStyler是用戶開發(fā)對話框的可視化工具,創(chuàng)建與UG風格一樣的對話框。進入UIStyler模塊,選擇對話框所需的控件,設(shè)置對話框的屬性及回調(diào)函數(shù),根據(jù)麻花鉆的主要設(shè)計參數(shù)以及麻花鉆參數(shù)庫的設(shè)計要求,創(chuàng)建如圖4所示的系統(tǒng)對話框。
以直柄麻花鉆設(shè)計為例,保存創(chuàng)建的直柄麻花鉆對話框,如圖4(a)所示,命名為“drill_spur”,系統(tǒng)將生成編程代碼頭文件、模板文件和對話框文件,將對話框文件復制到application目錄下,由用戶應用程序調(diào)用。
在VC++環(huán)境下,用API語言編程調(diào)用GRIP程序,把通過人機交互界面輸入的參數(shù)傳遞到GRIP程序中,實現(xiàn)麻花鉆的參數(shù)化設(shè)計。復制工程向?qū)募絍C++目錄下,建立UG與VC++的連接,啟動VC++,在項目類別中選擇“Unigraphics NX App Wizard V1”作為應用程序向?qū)?,?chuàng)建工程“drill_spur”。將 UIStyler模塊生成的編程源代碼文件“drill_spur.h”和“drill_spur.cpp”加載到工程中。程序的編寫主要是修改兩個編程源代碼文件,該程序主要包括:入口函數(shù)程序,調(diào)取GRIP程序,傳遞對話框中數(shù)值程序等。
部分源代碼如下:
圖4 系統(tǒng)對話框
數(shù)據(jù)庫是應用程序存儲數(shù)據(jù)的倉庫[1],本系統(tǒng)采用C/S結(jié)構(gòu)的開發(fā)模式,即客戶層和數(shù)據(jù)層的結(jié)構(gòu)模式??蛻魧又饕瓿陕榛ㄣ@信息的查詢、添加入庫、刪除以及麻花鉆參數(shù)化建模;數(shù)據(jù)層主要用來存儲麻花鉆的數(shù)據(jù)信息,為客戶層提供數(shù)據(jù)支持。本系統(tǒng)采用Access管理系統(tǒng)構(gòu)建數(shù)據(jù)庫,設(shè)定“鉆頭半徑”為主鍵。
選擇數(shù)據(jù)庫的管理系統(tǒng)建立數(shù)據(jù)庫后,需要在用戶計算機上注冊數(shù)據(jù)源。選擇【控制面板】→【管理工具】→【數(shù)據(jù)源ODBC】,進入數(shù)據(jù)源注冊界面,用ODBC數(shù)據(jù)源管理器注冊添加“drill_spur.mdb”數(shù)據(jù)源。
在UG二次開發(fā)的系統(tǒng)中,為實現(xiàn)對外部數(shù)據(jù)源的訪問,需要利用MFC中封裝的ODBC功能的類[1],通過類與ODBC的接口,解決了API應用程序不能直接支持MFC的問題,使用戶避免處理繁雜的ODBC API步驟,就可以進行數(shù)據(jù)庫的操作。
在VC++環(huán)境下,創(chuàng)建應用程序框架,建立 MFC AppWizard(dll)工程,命名為“drill_spur_data”。在應用程序中的全局對象類theAPP的下面添加 UG/Open API函數(shù)入口,添加相關(guān)的程序代碼[9]。連接數(shù)據(jù)庫,生成對話框類的實例,如圖5所示。建立與數(shù)據(jù)庫的連接,通過類的方法實現(xiàn)對數(shù)據(jù)庫的后臺訪問。一個好的數(shù)據(jù)庫應允許用戶添加入庫和刪除數(shù)據(jù),對話框中各個控件的屬性值[10]要與Access建立的數(shù)據(jù)庫的字段名稱及順序一致,且主鍵不能有重復,添加(insert)和刪除(delete)都是通過SQL語句來編輯的。
對MFC工程進行編譯鏈接,實現(xiàn)對數(shù)據(jù)庫的訪問,將生成的drill_spur_data.lib復制到工程文件夾下,將生成的drill_spur_data.dll文件復制到上述startup目錄中。
圖5 MFC類對話框
在VC++環(huán)境下對工程drill_spur的對話框源文件進行修改,主要是對相關(guān)回調(diào)函數(shù)進行代碼修改添加,以及對相關(guān)頭文件的添加,實現(xiàn)調(diào)用GRIP程序和對數(shù)據(jù)庫文件訪問的響應。
將UG 庫文件“l(fā)ibugopenint.lib”、“l(fā)ibufun.lib”和“drill_spur_data.lib”添加到所建立工程的【Project】→【Setting】的【Link】選項中,在【Tools】→【Options】的【Directaries】選項中添加 API庫函數(shù)所在的路徑。對工程進行編譯鏈接,生成對應的drill_spur.dll,將它復制到startup目錄下供系統(tǒng)調(diào)用。
啟動UG,點擊相應的菜單欄或工具欄,彈出對話框,輸入相關(guān)的參數(shù),也可以通過麻花鉆參數(shù)庫選擇優(yōu)化的參數(shù),即單擊【直柄麻花鉆參數(shù)庫】,彈出由MFC設(shè)計的對話框,進行數(shù)據(jù)的選擇、添加入庫或刪除等操作,單擊確定或應用,自動生成所需的直柄麻花鉆實體模型,如圖6(a)所示。
以上是標準直柄麻花鉆的設(shè)計過程,錐柄麻花鉆的設(shè)計過程與其類似,主要是柄部參數(shù)有所不同,在此不再詳細敘述,自動生成的新的標準錐柄麻花鉆如圖6(b)所示。
圖6 自動生成麻花鉆實體模型
系統(tǒng)采用UG二次開發(fā)工具集UG/Open,結(jié)合API和GRIP開發(fā)語言,實現(xiàn)了麻花鉆的參數(shù)化設(shè)計計算;采用API與MFC建立了麻花鉆參數(shù)化數(shù)據(jù)庫,解決API應用程序不能直接支持MFC的問題,實現(xiàn)對外部數(shù)據(jù)源的訪問;采用編程技術(shù)實現(xiàn)麻花鉆的快速造型,提高了麻花鉆的設(shè)計效率與準確性,并為麻花鉆設(shè)計改進、數(shù)控加工、切削仿真及性能分析等工作奠定了基礎(chǔ)。
[1]黃勇,張博林,薛運鋒.UG二次開發(fā)與數(shù)據(jù)庫應用基礎(chǔ)與典型范例[M].北京:電子工業(yè)出版社,2008:154-188.
[2]陳周.基于UG的油缸參數(shù)化設(shè)計[D].江蘇:江南大學,2009:10-11.
[3]闕銀昌,李珊,王磊,等.基于UG的麻花鉆三維建模研究[J].機械設(shè)計與制造,2007(6):176-178.
[4]茍向鋒,張紅梅,張亞東.基于UG的麻花鉆三維實體參數(shù)化設(shè)計[J].蘭州理工大學學報,2012,38(2):37-41.
[5]荊浩旗,白海清,王春月,等.基于UG/Open GRIP的麻花鉆參數(shù)化設(shè)計[J].陜西理工學院學報:自然科學版,2014,30(2):10-14.
[6]劉世瑤,耿芬然.深孔麻花鉆的端截形及螺旋面的加工[J].河北冶金,2002(4):27-31.
[7]王忠魁.麻花鉆新型錐面刃磨法[J].陜西工學院學報:自然科學版,1999,15(1):1-6.
[8]戴俊平.麻花鉆內(nèi)錐面刃磨試驗[J].陜西工學院學報:自然科學版,2003,19(1):5-7.
[9]范孝良,王川.基于MFC與UG/Open數(shù)據(jù)庫系統(tǒng)的研究應用[J].機械工程師,2010(8):45-46.
[10]程杰,夏鏈,韓江.基于UG/Open的斜齒輪數(shù)據(jù)庫的設(shè)計[J].組合機床與自動化加工技術(shù),2013(2):1-3.