米小珍,蘇允飛,王楓
(1.大連交通大學(xué) 交通運輸工程學(xué)院,遼寧 大連 116028; 2.大連交通大學(xué) 機械工程學(xué)院,遼寧 大連 116028; 3.大連交通大學(xué) 現(xiàn)代軌道交通研究院,遼寧 大連 116028)
?
動車組車體快速設(shè)計系統(tǒng)研究與優(yōu)化
米小珍1,蘇允飛2,王楓3
(1.大連交通大學(xué) 交通運輸工程學(xué)院,遼寧 大連 116028; 2.大連交通大學(xué) 機械工程學(xué)院,遼寧 大連 116028; 3.大連交通大學(xué) 現(xiàn)代軌道交通研究院,遼寧 大連 116028)
對動車組車體快速設(shè)計系統(tǒng)的模型參數(shù)化、程序設(shè)計及實現(xiàn)進行研究.采用基于骨架自頂向下、模塊化、參數(shù)化及Pro/Program的設(shè)計方法創(chuàng)建車體參數(shù)化模型,借助Pro/Toolkit二次開發(fā)工具及Visual Studio開發(fā)環(huán)境,完成車體快速設(shè)計系統(tǒng)的開發(fā)和系統(tǒng)優(yōu)化.指出系統(tǒng)程序優(yōu)化的重點主要在于車窗車門部分快速設(shè)計的程序?qū)崿F(xiàn),并提出基于代碼調(diào)整和算法結(jié)構(gòu)兩個層級的優(yōu)化策略,代碼調(diào)整方法通過調(diào)用自定義函數(shù)的方法來優(yōu)化車窗車門程序,算法結(jié)構(gòu)方法從程序邏輯結(jié)構(gòu)的角度對車門程序進行了優(yōu)化.最后對比分析了兩種方法的優(yōu)缺點,確定在動車組車體快速設(shè)計系統(tǒng)程序設(shè)計過程中采用函數(shù)調(diào)用的方法更加合適.
動車組車體;快速設(shè)計;系統(tǒng)優(yōu)化;參數(shù)化
動車組的引進為我國鐵路客運帶來更大的發(fā)展空間,如何在成熟車型基礎(chǔ)上快速開發(fā)新的車型系列、縮短產(chǎn)品開發(fā)周期、快速響應(yīng)市場變化、降低成本、提高經(jīng)濟效益,是企業(yè)面臨的重要挑戰(zhàn).動車組車體是大型裝配體結(jié)構(gòu),其三維模型具有信息量大、結(jié)構(gòu)復(fù)雜和參數(shù)多等特點.采用基于骨架的自頂向下[1-3]、模塊化、參數(shù)化及Pro/Program設(shè)計方法創(chuàng)建車體參數(shù)化模型[4-7],創(chuàng)建具有多層骨架體系結(jié)構(gòu)的多模塊參數(shù)化車體組件,建立該模型各模塊各層級骨架關(guān)聯(lián)關(guān)系,利用Pro/Program和骨架參數(shù)分別控制多模板車窗的自由組合,并確保整個組件結(jié)構(gòu)的變化一致性,可以保證車體快速設(shè)計中模型的正確再生.
在對車體進行快速設(shè)計開發(fā)中,參數(shù)化模型需要具備組件協(xié)同變型的功能,即當(dāng)改變頂層結(jié)構(gòu)尺寸時,底層的相關(guān)結(jié)構(gòu)尺寸同步變化,亦可理解為設(shè)計信息在整個組件中正確傳遞;同時參數(shù)化模型要滿足車窗、車門等數(shù)量及結(jié)構(gòu)隨著列車編組的不同呈現(xiàn)出多樣性的特點.參數(shù)化模型建立之前,需要合理選擇建模方法、骨架層次結(jié)構(gòu)及設(shè)計參數(shù),建模方法不僅體現(xiàn)了建模過程,同時也反應(yīng)了產(chǎn)品設(shè)計思想.選擇不同方法建立模型樹結(jié)構(gòu)、模型參數(shù)及尺寸,程序結(jié)構(gòu)與實現(xiàn)方法也不盡相同.與簡單模型不同,復(fù)雜模型中參數(shù)化建模占據(jù)了更為重要的位置,直接影響系統(tǒng)程序設(shè)計和程序質(zhì)量,優(yōu)質(zhì)的程序可讀性及穩(wěn)定性好、易于管理,且方便系統(tǒng)的后續(xù)開發(fā)與維護.因此,在參數(shù)化模型成功創(chuàng)建及系統(tǒng)正確實現(xiàn)后,對系統(tǒng)程序作進一步的優(yōu)化是非常必要的.
本文在Pro/Engineer環(huán)境下,通過參數(shù)化建模配合Pro/Program二次開發(fā)方法實現(xiàn)了車體模型的快速創(chuàng)建,并借助Pro/Toolkit二次開發(fā)[8-12]工具及Visual Studio開發(fā)環(huán)境,完成了車體快速設(shè)計系統(tǒng)的開發(fā)和系統(tǒng)優(yōu)化.
1.1 車體快速設(shè)計系統(tǒng)實現(xiàn)方法
快速設(shè)計系統(tǒng)主要通過參數(shù)化建模配合Pro/Toolkit二次開發(fā)的方法來實現(xiàn).參數(shù)化建模采用自頂向下、模塊化、參數(shù)化及Pro/Program設(shè)計方法創(chuàng)建參數(shù)化模型.利用骨架建模功能,創(chuàng)建多層骨架結(jié)構(gòu)的多模塊車體模型,在TBS模型(頂層基礎(chǔ)骨架)中定義參數(shù)并設(shè)定尺寸關(guān)系,完成車體模型的參數(shù)化,將各模塊所需幾何信息相關(guān)特征進行發(fā)布,底層骨架復(fù)制發(fā)布幾何,繼承參數(shù),實現(xiàn)設(shè)計參數(shù)在整車模型自TBS向下的完美傳遞,并通過Pro/Program程序IF......END IF語句控制模型某類型車窗模板的顯示與否以及各級骨架之間變化的一致性,完成參數(shù)化模型的正確再生.同時,基于Pro/Toolkit底層函數(shù)實現(xiàn)Visual Studio環(huán)境下系統(tǒng)編程,創(chuàng)建動態(tài)鏈接庫(dll)工程文件,設(shè)計人性化的MFC對話框,開發(fā)具備友好操作界面的車體快速設(shè)計系統(tǒng).
從開發(fā)角度,基于多層骨架的動車組車體快速設(shè)計系統(tǒng)包括三部分:參數(shù)化模型、工程文件、注冊文件.參數(shù)化模型是快速設(shè)計系統(tǒng)的基礎(chǔ),其實現(xiàn)方法受系統(tǒng)功能需求所限制,而建模方法和過程決定了程序的實現(xiàn)過程,進一步影響到程序的質(zhì)量.工程文件是實現(xiàn)系統(tǒng)功能的核心,涉及資源添加與源文件編制.資源文件包括圖片、對話框等,對話框利用控件編輯工具完成交互界面的設(shè)計,創(chuàng)建可視化人機交互界面;源文件是程序開發(fā)的核心,主程序源文件包含系統(tǒng)程序的入口點和結(jié)束點,其他源文件通過創(chuàng)建基于CDialog類的子類來添加,其中定義對話框相關(guān)控件的數(shù)據(jù)變量,控件屬性,消息傳遞,按鈕功能及初始化函數(shù)等;注冊文件是一個*.dat文本文件,主要用來啟動系統(tǒng)經(jīng)過編譯后生成的dll動態(tài)鏈接庫.
1.2 車體參數(shù)化建模技術(shù)
車體承載結(jié)構(gòu)主要由底架、側(cè)墻、車頂、端墻組成.底架通常掛靠鑲嵌各種附件;側(cè)墻結(jié)構(gòu)有車窗車門及一些用于內(nèi)裝等的C型或L型導(dǎo)軌,其中,中間車兩端都有車門,頭車有一個車門,餐車沒有車門;車頂分高頂、平頂,安裝的設(shè)備包括空調(diào)、受電弓等;端墻主要由門框、角柱、端墻板和端墻附件四部分組成[13-14],因此,模塊化車體模型主要包括底架、側(cè)墻、車頂、端墻四個模塊.
車體參數(shù)化模型的創(chuàng)建,要充分考慮后續(xù)變化的靈活性和設(shè)計變型的一致性,保證車體設(shè)計參數(shù)能完整地復(fù)制表達到各部件中,確保參數(shù)的完整傳遞才能使相關(guān)的設(shè)計修改最大限度地由計算機自動完成.利用Pro/E骨架模型的“發(fā)布、復(fù)制幾何”方式實現(xiàn)設(shè)計意圖自頂向下傳遞,創(chuàng)建多層骨架體系結(jié)構(gòu),進而達到整車設(shè)計參數(shù)傳遞以及各部件模型之間的設(shè)計關(guān)聯(lián).
根據(jù)車體結(jié)構(gòu)特點及功能需要,創(chuàng)建過程分為五部分,包括車體多層骨架模型、車頂子組件、側(cè)墻子組件、端墻子組件、底架子組件.首先創(chuàng)建車體多層骨架模型,依次添加各子組件,各子組件通過骨架結(jié)構(gòu)實體化生成.多層骨架中TBS模型最先被創(chuàng)建,位于模型樹的頂端,其包括車體設(shè)計所需要的全部特征參數(shù)及參照,特征參數(shù)主要包括車體、車窗、車門及切口等結(jié)構(gòu)的相關(guān)參數(shù),參照主要包括坐標(biāo)、點、線、面,除用來確定結(jié)構(gòu)空間位置,還可定義尺寸關(guān)系.Pro/Engineer提供的參數(shù)、關(guān)系工具可以對模型進行參數(shù)化,通過參數(shù)和關(guān)系定義實現(xiàn)TBS模型中自定義參數(shù)與模型特征某一尺寸的關(guān)聯(lián),完成對TBS模型的參數(shù)化,參數(shù)化過程中所涉及的參數(shù)本系統(tǒng)定義為設(shè)計參數(shù).對已參數(shù)化的TBS模型中各子組件需要的幾何特征進行發(fā)布,各子組件通過復(fù)制已發(fā)布的相應(yīng)幾何特征,來繼承該模塊所需參數(shù)及參照,創(chuàng)建各自對應(yīng)的子骨架模型,構(gòu)建出多層骨架模型體系結(jié)構(gòu),實現(xiàn)車體信息自頂向下的傳遞及車體組件中各子組件之間的關(guān)聯(lián)性.
至此,宏觀角度,參數(shù)化車體模型的創(chuàng)建基本完成,微觀角度的局部問題——車窗車門自由設(shè)計——還沒得到實現(xiàn),車窗結(jié)構(gòu)和數(shù)量的設(shè)計采用多模板獨立控制的方法,而車門采用兩端獨立控制,通過Pro/Program編制自定義變量和程序控制某一車窗類型模板及某端車門的顯示與否,實現(xiàn)車窗車門變化多樣性的要求,最終完成全部車體快速設(shè)計,該部分所涉及變量本系統(tǒng)定義為控制變量.
車體快速設(shè)計系統(tǒng)中除側(cè)墻上車門車窗結(jié)構(gòu)外,其他結(jié)構(gòu)的快速設(shè)計都基于唯一尺寸驅(qū)動,即不管何種情況驅(qū)動參數(shù)始終保持不變.車門車窗除了大小尺寸需要變化外,數(shù)量也需呈現(xiàn)多樣性,同時保證同一數(shù)量情況下各個窗口之間參數(shù)互不干涉.基于車體中間窗數(shù)量一般在8~11之間變化,系統(tǒng)采用多模板方法來解決,該方法具有直觀,容易理解,便于實施的優(yōu)點,如圖1所示.
側(cè)墻上一位端車門、一位端小窗、中間大窗、二位端小窗、二位端車門五部分是相互對立的模塊,任何一個模塊的調(diào)用都不影響其他模塊.一位端小窗、每種中間大窗類型和二位端小窗又各自分別包括內(nèi)大外小、內(nèi)小外大及直通三種車窗切口,三種形式彼此獨立.通過小窗與大窗的自由組合,生成多種車窗類型,實現(xiàn)車窗快速設(shè)計;車門通過對一二位端門獨立控制,實現(xiàn)車門的自由設(shè)計.由于車體模型具有多層骨架體系結(jié)構(gòu),因此,當(dāng)選擇一種車窗類型后,每層骨架都需要定義相關(guān)的控制變量,即Pro/Program定義的變量,以保證各層骨架中車門數(shù)量和車窗數(shù)量及切口形式的一致性.每個變量的完整控制需要調(diào)用ProStringToWstring()、 ProStringToWstring() 、ProParameterValueSet() 等5個Pro/Toolkit底層函數(shù)語句.
圖1 車窗車門多模板方法
當(dāng)定義的控制變量越多,重復(fù)使用的Pro/Toolkit函數(shù)越多,導(dǎo)致代碼無節(jié)制變長,只要變量增加,代碼長度就增加,使程序變得臃腫,可讀性降低,不便于程序管理,更不便于系統(tǒng)的后續(xù)開發(fā).所以,車窗車門快速設(shè)計的程序?qū)崿F(xiàn)是提高車體快速設(shè)計系統(tǒng)程序質(zhì)量的首要問題,也是車體快速設(shè)計系統(tǒng)優(yōu)化的主要重點.
圖2 車窗車門程序流程圖
車體快速設(shè)計系統(tǒng)程序優(yōu)化從程序結(jié)構(gòu)和代碼兩方面進行優(yōu)化.程序結(jié)構(gòu)優(yōu)化從代碼調(diào)整角度進行優(yōu)化,代碼優(yōu)化從算法角度進行,它們依次產(chǎn)生更顯著的優(yōu)化效果.針對車窗車門存在的問題,從代碼調(diào)整和算法結(jié)構(gòu)兩個層級分別給出優(yōu)化策略.優(yōu)化前車窗車門快速設(shè)計程序流程圖如圖2所示.其中每個變量的控制需要5個語句,大窗4個變量,小窗8個變量.小窗有三種情況:0個、1個、2個.所以在不考慮其他相關(guān)變量、語句的情況下,循環(huán)體中車窗變量控制語句行數(shù)達到280行,每次執(zhí)行有120行.其中,反復(fù)大量使用卻只有5個語句,唯一不同的是函數(shù)實參列表.
車體一位側(cè)兩端車門與二位側(cè)兩端車門分別是各自獨立的四個模塊,各層骨架中都單獨控制.系統(tǒng)程序為了使車門控制更加靈活,每側(cè)車門給出0、1、2三種情況,每個變量的控制需要5個語句,循環(huán)體中完整控制車門變化需要300行語句,每次執(zhí)行其中100行.
3.1 基于代碼調(diào)整的優(yōu)化策略
代碼調(diào)整主要面向代碼,是一種局部的思維方式.將上述重復(fù)使用的Pro/Toolkit函數(shù)定義為具有特定功能的自定義函數(shù),并在程序源文件開始部分添加函數(shù)的聲明,通過調(diào)用該函數(shù)來控制車門車窗數(shù)量和切口類型的快速變形.
通過調(diào)用自定義函數(shù)進行優(yōu)化后,車窗部分循環(huán)體中控制語句只有56行,每次執(zhí)行的有24行,車門部分循環(huán)體控制語句只有60行,每次執(zhí)行20行,顯著的減少車窗車門程序代碼長度,程序更加簡潔,方便管理,提高車體快速設(shè)計系統(tǒng)整體質(zhì)量.
3.2 基于算法結(jié)構(gòu)的優(yōu)化策略
算法結(jié)構(gòu)強調(diào)的重點是針對問題的算法,即選擇和構(gòu)造適合于問題的算法.由于車門兩側(cè)變量的設(shè)置很相似,利用條件表達式可以從程序邏輯結(jié)構(gòu)上進行優(yōu)化,優(yōu)化后的程序流程圖如圖3所示.
在不考慮其他相關(guān)變量、語句情況下,上述程序循環(huán)體中車門完整控制需要45行語句,每次執(zhí)行41行,縮短了代碼長度,雖然相對函數(shù)調(diào)用執(zhí)行語句的行數(shù)有所增加,但運行速度得到了提高.缺點是條件表達式復(fù)雜,for循環(huán)語句及switch和 if控制語句相互嵌套使程序的可讀性降低,導(dǎo)致程序不夠靈活,即車門部分相關(guān)變量名稍微的改動,程序的變動量很大,甚至必須重新編寫.可以看出,優(yōu)化代碼和優(yōu)化速度實際上是一個予盾的統(tǒng)一,一般優(yōu)化了代碼的尺寸(指執(zhí)行的代碼),就會帶來執(zhí)行時間的增加,如果優(yōu)化了程序的執(zhí)行速度,通常會帶來代碼增加的副作用,很難魚與熊掌兼得,只能在設(shè)計時掌握一個平衡點.根據(jù)具體情況,本系統(tǒng)采用自定義函數(shù)調(diào)用的方法,以滿足車體快速設(shè)計系統(tǒng)變動的需要.
圖3 優(yōu)化后的車門程序流程圖
通過對車體快速設(shè)計系統(tǒng)模型參數(shù)化、程序設(shè)計及實現(xiàn)的具體研究與分析,車體參數(shù)化模型主要采用基于骨架自頂向下、模塊化、參數(shù)化及Pro/Program的設(shè)計方法來創(chuàng)建,并利用Pro/Toolkit二次開發(fā)工具及Visual Studio開發(fā)環(huán)境,完成車體快速設(shè)計系統(tǒng)的開發(fā)和系統(tǒng)優(yōu)化.同時,總結(jié)了系統(tǒng)優(yōu)化的重點在于車窗車門部分快速變形的程序?qū)崿F(xiàn),并從代碼調(diào)整和算法結(jié)構(gòu)兩個層級對系統(tǒng)進行了優(yōu)化.代碼調(diào)整通過自定義函數(shù)調(diào)用的方法對車窗車門程序進行優(yōu)化,該方法達到了很好的程序優(yōu)化效果,算法結(jié)構(gòu)從程序邏輯結(jié)構(gòu)角度對車門進行優(yōu)化,雖然該方法優(yōu)化了代碼,提高了運行速度,但程序可讀性及靈活性降低了.針對本系統(tǒng)實際情況,在系統(tǒng)程序設(shè)計過程中采用函數(shù)調(diào)用的方法更加合適.
[1]齊從謙,賈偉新.支持變型設(shè)計的裝配模型建模方法研究[J].機械工程學(xué)報,2004,40(1):38-42.
[2]劉釗,付亮,何玉玲.Pro/E自頂向下方法在復(fù)雜機械設(shè)計中的應(yīng)用[J].機械設(shè)計與研究,2011(5):18-20,24.
[3]王旭龍.自頂向下技術(shù)在高速車體設(shè)計中的研究與應(yīng)[D].大連:大連交通大學(xué),2012.
[4]齊從謙,崔瓊瑤.基于參數(shù)化技術(shù)的設(shè)計方法研究[J].機械設(shè)計與研究,2002,18(5):13-15.
[5]梁琪,李世國,卜瑩瓊.基于Pro/E的漸開線齒輪參數(shù)化設(shè)計[J].計算機工程與設(shè)計,2005,12:3194-3195,3198.
[6]鄧小林,劉夫云.基于參數(shù)化技術(shù)的零件變型設(shè)計方法[J].機械設(shè)計與研究,2008,24(4):47-49.
[7]米小珍,楊 勇,王 楓,等.動車組側(cè)墻快速設(shè)計研究開發(fā)與應(yīng)用[J]. 機械設(shè)計與制造,2013,12:50-52,56.
[8]張繼春.Pro/Engineer 二次開發(fā)實用教程[M].北京:北京大學(xué)出版社,2003:333-339.
[9]李世國.Pro/Toolkit程序設(shè)計[M].北京:機械工業(yè)出版社,2003:123-135.
[10]王恒,寧汝新,張旭,等.利用MFC二次開發(fā)Pro/E[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2004(6):869-872.
[11]吳立軍,陳波.Pro/Engineer 二次開發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2006:45-55.
[12]繆燕平,何柏林.Pro/Toolkit對Pro/E二次開發(fā)參數(shù)化設(shè)計系統(tǒng)研究[J].機械設(shè)計與制造,2008(9):185-187.
[13]吳作偉,丁莉芬.動車組車體結(jié)構(gòu)與車內(nèi)設(shè)備[M].北京:北京交通大學(xué)出版社,2012:50-64.
[14]張碩韶,王建功,白彥超,等.高速動車組鋁合金車體設(shè)計[J].中國鐵路,2013(2):43-47.
Research and Optimization of Rapid Design System for EMU Body
MI Xiaozhen1,SU Yunfei2,WANG Feng3
(1.School of Traffic and Transportation Engineering,Dalian Jiaotong University,Dalian 116028,China; 2.School of Mechanical Engineering,Dalian Jiaotong University,Dalian 116028,China; 3.Modern Railway & Transportation Institute,Dalian Jiaotong University,Dalian 116028,China)
The parametric models, program design and implementation of rapid design system for EMU Body are studied.EMU body models are created by use of top-down skeleton,parametric and modular technologies,and the rapid design system is implemented on Visual studio by Pro/Toolkit.The main focus of the program optimization is the implement of rapid design for windows and doors on body.Two levels of optimization strategies are proposed based on code adjustment and algorithm structure.The code adjusting method is used to optimize the rapid design of windows and doors by calling self-defined functions.The algorithm method is used to optimize the rapid design of body doors from the perspective of the logical structure.The advantages and disadvantages of the two methods are compared and analyzed,and the function calling method is more appropriate in the system program design.
EMU body;rapid design;system optimization;parametric design
1673-9590(2015)03-0043-05
2014-10-10
米小珍(1962-),女,教授,博士,主要從事企業(yè)集成、協(xié)同設(shè)計與集成管理的研究E-mail:mxz@djtu.edu.cn.
A