田仙云
(太原城市職業技術學院 機電工程系,太原 030027)
開發具有行業特色的產品設計CAD系統,是國外產品自動化設計廣泛應用的一個概念。國內的機械行業在部分產品設計中已經應用了此技術,但具體到起重機行業卻沒有專用的參數化快速設計系統。盡管國內許多高校與科研機構已對此立項研究,但由于方法的局限性,研究結果尚不盡如人意。鑒于此,本文采用現代優化設計方法和參數化技術對傳統設計、計算模型及方法進行技術提升,用優化程序代替設計,實現基于設計數據驅動的命令文件式參數化繪圖,形成具有橋式起重機(以下簡稱橋機)特色的專用CAD系統。本文所述橋機參數化設計軟件,能夠完成從設計、計算直到參數化繪圖的全部過程,使工程設計人員把設計重點放到結構的優化和創新上。其基本理論和方法,對于各種機械產品CAD系統的開發都具有理論指導與工程應用價值。
VC++6.0是由微軟公司推出的一款Windows環境下可視化的面向對象的軟件開發平臺。與Turbo C、Borland C++相比,VC++繼承了C語言結構化編程能力強、運行速度快的優點,能夠在Windows 2000/NT上建立32位應用程序。VC++具有較好的可視化程度,嚴謹的編程風格和完全的面向對象特性。隨著WINDOWS操作系統在微機上的普遍應用,軟件開發平臺也逐漸轉向WINDOWS平臺的面向對象和可視化編程[1]。由于VC++源于C又高于C,可以向Java、C#等網絡開發平臺過渡,因此是當前最佳的軟件開發平臺。以往開發人員雖然看好VC++,但因其較難掌握,故而避選該語言作為編譯環境。筆者認為VC++雖然略難掌握,但對于開發大型軟件系統是非常有益的。而且采用應用程序向導(AppWizard)工具和MFC(微軟基本類庫)后,VC++程序并不難編寫。因此,本文軟件全部選用VC++作為開發工具。
箱形橋架作為橋機的主要承載構件,其自重占整機重量的60%左右[2]。但以往對橋機的優化中,多數設計方法卻只單純對主梁進行優化,這雖能降低計算成本,卻因考慮因素不全而降低了優化效果和整機性能。因此,本文在確保整機性能的基礎上,將最大程度地減輕橋架重量作為優化設計模塊的主要目標。
起重機優化中存在強度、剛度、穩定性、幾何尺寸等大量約束,致使優化變量的可行域非常復雜,而最優點往往在可行域的邊界上,所以傳統的優化方法存在著不容易找到全局最優解的缺點。
針對目前研究較熱的全局優化方法,依據“綜合就是創新”的思想,眾多學者相繼提出了將不同類算法相結合,實現優勢互補,以構造新的混合型算法的思路。雖然已有許多成形的求解軟件,但幾乎都是針對特定問題求解的,有一定的專用性和局限性,尚不存在適合解決任何全局最優解問題的通用算法與軟件。為此,本文在充分分析目前流行的全局和局部最優化算法優缺點的基礎上,重點研究了混合離散變量優化(MDOD)方法和正交網格法,針對正交網格法雖能得到全局穩定解但其效率低下,MDOD 方法雖然效率高,但受初始點影響解的穩定性差,甚至找不到最優解的特點,通過綜合策略設計出一種新的串行結構的混合全局優化方法,即以MDOD和正交網格法為基本框架,盡可能利用MDOD方法優化速度快的優點提高算法的性能,同時利用正交網格法解決MDOD法中存在的不穩定性協同尋優。由于該算法具有“強優弱劣”的綜合機制,因而可以獲得較好的尋優效率和效果。
本文的優化算法程序基于Windows操作系統,以VC++為開發平臺編制,數據庫開發采用Access實現。綜合策略是:首先利用正交表提供的信息在優化變量上下限空間內的可行域中尋找一個局部最優點,并以此最好水平點作為子空間輪變搜索的初始可行點;然后利用目標函數和約束條件的信息,加快搜索進程;最后通過“查點”策略以盡可能少的計算代價找到所有點中的最優點。
參數化繪圖是在給定結構形式的條件下,依據參數自動生成圖紙的一種技術。由于能夠自動出圖,因而可極大地提高設計效率,是開發起重機等專業機械CAD系統的關鍵技術。
參數化繪圖系統開發采用面向對象的技術,在可視化VC++6.0開發環境下,采用命令文件方式對AutoCAD進行二次開發實現,即用支持AutoCAD的編程語言訪問AutoCAD對象模型,把AutoCAD功能集成到應用程序中,實現圖形的自動生成[3]。不同型號的同類產品只需通過參數的改變即可引起所有與它相關尺寸的自動改變,從而使圖形局部或整體發生聯動來更新原設計,避免了交互式繪圖繁瑣的重復勞動,使產品設計更加高效、快捷。
1)參數確定。本軟件的參數來源主要有:結構計算結果的文本數據文件、數據庫中的數據文件、優化后的主要數據參數、經過基本參數計算確定的參數[4];
2)各類參數傳遞到繪圖模塊后,執行VC++6.0編制的橋機繪圖命令程序,生成繪圖命令文件*.SCR;
3)啟動AutoCAD,執行繪圖命令文件,在計算機屏幕上繪出所需要的圖形;
4)對圖形進行校核和修改,修改可以在程序中進行,重復以上步驟;
5)連接繪圖儀,繪出圖紙。
3.3.1 參數化繪圖程序的編制步驟
本文的參數化繪圖以Windows操作系統作支撐系統,AutoCAD為圖形支撐軟件,命令文件作接口,以可視化程序設計語言VC++6.0為開發平臺實現。編寫生成參數化繪圖程序的步驟如圖1所示。

圖1 參數化繪圖程序的編制步驟
3.3.2 編制參數化繪圖程序的主要技術
1)專用函數編制
參數化繪圖程序的編制中,將多次用到的專業通用符號和特殊圖形定義成函數,可避免重復工作,增強代碼的可讀性和提高編程效率。由于命令文件的內容就是AutoCAD的命令及對其提示響應的數據集合,因此在編寫程序代碼前,應先在鍵盤上用交互式繪圖的方式將整個過程操作一遍,確定其輸入的格式、選項及參數后,把其中的數據作為函數的參數即可。判斷是否需要編制專用函數,采取“事不過三”的原則,只要程序中有調用三次以上的程序段,就將其編成函數,使程序代碼大大縮減,達到省時省力、節省存儲空間之目的。下面是繪制表面粗糙度符號的專用函數,其樣式如圖2所示。其他特征圖形、標準符號均可依此編制。


圖2 表面粗糙度符號
2)讀取數據文件
由于繪圖程序中的參數主要來源于各類數據文件,因此數據文件的正確讀取成為參數化繪圖執行成敗的關鍵。其核心程序如下:

3)圖幅、比例的確定
各圖形繪制比例與圖幅大小密切相關,為使不同跨度、噸位的橋機,都能全面、合理地呈現在圖紙幅面上,程序應在確定圖幅大小后,自動判斷不同情況下圖中相應圖形的適用比例。現以實現橋架參數化繪圖程序中比例的確定為例予以說明[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)坐標基點及繪圖坐標點的設置
計算坐標時,圖紙上的各個視圖均應選定一個坐標基點,并將同一視圖中所有的位置坐標值換算成基點坐標的函數,以便靈活地調整視圖,達到一張圖紙中所有視圖的位置合理分布。其中,繪圖坐標點的設置首先要便于繪圖,并達到預定的要求,其次是使程序占用的內存越少越好。由于屏幕中心位置始終是不變的,以往開發人員通常選擇屏幕中心位置或圖形對稱的起點作為坐標基點,但鑒于橋機的實際結構,本文繪圖模塊是以各視圖的結構起始點作為坐標基點,其余位置的坐標值計算則以有利于點的表達確定。
考慮到時間長了修改程序時,可能記不清坐標點的定義方法,所以可采用把詳細的坐標布點圖放在程序內部,或在程序中添加注釋語句等方法。本文采用后一種方法。因為注釋可增加程序的可讀性,不僅便于對程序的閱讀和調試,也便于對程序的維護、移植和擴充[6]。
5)循環、條件語句及夸大畫法的應用
參數化繪圖的特點是參數具有可變性,往往需要編制循環、條件語句。例如:為增加橋機結構穩定性,常需設置隔板、加勁肋等,由于其數量取決于繪圖初始給定的結構參數,并非固定的數值,因此必須采用循環語句方能實現其圖形繪制及相應尺寸、件號、焊縫等標注。再如:橋機主梁因跨度變化幅度大,某些零件的視圖不是每次都能在圖紙上體現其形狀、尺寸,對此必須運用條件語句一一加以判斷選擇,以符合工程實際需要。
工程制圖中規定,繪制厚度小于1mm的薄片時,可將該部分不按原比例而采用夸大畫法。照此規定,編制參數化繪圖程序時,將橋機結構中的板厚采用夸大畫法。凡板厚≥8mm的認為是厚板,反之即認為是薄板。當厚板的實際繪制尺寸小于1 mm 時,程序將其夸大畫為1mm;薄板則夸大畫為0.8mm。

表1 各種方法優化結構對比
為了驗證文中所述理論及軟件效果,對起重量32t、跨度25.5m的橋機進行實例測試,結果表明:
1)混合算法采用了全離散變量,保留了MDOD方法尋找全局最優值的能力和高效性,又集合了正交網格法的穩定性,可減輕鋼結構重量16%,是一種多樣性和收斂性都較好的新算法。文中所述各種方法與起重機設計規范的優化對比結果見表1。
2)參數化繪圖系統不僅操作簡便,而且繪圖結果更加準確、快捷,可大大降低設計人員的勞動強度,提高圖紙的標準化與規格化,切實提高CAD 技術的應用水平和檔次。
通過命令文件實現參數化繪圖的方式,再配以優化設計模塊是開發起重機CAD系統的較好方案。該研究不僅使工程技術人員可以方便、快捷地設計并出圖,而且設計出的產品更加經濟實用,能以其鮮明的個性化設計快速反應企業投標的需求,以軟件系統載體為企業界提供現代化設計和繪圖手段。鑒于全局優化的理論尚不很成熟,加上全局優化問題屬于NP難題這一本質特征,因此,接下來還可以嘗試引入并行化方法或者其他方法,對該系統作進一步深入研究,以使所開發橋機的CAD系統能更好地推動企業的科技進步。
[1] 陶元芳,衛良保.VC++命令文件式參數繪圖類庫[J].太原重型機械學院學報,2003,24(4):284-289.
[2] 陶書東.基于組合算法的機械結構優化技術研究[D].太原:太原科技大學,2006.
[3] 鄭榮,龐茂,張亮有.模塊化設計與參數化繪圖[J].太原重型機械學院學報,2003,24(1):27-30.
[4] 劉永峰,秦建軍.雙梁門式起重機主梁結構計算機參數設計研究[J].機械設計與制造,2006(9):23-25.
[5] 田仙云.機械CAD軟件參數化繪圖程序編制的關鍵技術[J].機械工程與自動化,2009(3):172-173.
[6] 李學志.計算機輔助設計與繪圖[M].北京:清華大學出版社,2003.