田仙云
(太原城市職業(yè)技術(shù)學院 機電工程系,太原 030027)
開發(fā)具有行業(yè)特色的產(chǎn)品設(shè)計CAD系統(tǒng),是國外產(chǎn)品自動化設(shè)計廣泛應用的一個概念。國內(nèi)的機械行業(yè)在部分產(chǎn)品設(shè)計中已經(jīng)應用了此技術(shù),但具體到起重機行業(yè)卻沒有專用的參數(shù)化快速設(shè)計系統(tǒng)。盡管國內(nèi)許多高校與科研機構(gòu)已對此立項研究,但由于方法的局限性,研究結(jié)果尚不盡如人意。鑒于此,本文采用現(xiàn)代優(yōu)化設(shè)計方法和參數(shù)化技術(shù)對傳統(tǒng)設(shè)計、計算模型及方法進行技術(shù)提升,用優(yōu)化程序代替設(shè)計,實現(xiàn)基于設(shè)計數(shù)據(jù)驅(qū)動的命令文件式參數(shù)化繪圖,形成具有橋式起重機(以下簡稱橋機)特色的專用CAD系統(tǒng)。本文所述橋機參數(shù)化設(shè)計軟件,能夠完成從設(shè)計、計算直到參數(shù)化繪圖的全部過程,使工程設(shè)計人員把設(shè)計重點放到結(jié)構(gòu)的優(yōu)化和創(chuàng)新上。其基本理論和方法,對于各種機械產(chǎn)品CAD系統(tǒng)的開發(fā)都具有理論指導與工程應用價值。
VC++6.0是由微軟公司推出的一款Windows環(huán)境下可視化的面向?qū)ο蟮能浖_發(fā)平臺。與Turbo C、Borland C++相比,VC++繼承了C語言結(jié)構(gòu)化編程能力強、運行速度快的優(yōu)點,能夠在Windows 2000/NT上建立32位應用程序。VC++具有較好的可視化程度,嚴謹?shù)木幊田L格和完全的面向?qū)ο筇匦?。隨著WINDOWS操作系統(tǒng)在微機上的普遍應用,軟件開發(fā)平臺也逐漸轉(zhuǎn)向WINDOWS平臺的面向?qū)ο蠛涂梢暬幊蘙1]。由于VC++源于C又高于C,可以向Java、C#等網(wǎng)絡(luò)開發(fā)平臺過渡,因此是當前最佳的軟件開發(fā)平臺。以往開發(fā)人員雖然看好VC++,但因其較難掌握,故而避選該語言作為編譯環(huán)境。筆者認為VC++雖然略難掌握,但對于開發(fā)大型軟件系統(tǒng)是非常有益的。而且采用應用程序向?qū)ВˋppWizard)工具和MFC(微軟基本類庫)后,VC++程序并不難編寫。因此,本文軟件全部選用VC++作為開發(fā)工具。
箱形橋架作為橋機的主要承載構(gòu)件,其自重占整機重量的60%左右[2]。但以往對橋機的優(yōu)化中,多數(shù)設(shè)計方法卻只單純對主梁進行優(yōu)化,這雖能降低計算成本,卻因考慮因素不全而降低了優(yōu)化效果和整機性能。因此,本文在確保整機性能的基礎(chǔ)上,將最大程度地減輕橋架重量作為優(yōu)化設(shè)計模塊的主要目標。
起重機優(yōu)化中存在強度、剛度、穩(wěn)定性、幾何尺寸等大量約束,致使優(yōu)化變量的可行域非常復雜,而最優(yōu)點往往在可行域的邊界上,所以傳統(tǒng)的優(yōu)化方法存在著不容易找到全局最優(yōu)解的缺點。
針對目前研究較熱的全局優(yōu)化方法,依據(jù)“綜合就是創(chuàng)新”的思想,眾多學者相繼提出了將不同類算法相結(jié)合,實現(xiàn)優(yōu)勢互補,以構(gòu)造新的混合型算法的思路。雖然已有許多成形的求解軟件,但幾乎都是針對特定問題求解的,有一定的專用性和局限性,尚不存在適合解決任何全局最優(yōu)解問題的通用算法與軟件。為此,本文在充分分析目前流行的全局和局部最優(yōu)化算法優(yōu)缺點的基礎(chǔ)上,重點研究了混合離散變量優(yōu)化(MDOD)方法和正交網(wǎng)格法,針對正交網(wǎng)格法雖能得到全局穩(wěn)定解但其效率低下,MDOD 方法雖然效率高,但受初始點影響解的穩(wěn)定性差,甚至找不到最優(yōu)解的特點,通過綜合策略設(shè)計出一種新的串行結(jié)構(gòu)的混合全局優(yōu)化方法,即以MDOD和正交網(wǎng)格法為基本框架,盡可能利用MDOD方法優(yōu)化速度快的優(yōu)點提高算法的性能,同時利用正交網(wǎng)格法解決MDOD法中存在的不穩(wěn)定性協(xié)同尋優(yōu)。由于該算法具有“強優(yōu)弱劣”的綜合機制,因而可以獲得較好的尋優(yōu)效率和效果。
本文的優(yōu)化算法程序基于Windows操作系統(tǒng),以VC++為開發(fā)平臺編制,數(shù)據(jù)庫開發(fā)采用Access實現(xiàn)。綜合策略是:首先利用正交表提供的信息在優(yōu)化變量上下限空間內(nèi)的可行域中尋找一個局部最優(yōu)點,并以此最好水平點作為子空間輪變搜索的初始可行點;然后利用目標函數(shù)和約束條件的信息,加快搜索進程;最后通過“查點”策略以盡可能少的計算代價找到所有點中的最優(yōu)點。
參數(shù)化繪圖是在給定結(jié)構(gòu)形式的條件下,依據(jù)參數(shù)自動生成圖紙的一種技術(shù)。由于能夠自動出圖,因而可極大地提高設(shè)計效率,是開發(fā)起重機等專業(yè)機械CAD系統(tǒng)的關(guān)鍵技術(shù)。
參數(shù)化繪圖系統(tǒng)開發(fā)采用面向?qū)ο蟮募夹g(shù),在可視化VC++6.0開發(fā)環(huán)境下,采用命令文件方式對AutoCAD進行二次開發(fā)實現(xiàn),即用支持AutoCAD的編程語言訪問AutoCAD對象模型,把AutoCAD功能集成到應用程序中,實現(xiàn)圖形的自動生成[3]。不同型號的同類產(chǎn)品只需通過參數(shù)的改變即可引起所有與它相關(guān)尺寸的自動改變,從而使圖形局部或整體發(fā)生聯(lián)動來更新原設(shè)計,避免了交互式繪圖繁瑣的重復勞動,使產(chǎn)品設(shè)計更加高效、快捷。
1)參數(shù)確定。本軟件的參數(shù)來源主要有:結(jié)構(gòu)計算結(jié)果的文本數(shù)據(jù)文件、數(shù)據(jù)庫中的數(shù)據(jù)文件、優(yōu)化后的主要數(shù)據(jù)參數(shù)、經(jīng)過基本參數(shù)計算確定的參數(shù)[4];
2)各類參數(shù)傳遞到繪圖模塊后,執(zhí)行VC++6.0編制的橋機繪圖命令程序,生成繪圖命令文件*.SCR;
3)啟動AutoCAD,執(zhí)行繪圖命令文件,在計算機屏幕上繪出所需要的圖形;
4)對圖形進行校核和修改,修改可以在程序中進行,重復以上步驟;
5)連接繪圖儀,繪出圖紙。
3.3.1 參數(shù)化繪圖程序的編制步驟
本文的參數(shù)化繪圖以Windows操作系統(tǒng)作支撐系統(tǒng),AutoCAD為圖形支撐軟件,命令文件作接口,以可視化程序設(shè)計語言VC++6.0為開發(fā)平臺實現(xiàn)。編寫生成參數(shù)化繪圖程序的步驟如圖1所示。
圖1 參數(shù)化繪圖程序的編制步驟
3.3.2 編制參數(shù)化繪圖程序的主要技術(shù)
1)專用函數(shù)編制
參數(shù)化繪圖程序的編制中,將多次用到的專業(yè)通用符號和特殊圖形定義成函數(shù),可避免重復工作,增強代碼的可讀性和提高編程效率。由于命令文件的內(nèi)容就是AutoCAD的命令及對其提示響應的數(shù)據(jù)集合,因此在編寫程序代碼前,應先在鍵盤上用交互式繪圖的方式將整個過程操作一遍,確定其輸入的格式、選項及參數(shù)后,把其中的數(shù)據(jù)作為函數(shù)的參數(shù)即可。判斷是否需要編制專用函數(shù),采取“事不過三”的原則,只要程序中有調(diào)用三次以上的程序段,就將其編成函數(shù),使程序代碼大大縮減,達到省時省力、節(jié)省存儲空間之目的。下面是繪制表面粗糙度符號的專用函數(shù),其樣式如圖2所示。其他特征圖形、標準符號均可依此編制。
圖2 表面粗糙度符號
2)讀取數(shù)據(jù)文件
由于繪圖程序中的參數(shù)主要來源于各類數(shù)據(jù)文件,因此數(shù)據(jù)文件的正確讀取成為參數(shù)化繪圖執(zhí)行成敗的關(guān)鍵。其核心程序如下:
3)圖幅、比例的確定
各圖形繪制比例與圖幅大小密切相關(guān),為使不同跨度、噸位的橋機,都能全面、合理地呈現(xiàn)在圖紙幅面上,程序應在確定圖幅大小后,自動判斷不同情況下圖中相應圖形的適用比例?,F(xiàn)以實現(xiàn)橋架參數(shù)化繪圖程序中比例的確定為例予以說明[5]:
int a=0; /*a為幅面代號*/
double kd=841;bl=60;
/* kd為幅面寬度尺寸;bl為比例*/
if(H/50+B/50+480-kd〈0) bl=50;
/*H為主梁總高;B為端梁全長*/
if(H/40+B/40+480-kd〈0) bl=40;
if(H/30+B/30+480-kd〈0) bl=30;
4)坐標基點及繪圖坐標點的設(shè)置
計算坐標時,圖紙上的各個視圖均應選定一個坐標基點,并將同一視圖中所有的位置坐標值換算成基點坐標的函數(shù),以便靈活地調(diào)整視圖,達到一張圖紙中所有視圖的位置合理分布。其中,繪圖坐標點的設(shè)置首先要便于繪圖,并達到預定的要求,其次是使程序占用的內(nèi)存越少越好。由于屏幕中心位置始終是不變的,以往開發(fā)人員通常選擇屏幕中心位置或圖形對稱的起點作為坐標基點,但鑒于橋機的實際結(jié)構(gòu),本文繪圖模塊是以各視圖的結(jié)構(gòu)起始點作為坐標基點,其余位置的坐標值計算則以有利于點的表達確定。
考慮到時間長了修改程序時,可能記不清坐標點的定義方法,所以可采用把詳細的坐標布點圖放在程序內(nèi)部,或在程序中添加注釋語句等方法。本文采用后一種方法。因為注釋可增加程序的可讀性,不僅便于對程序的閱讀和調(diào)試,也便于對程序的維護、移植和擴充[6]。
5)循環(huán)、條件語句及夸大畫法的應用
參數(shù)化繪圖的特點是參數(shù)具有可變性,往往需要編制循環(huán)、條件語句。例如:為增加橋機結(jié)構(gòu)穩(wěn)定性,常需設(shè)置隔板、加勁肋等,由于其數(shù)量取決于繪圖初始給定的結(jié)構(gòu)參數(shù),并非固定的數(shù)值,因此必須采用循環(huán)語句方能實現(xiàn)其圖形繪制及相應尺寸、件號、焊縫等標注。再如:橋機主梁因跨度變化幅度大,某些零件的視圖不是每次都能在圖紙上體現(xiàn)其形狀、尺寸,對此必須運用條件語句一一加以判斷選擇,以符合工程實際需要。
工程制圖中規(guī)定,繪制厚度小于1mm的薄片時,可將該部分不按原比例而采用夸大畫法。照此規(guī)定,編制參數(shù)化繪圖程序時,將橋機結(jié)構(gòu)中的板厚采用夸大畫法。凡板厚≥8mm的認為是厚板,反之即認為是薄板。當厚板的實際繪制尺寸小于1 mm 時,程序?qū)⑵淇浯螽嫗?mm;薄板則夸大畫為0.8mm。
表1 各種方法優(yōu)化結(jié)構(gòu)對比
為了驗證文中所述理論及軟件效果,對起重量32t、跨度25.5m的橋機進行實例測試,結(jié)果表明:
1)混合算法采用了全離散變量,保留了MDOD方法尋找全局最優(yōu)值的能力和高效性,又集合了正交網(wǎng)格法的穩(wěn)定性,可減輕鋼結(jié)構(gòu)重量16%,是一種多樣性和收斂性都較好的新算法。文中所述各種方法與起重機設(shè)計規(guī)范的優(yōu)化對比結(jié)果見表1。
2)參數(shù)化繪圖系統(tǒng)不僅操作簡便,而且繪圖結(jié)果更加準確、快捷,可大大降低設(shè)計人員的勞動強度,提高圖紙的標準化與規(guī)格化,切實提高CAD 技術(shù)的應用水平和檔次。
通過命令文件實現(xiàn)參數(shù)化繪圖的方式,再配以優(yōu)化設(shè)計模塊是開發(fā)起重機CAD系統(tǒng)的較好方案。該研究不僅使工程技術(shù)人員可以方便、快捷地設(shè)計并出圖,而且設(shè)計出的產(chǎn)品更加經(jīng)濟實用,能以其鮮明的個性化設(shè)計快速反應企業(yè)投標的需求,以軟件系統(tǒng)載體為企業(yè)界提供現(xiàn)代化設(shè)計和繪圖手段。鑒于全局優(yōu)化的理論尚不很成熟,加上全局優(yōu)化問題屬于NP難題這一本質(zhì)特征,因此,接下來還可以嘗試引入并行化方法或者其他方法,對該系統(tǒng)作進一步深入研究,以使所開發(fā)橋機的CAD系統(tǒng)能更好地推動企業(yè)的科技進步。
[1] 陶元芳,衛(wèi)良保.VC++命令文件式參數(shù)繪圖類庫[J].太原重型機械學院學報,2003,24(4):284-289.
[2] 陶書東.基于組合算法的機械結(jié)構(gòu)優(yōu)化技術(shù)研究[D].太原:太原科技大學,2006.
[3] 鄭榮,龐茂,張亮有.模塊化設(shè)計與參數(shù)化繪圖[J].太原重型機械學院學報,2003,24(1):27-30.
[4] 劉永峰,秦建軍.雙梁門式起重機主梁結(jié)構(gòu)計算機參數(shù)設(shè)計研究[J].機械設(shè)計與制造,2006(9):23-25.
[5] 田仙云.機械CAD軟件參數(shù)化繪圖程序編制的關(guān)鍵技術(shù)[J].機械工程與自動化,2009(3):172-173.
[6] 李學志.計算機輔助設(shè)計與繪圖[M].北京:清華大學出版社,2003.