前言:想要寫出一篇引人入勝的文章?我們特意為您整理了滾動軸承選型設(shè)計程序開發(fā)探析范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:計算機程序輔助機械師設(shè)計,高效、準(zhǔn)確、全面、經(jīng)濟的完成設(shè)計。機械設(shè)計分為條件輸入、信息檢索及處理、輸出三個過程,旨在降低手冊對機械設(shè)計的約束、降低新產(chǎn)品設(shè)計周期進而提高企業(yè)競爭力。通過對滾動軸承選型實驗,其能高效且準(zhǔn)確的得到的軸承代號解集。本設(shè)計思想能夠解決軸承選型設(shè)計的一般問題,能給后續(xù)基礎(chǔ)工業(yè)軟件的開發(fā)者提供一些解決問題的方法和途徑。
關(guān)鍵詞:機械設(shè)計;滾動軸承;模塊化程序設(shè)計;三大結(jié)構(gòu)
0引言
傳統(tǒng)機械設(shè)計過程過于繁瑣、于設(shè)計者設(shè)計門檻高、于企業(yè)市場競爭力低、于產(chǎn)品資源浪費較多等。過去強大全球制造業(yè)基礎(chǔ)給計算機的普及提供了可能,今天迅猛發(fā)展的電腦技術(shù)也再次給制造業(yè)注入新的血液。CAD、ANSYS、UG等軟件如雨后春筍般,計算機助力機械設(shè)計已成了大趨勢,對于基礎(chǔ)機械設(shè)計程序的開發(fā)對于一個國家的重要性就不言而喻了。軟件開發(fā)的難點主要集中在問題的轉(zhuǎn)換、防御系統(tǒng)的搭建、數(shù)據(jù)庫的建立、算法設(shè)計、代碼的后期維護上。針對問題轉(zhuǎn)換:不同設(shè)計內(nèi)容,從細(xì)節(jié)來講不盡相同,但從宏觀上來講大致可以看作:初始邊界工況和期望參數(shù)的輸入、中間數(shù)據(jù)庫檢索及邏輯處理分流、最后工程結(jié)果的輸出。問題轉(zhuǎn)換困難主要在中間環(huán)節(jié),邏輯與數(shù)據(jù)庫用C語言實現(xiàn)。但基于任何事件都可以用選擇、循環(huán)、順序來實現(xiàn)的理論之上,這個問題是解的。防御性系統(tǒng):將不合法、不符設(shè)計的輸入清除,并在人機交互界面提示重新輸入。防御性設(shè)計用以保證程序的健壯性;數(shù)據(jù)庫建立及圖表查詢實現(xiàn):在讀寫文件的時,考慮數(shù)表的復(fù)雜性,采用結(jié)構(gòu)體數(shù)組來存儲。特殊的某些圖表查詢,用SPSS軟件擬合曲線將信息方程化,進而完成讀圖。
1編寫預(yù)處理
滾動軸承PAD圖為整個程序編寫核心之所在,可以更加直觀地展示。由圖1可以得出,已經(jīng)把復(fù)雜的軸承設(shè)計過程轉(zhuǎn)化成了一個由選擇、循環(huán)、順序問題。
2機械設(shè)計程序?qū)崿F(xiàn)的基本思想
機械設(shè)計程序是一個復(fù)雜的系統(tǒng),可以將其劃分成若干個層次,各層次分別獨立的完成各自層級的功能,同類層與同類子層之間進行信息交換,高層向次高層發(fā)送命令,次高層為對應(yīng)的高層服務(wù)并返回執(zhí)行結(jié)果,通過“定義主程序”將各層“定義子程序”聯(lián)動起來,實現(xiàn)程序功能。具體而言,劃分層次依次是主程序?qū)?、功能模塊層、工況期望儲備層、邏輯判斷層、中央數(shù)據(jù)庫調(diào)用層、工程結(jié)果輸出層。以軸承為例,主程序選擇軸承功能,提示用戶輸入相應(yīng)軸承的邊界工況以及用戶期望的軸承期望壽命等參數(shù),邏輯判斷層通過工況期望儲備層里的信息進行邏輯判斷調(diào)用相應(yīng)數(shù)據(jù)庫并進行運算,得到結(jié)果。關(guān)系示意如圖2所示。為保證代碼的一致性,舍棄使用return語句來實現(xiàn)主要數(shù)據(jù)交流,有破則必有立,核心數(shù)據(jù)的交流它法有二,一喚指針,二曰引用。這里指針包括函數(shù)指針、指針函數(shù)、結(jié)構(gòu)體指針等。引用在代碼簡化上有很大的作用。以指針為例,程序通過地址讀改數(shù)據(jù)。在僅希望數(shù)據(jù)被閱讀,也對應(yīng)的采用了常量指針。另外return一般只做運行狀態(tài)反饋用。程序?qū)ν獍l(fā)展的基本原則:其一,必須符合我國基本國情,符合我國的相關(guān)法律。其二,始終堅持以需求驅(qū)動、效益驅(qū)動的雙驅(qū)原則?;脭?shù)、宏定義、const常量及其代碼的可讀性:設(shè)計過程中,難免會遇到類似的常量,其復(fù)用性高。若代碼里直接出現(xiàn),久而久之,就演變成了幻數(shù)。在這里我們采用宏定義或const常量。宏定義:使用實例:另外為了保證函數(shù)名與宏定義有別,一般宏定義均為全大寫字符,加下劃線組合單詞。高層與次高層函數(shù)名的定義:由于每一模塊的程序內(nèi)部交流的信息不盡相同,故特定模塊的高層與次高層的函數(shù)名應(yīng)當(dāng)也有一定繼承性。模塊主函數(shù):模塊子函數(shù):有部分功能在各模塊都會用到,我們把它們列入通用函數(shù)之列,具體而言有緩存區(qū)清除函數(shù)、數(shù)據(jù)合法性函數(shù)判斷函數(shù)等。函數(shù)聲明的后面有詳細(xì)的函數(shù)功能說明。另外有數(shù)字編號,可以把它們理解成函數(shù)的別名,在程序運行時其不起任何作用,但在代碼編寫時,它的存在會方便檢索。
3建立程序防御性系統(tǒng)及增強程序健壯性的途徑
考慮到用戶不免會輸入失誤,所以在程序架構(gòu)時,為保證程序的健壯性,我們有必要對程序進行防御性設(shè)計。用戶的指令先進入的是防御性系統(tǒng),在判斷其合法的情況下才會調(diào)用指定執(zhí)行函數(shù),執(zhí)行函數(shù)在用戶指令或數(shù)據(jù)庫的共同作用下執(zhí)行命令之后進行下一步,否則就會把判定攻擊指令進行清除,并在人機交互界面打印出提示語,讓用戶重新輸入指令。其工作機理由圖3所示。防御性系統(tǒng)是防御性函數(shù)和防御性代碼的有機結(jié)合。緩存區(qū)清除主要用于規(guī)避錯誤指令進入程序,程序的異常執(zhí)行和意外崩潰死循環(huán)等。函數(shù)核心代碼:菜單指令捕捉函數(shù):菜單有諸多的選項,但是選項是特定的,如若鍵入失誤,得不到正確的進程,故而采用以下代碼設(shè)計防止非法字符的進入。函數(shù)核心代碼:防御性不拘于獨立存在,有時復(fù)用性地就零散幾條代碼,復(fù)用性高就獨立于成函數(shù)。
4數(shù)據(jù)庫的讀取實現(xiàn)
數(shù)據(jù)庫背景及數(shù)表的讀取:數(shù)據(jù)庫是機械設(shè)計電算的基礎(chǔ)。數(shù)表讀取的方法:困難在于讀取表格的多樣性。對于讀取函數(shù),考慮到一類數(shù)據(jù)具有很大的相似性,所以我們統(tǒng)一定義一個最大的結(jié)構(gòu)體,其結(jié)構(gòu)體成員是各類型數(shù)表屬性的并集。結(jié)構(gòu)體成員名與機械設(shè)計參數(shù)有差異,是因C/C++本身對變量名的定義有限定所致。取讀取函數(shù)成員集合為READ;對于數(shù)據(jù)庫本身,將數(shù)表本身也要進行特殊處理,由于讀取的函數(shù)和數(shù)據(jù)庫有差別,但我們可以通過在數(shù)據(jù)庫里加入一列列的“-1”數(shù)據(jù)來占位,來使數(shù)據(jù)庫可以統(tǒng)一用一個讀取函數(shù)來實現(xiàn),降低了編程難度,如圖4所示。取數(shù)據(jù)庫成員集合依次為A、B、C,。解析識圖的實現(xiàn),可將其轉(zhuǎn)換成一個數(shù)學(xué)問題。即通過識取圖上的特別點,將點的坐標(biāo)進行數(shù)據(jù)擬合,得到其表達(dá)式,再通過特定的判別式來判斷其點的位置,最后得到需要的過程參數(shù)。圖5是傳統(tǒng)機械設(shè)計過程中需要算公式查數(shù)表讀圖的過程,圖6則是我們現(xiàn)在用程序思維進行機械設(shè)計的過程。
5結(jié)論
傳統(tǒng)的機械設(shè)計,需要查閱大量的圖表及繁雜的運算以試錯的方式來進行設(shè)計,時常運算到最后由于初始參數(shù)選擇失誤導(dǎo)致設(shè)計失敗。本設(shè)計程序整體充分運用模塊化程序設(shè)計思想,程序代碼具有很好的可維護性及可讀性,方便后期程序升級及程序兼容;在問題分解與轉(zhuǎn)換上以三大結(jié)構(gòu)為落腳點,面對數(shù)據(jù)庫的建立問題,我們采用外置的.txt來實現(xiàn),適當(dāng)?shù)摹?1”列可作為未來國標(biāo)更新的預(yù)改空間,使用文件讀取,結(jié)構(gòu)體數(shù)組儲存來實現(xiàn)數(shù)據(jù)庫的建立,最后實現(xiàn)計算機輔助設(shè)計的目的;防御性系統(tǒng)設(shè)計讓程序的健壯性及穩(wěn)定性得到了很大的提高;運用軟件將一些數(shù)據(jù)進行擬合,可以簡化編程難度或?qū)崿F(xiàn)計算機識圖;現(xiàn)目前軸承選型設(shè)計已經(jīng)可以完全不用翻閱設(shè)計手冊、資料,只需鍵入邊界條件便可以完成設(shè)計,并且充分的考慮到了工廠的需求,可以選擇現(xiàn)有的資源進行設(shè)計。與傳統(tǒng)的設(shè)計相比,其可更快、更方便地幫助設(shè)計者進行設(shè)計。本機械設(shè)計程序思想能夠解決軸承選型設(shè)計的一般問題,目前在指導(dǎo)帶傳動設(shè)計、齒輪設(shè)計、軸設(shè)計、鍵連接設(shè)計已經(jīng)取得階段性成果,能夠給后續(xù)基礎(chǔ)工業(yè)軟件的開發(fā)提供一些解決問題的方法和途徑。
參考文獻:
[1]鄧祁曾.計算機輔助機械設(shè)計注意事項及其程序編制技巧[J].現(xiàn)代機械,1988(02):11-14.
[2]游敏,劉更新.適于機械圖剖面線繪制的通用程序設(shè)計[J].三峽大學(xué)學(xué)報(自然科學(xué)版),1993(01):11-17.
[3]張益,殷愛華,薛淑琴,馮中鍙.機床零件的袖珍計算機計算程序(四)機械設(shè)計程序編制的一般方法[J].機床,1987(02):43-46.
[4]吳軍,陳鵬慧,王飛,郭鵬武.基于VB6.0的機械工時定額計算程序設(shè)計[J].中州煤炭,2014(09):85-87,107.
[5]沈元元,于晨斯.基于Matlab的機械設(shè)計方法研究[J].科技創(chuàng)新導(dǎo)報,2015,12(18):63.
[6]楊元慧.C語言在機械設(shè)計數(shù)表程序化中的應(yīng)用[J].煤礦機械,2010,31(01):223-224.
作者:蔚福強 楊文超 羅霽 單位:南通理工學(xué)院