張闐,李雪飛,王玉國,張德穎,高武正
(1. 洛陽軸承研究所有限公司,河南 洛陽 471039;2. 河南科技大學(xué) 車輛與交通工程學(xué)院,河南 洛陽 471003)
隨著計(jì)算機(jī)軟件的快速發(fā)展以及信息技術(shù)的不斷推廣應(yīng)用,結(jié)合圖形處理軟件開發(fā)的軸承參數(shù)化設(shè)計(jì)CAD和參數(shù)化工藝CAPP軟件也將軸承技術(shù)人員從簡單、重復(fù)的計(jì)算、查詢、繪圖等工作中逐漸解放出來。之前基于AutoCAD所開發(fā)的相關(guān)軟件[1-2]存在平臺老舊,與主流操作系統(tǒng)不兼容,功能單一,CAD與CAPP脫節(jié),需要大量數(shù)據(jù)的導(dǎo)入和導(dǎo)出,自動化程度不高等缺點(diǎn)。因此,本文結(jié)合機(jī)床主軸用雙列圓柱滾子軸承的長期應(yīng)用和試驗(yàn)數(shù)據(jù),歸納現(xiàn)有成熟產(chǎn)品的結(jié)構(gòu)參數(shù)特征,增加新的保持架結(jié)構(gòu)形式,配合行業(yè)和自身的工藝加工水平,基于GB/T 27559—2011《滾動軸承 機(jī)床主軸用圓柱滾子軸承》建立大量標(biāo)準(zhǔn)化數(shù)據(jù)庫,開發(fā)機(jī)床主軸用雙列圓柱滾子軸承CAD/CAPP軟件,可以實(shí)現(xiàn)設(shè)計(jì)文件和工藝文件的一鍵自動生成,進(jìn)一步提升相關(guān)技術(shù)工作的質(zhì)量和效率。
目前,參數(shù)化設(shè)計(jì)和工藝軟件多以Visual Basic 6.0和Visual C++6.0為開發(fā)平臺,對于很多控件、事件、方法以及數(shù)據(jù)庫訪問方式等,新版本計(jì)算機(jī)操作系統(tǒng)均不支持,軟件在目前主流的Windows 10或11操作系統(tǒng)中運(yùn)行會出現(xiàn)一些兼容性問題,甚至無法正常運(yùn)行,需要通過虛擬機(jī)在舊版本操作系統(tǒng)中運(yùn)行,給軟件的使用帶來了諸多不便。
Visual Basic.NET(簡稱VB.NET)是Microsoft公司系列可視化開發(fā)工具Visual Studio.NET中的產(chǎn)品,是當(dāng)今流行的軟件開發(fā)工具之一,更加適應(yīng)現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)化、運(yùn)行速度快及加強(qiáng)數(shù)據(jù)傳輸?shù)内厔?是簡便、快捷地創(chuàng)建Windows應(yīng)用程序的開發(fā)工具[3]。軸承相關(guān)CAD/CAPP軟件的開發(fā)通常需要專業(yè)的繪圖軟件進(jìn)行圖形文件處理,而VB.NET是一種完整的面向?qū)ο笳Z言,支持許多新型面向?qū)ο笳Z言的特性[4];同時,VB.NET繼承了Basic語言簡單易用的特點(diǎn),非常適合非計(jì)算機(jī)專業(yè)的軸承技術(shù)人員將其作為軸承相關(guān)CAD/CAPP軟件開發(fā)的平臺。
本文以VB.NET為開發(fā)平臺,基于ActiveX技術(shù),以中望CAD為圖形處理軟件,重點(diǎn)介紹機(jī)床主軸用雙列圓柱滾子軸承CAD/CAPP軟件(下文簡稱軟件)的功能和開發(fā)思路,以供其他類型軸承相關(guān)軟件開發(fā)作為參考。
一般情況下,軸承設(shè)計(jì)和工藝編制的主要工作包括:計(jì)算各個參數(shù)并編寫設(shè)計(jì)說明書,繪制設(shè)計(jì)圖紙、工藝圖紙等??紤]操作便捷和功能需求,軟件需具備以下主要功能:1)軸承的外形尺寸及各參數(shù)數(shù)據(jù)庫;2)主參數(shù)優(yōu)化設(shè)計(jì)[5-8];3)生成設(shè)計(jì)說明書;4)生成設(shè)計(jì)圖紙;5)生成草圖;6)生成三維實(shí)體模型;7)生成零件車、磨加工工藝。綜上,軟件的主要窗體和模塊文件如圖1所示。
綜合考慮各個功能模塊以及操作的便捷性,軟件的工作流程如圖2所示。
圖2 軟件工作流程
軟件的操作界面主要由基本參數(shù)輸入、其他參數(shù)和保持架參數(shù)3個部分組成。
2.3.1 基本參數(shù)輸入
如圖3所示,基本參數(shù)輸入窗體主要使用RadioButton,CheckBox,TextBox,DataGridView等控件進(jìn)行選擇和輸入。DataGridView控件用于顯示內(nèi)置的軸承外形尺寸數(shù)據(jù)庫,雙擊某行即可自動輸入外形尺寸,提高了操作的便捷性。對于外形尺寸非標(biāo)的軸承,軟件也支持手動輸入,點(diǎn)擊外形尺寸旁邊的“?”按鈕,會根據(jù)當(dāng)前所選軸承類型彈出對應(yīng)的“NN型”或“NNU型”軸承外形尺寸示意圖(圖4),方便用戶理解和使用。
圖3 基本參數(shù)輸入界面
圖4 軸承外形尺寸示意圖
結(jié)合本公司機(jī)床主軸用雙列圓柱滾子軸承產(chǎn)品,給出了SP,P4,UP這3種軸承公差等級供選擇;針對NN,NNU以及圓柱孔和錐孔的不同,給出了如圖5所示的徑向游隙選擇。用戶也可自定義游隙,如圖6所示:軟件按照用戶是否選擇“錐孔”,自動以表格形式給出徑向游隙標(biāo)準(zhǔn)值供用戶參考,用戶在文本框中輸入自定義的游隙值即可完成游隙的自定義。
圖5 徑向游隙的選擇
圖6 徑向游隙的自定義
2.3.2 其他參數(shù)
“其他參數(shù)”窗體如圖7所示,主要使用RadioButton,TextBox,PictureBox等控件進(jìn)行選擇和輸入。當(dāng)程序運(yùn)行時,主參數(shù)的優(yōu)化結(jié)果會自動輸出,用戶也可根據(jù)實(shí)際需要修改。程序內(nèi)置了3種滾子修形方式。軸承材料的選擇使用ComboBox控件并綁定軸承材料數(shù)據(jù)庫(圖8),內(nèi)置的軸承零件常用材料以列表的形式供用戶選擇,軟件也能夠自動加載用戶在軸承材料數(shù)據(jù)庫中新增加的材料并顯示在列表框中。
圖7 其他參數(shù)輸入界面
圖8 軸承材料數(shù)據(jù)庫
2.3.3 保持架參數(shù)
“保持架參數(shù)輸入”窗體如圖9所示,主要使用PictureBox,TextBox等控件修改保持架設(shè)計(jì)結(jié)果。當(dāng)程序運(yùn)行時,保持架參數(shù)計(jì)算結(jié)果會自動輸出,用戶可以直接采用,也可根據(jù)實(shí)際需要修改。
圖9 保持架參數(shù)
2.3.4 輸出結(jié)果
通過基本參數(shù)、其他參數(shù)和保持架參數(shù)這3個界面的參數(shù)輸入,點(diǎn)擊“確定”按鈕后,軟件即可根據(jù)用戶選擇生成輸出結(jié)果并保存,如圖10所示。
圖10 輸出結(jié)果
軟件建立了大量數(shù)據(jù)表用于存儲軸承的外形尺寸、材料、公差、表面粗糙度、加工工藝留量等技術(shù)條件,CAD模塊以Access文件作為數(shù)據(jù)源,利用.NET框架提供的ADO.NET訪問數(shù)據(jù)庫,其中:OleDbConnection對象用于數(shù)據(jù)庫鏈接,OleDbCommand對象用于將SQL命令以文本字符串的形式發(fā)送給數(shù)據(jù)庫并實(shí)現(xiàn)數(shù)據(jù)查詢,OleDbDataReader對象用于數(shù)據(jù)讀取。
為減少數(shù)據(jù)冗余以及便于后期維護(hù)管理,數(shù)據(jù)庫中的表盡量獨(dú)立,但彼此之間建立關(guān)系并形成關(guān)系型數(shù)據(jù)庫。例如“外形尺寸表”儲存軸承外形尺寸,“主參數(shù)表”儲存軸承優(yōu)化設(shè)計(jì)結(jié)果,將2個表通過主鍵“編號”建立關(guān)系并新建一個“查詢”,便于后期軟件維護(hù)升級時進(jìn)行數(shù)據(jù)的查詢和管理,如圖11所示。
(a) 建立關(guān)系
對于標(biāo)準(zhǔn)中規(guī)定數(shù)據(jù)不能滿足要求,以及需要使用自定義數(shù)據(jù)的情況,也應(yīng)該分別建立數(shù)據(jù)表并通過UNION將2個表合并。如圖12所示,建立2個尺寸表分別存儲標(biāo)準(zhǔn)和自定義的滾子尺寸;在優(yōu)化設(shè)計(jì)模塊,軟件先將這2個表中的數(shù)據(jù)進(jìn)行UNION合并,再根據(jù)約束條件查詢并篩選出滿足條件的滾子尺寸自變量;這樣建立數(shù)據(jù)庫能夠進(jìn)一步提高軟件的適用性和可維護(hù)性。
圖12 圓柱滾子尺寸表
由于工藝文件的參數(shù)多且需要根據(jù)設(shè)備、留量及公差進(jìn)行定期調(diào)整,為便于后期的數(shù)據(jù)修改,CAPP模塊的數(shù)據(jù)文件采用csv文本文件,根據(jù)機(jī)床主軸軸承的實(shí)際加工工藝編制了一系列的數(shù)據(jù)文件(圖13),用于CAPP模塊的查詢和計(jì)算。
圖13 機(jī)床主軸軸承工藝數(shù)據(jù)文件
目前,機(jī)床主軸用雙列圓柱滾子軸承的優(yōu)化設(shè)計(jì)主要以徑向基本額定動載荷Cr為目標(biāo)函數(shù),滾子直徑Dw、滾子長度Lw、滾子個數(shù)Z為設(shè)計(jì)變量,根據(jù)NN和NNU軸承內(nèi)部結(jié)構(gòu)特點(diǎn)建立一系列約束條件,采用網(wǎng)格法[9-10]的軸承主參數(shù)優(yōu)化程序流程如圖14所示。
軸承的設(shè)計(jì)說明書用于顯示軸承各個參數(shù)的計(jì)算過程和結(jié)果, 使用txt格式的文本文件儲存。
FileOpen()函數(shù)用于創(chuàng)建文本文件,PrintLine()函數(shù)用于輸出一行文本,FileClose()函數(shù)用于保存和關(guān)閉文本文件。具體代碼如圖15所示。
圖15 生成設(shè)計(jì)說明書的代碼
由于中望CAD支持ActiveX Automation技術(shù),通過訪問中望CAD中的各種對象,如應(yīng)用程序本身、直線、圓弧、文字和標(biāo)注等圖形對象,可以十分方便地創(chuàng)建和修改各種圖形對象,從而實(shí)現(xiàn)各種功能,因此軟件使用中望CAD作為圖形處理軟件。鏈接中望CAD時,首先在“項(xiàng)目”中添加“ZWCAD類型庫”的引用,然后進(jìn)行鏈接,具體代碼如圖16所示。
設(shè)計(jì)圖紙的生成過程為:首先,將裝配圖、外圈、內(nèi)圈、保持架和滾子按照結(jié)構(gòu)形式分別建立模板;然后,根據(jù)用戶選擇的軸承結(jié)構(gòu)形式,打開軟件分別相應(yīng)的圖形模板,按照程序計(jì)算以及查詢得到的各個參數(shù)值修改各個圖形模板中對應(yīng)的對象;最后,將各個零件圖及對應(yīng)的裝配圖組合在一個dwg文件中,分別建立布局用于打印輸出。
每個模板文件中的對象都有唯一的Handle,在中望CAD軟件的操作界面中通過list命令獲得該對象的Handle對應(yīng)的文本值。在編程環(huán)境中使用HandleToObject()函數(shù)可以引用該對象,修改對象屬性即完成了圖形對象的修改。對于圖紙模板,需要修改的實(shí)體對象IZcadEntity一般為標(biāo)注對象IZcadDimension、多行文字對象IZcadMText、單行文字對象IZcadText。由于圖形中有較多的對象需要修改,可以編寫一個子程序或函數(shù)用于修改對象的屬性。根據(jù)對象名稱判斷其類型后再按照不同的對象類型修改相應(yīng)的屬性,代碼如圖17所示。
圖17 修改對象屬性的代碼
與生成設(shè)計(jì)圖紙類似,生成工藝圖紙時也需要先將零件的車、磨加工工藝圖紙分別建立模板,鏈接圖形處理軟件后,CAPP模塊按照計(jì)算和查詢得到的留量、公差、技術(shù)條件等參數(shù)值分別修改對應(yīng)圖形模板中對象的屬性。生成的設(shè)計(jì)圖紙和工藝圖紙如圖18所示。
(a) 設(shè)計(jì)圖紙
草圖用于快速、直觀地查看設(shè)計(jì)結(jié)果,一般是軸承徑向的剖視圖。計(jì)算內(nèi)圈、外圈、滾子、保持架零件截面各個點(diǎn)的坐標(biāo)并使用一維數(shù)組存儲這些點(diǎn)的坐標(biāo),通過AddLightWeightPolyline()函數(shù)生成二維多段線IZcadLWPolyline,使用SetBulge()函數(shù)生成倒角、砂輪越程槽等圓弧,使用AddLine()函數(shù)添加直線,使用AddHatch()函數(shù)添加剖面線,這樣就完成了草圖的自動生成。
對于三維實(shí)體模型,也要按照零件截面各個點(diǎn)的坐標(biāo)生成二維多段線,再使用AddRegion()函數(shù)生成相應(yīng)的面域,使用AddRevolvedSolid()函數(shù)生成旋轉(zhuǎn)實(shí)體,使用AddExtrudedSolid()函數(shù)生成拉伸實(shí)體,最后還需要使用IZcad3DSolid對象的Boolean()函數(shù)的zcSubtraction參數(shù)對實(shí)體進(jìn)行差集的布爾運(yùn)算,處理油孔、保持架兜孔等位置。軟件通過訪問零件三維實(shí)體對象IZcad3DSolid的Volume屬性獲得零件的精確體積,從而使設(shè)計(jì)圖紙能夠得到零件的精確質(zhì)量。
生成草圖和三維實(shí)體的詳細(xì)方法和具體代碼可以參考文獻(xiàn)[2]中的具體介紹,軟件自動生成的草圖和三維實(shí)體模型如圖19所示。
(a) 草圖 (b) 三維實(shí)體模型
需要說明的是:在生成對數(shù)素線圓柱滾子的三維實(shí)體模型時,首先沿滾子長度方向按設(shè)定的間距取一系列數(shù)值x,然后根據(jù)對數(shù)曲線方程分別計(jì)算每個x對應(yīng)的凸度值y,將x,y值作為點(diǎn)的橫、縱坐標(biāo)生成二維多段線,最后再生成面域和三維實(shí)體。
本文介紹了以Visual Basic.NET為平臺,基于ActiveX技術(shù),以中望CAD為圖形處理軟件的機(jī)床主軸用雙列圓柱滾子軸承CAD/CAPP軟件的開發(fā)思路、主要模塊和操作界面,并給出了部分功能的程序源代碼,可供其他類型軸承相關(guān)軟件開發(fā)的參考,這些方法也同樣適用于以AutoCAD為圖形處理軟件的軟件開發(fā)。該軟件具有數(shù)據(jù)查詢快捷高效,后期維護(hù)升級方便,功能齊全,界面友好等特點(diǎn),其應(yīng)用能夠極大地提高技術(shù)人員的工作效率和質(zhì)量,從而進(jìn)一步提升產(chǎn)品技術(shù)文檔的標(biāo)準(zhǔn)化和規(guī)范化水平。