楊瑞宇
(鐵道第三勘察設(shè)計院集團(tuán)有限公司,天津 300251)
我國鐵路交通事業(yè)正處于高速發(fā)展階段,隨著鐵路建設(shè)的不斷推進(jìn),信號專業(yè)的設(shè)計任務(wù)依舊繁重,從信號施工圖紙工作量分析,區(qū)間設(shè)計里程長,車站和中繼站數(shù)量多,出圖數(shù)量大,這就需要有快速高效的計算機輔助設(shè)計軟件來代替手工設(shè)計,以減少工程設(shè)計人員的重復(fù)工作量,減少人為差錯,大大提高了設(shè)計質(zhì)量和速度。
CAD提供給設(shè)計人員的只是一些基礎(chǔ)的功能,如果不進(jìn)行二次開發(fā),那最終完成一項具體的設(shè)計就會需要很長時間,比如根據(jù)軌道電路調(diào)整表計算補償電容的個數(shù),每個區(qū)段的長度和電容個數(shù)都需要借助公式一次次的計算,一旦設(shè)計完成后,如果某一閉塞分區(qū)的頻率改變,則需要重復(fù)剛才的全部內(nèi)容,大大降低了設(shè)計效率和設(shè)計的準(zhǔn)確性。如果基于AutoCAD平臺進(jìn)行二次開發(fā),把圖表轉(zhuǎn)換成數(shù)據(jù)庫,將公式計算和專業(yè)性圖形繪制編成程序,開發(fā)出專業(yè)化的繪圖軟件,設(shè)計者只需編寫基礎(chǔ)數(shù)據(jù)就可完成出圖任務(wù),將大大提高設(shè)計效率。從AutoCAD2006開始,Autodesk為其開發(fā)增加了.NET API,使開發(fā)人員可在.NET框架下,使用任何支持.NET的語言,如 VB.NET、C#語言等對AutoCAD進(jìn)行二次開發(fā)。在各種設(shè)計語言中,從開發(fā)方式能力范圍,開發(fā)環(huán)境的難易程度及開發(fā)環(huán)境性能方面比較,基于.NET平臺對AutoCAD進(jìn)行二次開發(fā),可充分利用.NET的各種優(yōu)勢,在保證功能強大的前提下大大提高開發(fā)速度[1]。
二次開發(fā)是在已有的軟件上進(jìn)行的,它不同于一般的軟件開發(fā),并非從底層開始,故其最大的特點就是繼承性;二次開發(fā)是針對特定用戶進(jìn)行的,因此開發(fā)人員既要懂專業(yè)知識,又要具備軟件開發(fā)能力;二次開發(fā)是為了滿足特定用戶的特殊需求,因此可大幅度提高工作效率;二次開發(fā)是要解決實際工作中遇到的問題,直接影響工作進(jìn)度,因此在時間上具有緊迫性能;二次開發(fā)要求對支撐軟件有深入的了解,因此工作量大,任務(wù)復(fù)雜。
針對ZPW-2000R工程設(shè)計開發(fā)的區(qū)間輔助設(shè)計軟件從子系統(tǒng)設(shè)計角度看,可分為平面、電纜徑路和自閉電路等部分;從軟件處理對象來看,可分為室內(nèi)和室外設(shè)計部分;不同設(shè)計部分之間存在著數(shù)據(jù)交互關(guān)系,程序設(shè)計之前需要事先規(guī)定好模塊間的數(shù)據(jù)接口,最終通過ACAD圖形輸出設(shè)計成果。在設(shè)計過程中不容易整合到各設(shè)計模塊中的環(huán)節(jié),可以逐一做成小模塊,以CAD子菜單命令的形式存在,在軟件輸出設(shè)計成果后可調(diào)用命令修改。由于室外和室內(nèi)部分的設(shè)計標(biāo)準(zhǔn)化程度高,也因此減少了設(shè)計人員重復(fù)的繪圖和計算工作,提高了設(shè)計工效和準(zhǔn)確率。
本次開發(fā)的區(qū)間程序以實用化為目標(biāo),采用了模塊組件和參數(shù)化的設(shè)計思想,有利于根據(jù)需要對軟件進(jìn)行修改和擴展。首先,將設(shè)計目標(biāo)的功能細(xì)化,專業(yè)化,通過學(xué)習(xí)設(shè)計標(biāo)準(zhǔn)和設(shè)計原則尋求設(shè)計目標(biāo)的精確性;然后采用組件設(shè)計實現(xiàn)復(fù)雜化向通用化轉(zhuǎn)變,將設(shè)計目標(biāo)按功能和內(nèi)容劃分為各級子模塊,有些模塊是通用的,若設(shè)計標(biāo)準(zhǔn)有所改變,只需修改相應(yīng)模塊,而對原有的程序不做或很少做改動。本程序所劃分的各模塊及其相互關(guān)系如圖1所示。
圖1 模塊調(diào)用關(guān)系
區(qū)間平面圖設(shè)計過程中的一個重要思想就是分段處理,在平面圖繪制過程中,必須要以包含區(qū)間布點信息、線路上橋遂信息、中繼站設(shè)置情況的平面數(shù)據(jù)作為輸入條件[2],計算信號樓(中繼站)、進(jìn)出站信號機、通過信號機、軌道電路分割點以及斷鏈和橋遂的坐標(biāo),計算后將這些數(shù)據(jù)分段存放在數(shù)據(jù)表中,在CAD2006以后的版本中,可將算法封裝成CAD命令,直接調(diào)用就可分段繪制出所需的區(qū)間平面圖框架??蚣芡瓿珊?,還需計算每段軌道電路的長度、補償電容的個數(shù)、步長及頻率,前3項是要根據(jù)具體的軌道電路調(diào)整表完成的,補償電容的大小和頻率有關(guān),針對普速線路來說,頻率是按站間來布置的,也可利用分段的思想來解決頻率及電容大小的布置,這也是程序設(shè)計中的難點;另一個難點就是連續(xù)橋遂分段后的處理,即同一架橋體現(xiàn)在兩段區(qū)間平面中,另外還要注意橋的類型是單邊橋還是雙線橋。程序中要注意的地方很多,對于斷鏈表,需要考慮加入斷鏈表后,斷鏈里程后的實際里程如何轉(zhuǎn)換為在平面圖中的實際位置,要對圖紙圖面進(jìn)行合理長度的處理。分段思想利用了程序的循環(huán)結(jié)構(gòu),減小了繪圖的工作量,提高了出圖的精確性。平面流程如圖2所示。
圖2 區(qū)間平面圖數(shù)據(jù)處理流程
雙線及電纜徑路圖的設(shè)計輸入條件為信號平面布置圖,程序設(shè)計中要考慮區(qū)間干線電纜的走向及過軌位置,電纜是單側(cè)敷設(shè)還是雙側(cè)敷設(shè);在有單線橋的地方,還要根據(jù)橋上是否有設(shè)備以及根據(jù)信號樓(或中繼站)的位置來確定電纜是否要分開繞行;信號樓(或中繼站)在橋下時電纜的彎曲系數(shù);軌道電路發(fā)送/接收的電纜型號及分頻使用要求等。程序就是按照以上設(shè)計原則布置各設(shè)備干線及支線電纜的走行情況,計算各根電纜長度及芯線使用情況。
ZPW-2000R區(qū)間自閉的室內(nèi)圖紙包括架柜布置圖、閉塞分區(qū)電路圖、其他接線圖及側(cè)面配線四部分[3]。依據(jù)平面圖生成的有效數(shù)據(jù)完成架柜布置,架柜布置圖是電路圖的基礎(chǔ),電路圖又是側(cè)面配線圖的基礎(chǔ),幾個模塊獨立設(shè)計,僅在數(shù)據(jù)交互部分有接口,架柜布置圖作為所有設(shè)計圖紙的根源,必須以廠家提供的技術(shù)資料作為設(shè)計依據(jù),程序要讀取所有相關(guān)的數(shù)據(jù)后生成如綜合柜和移頻柜等機柜的布置圖,移頻柜用于安裝發(fā)送器、功放器、接收器和衰耗器等設(shè)備,綜合柜包括防雷模擬網(wǎng)絡(luò)層一個零層;另外,還需考慮設(shè)備升級后軟件模塊修改的簡便性。不同的設(shè)備廠商在繼電器驅(qū)動方式、采集接口方式等方面存在較大差異,需要該軟件模塊能對多廠家信息處理,考慮同軟件平臺、數(shù)據(jù)分級管理的方式對數(shù)據(jù)進(jìn)行處理,利用C#語言與ACAD的接口對象生成最終圖紙。
室外電纜配線模塊的輸入條件是電纜徑路圖,輸出為每根電纜的長度,芯線的使用情況,接線盒內(nèi)端子的分配情況,由于設(shè)備種類較為單一,配線關(guān)系也較為簡單[4]。
3.6.1 基礎(chǔ)數(shù)據(jù)的讀寫
本程序的所有后臺數(shù)據(jù)都是按格式寫入EXCEL表格中的,包括自行編制的平面數(shù)據(jù)及其他專業(yè)提供的橋隧數(shù)據(jù)和斷鏈表,要通過C#語言實現(xiàn)CAD與EXCEL的數(shù)據(jù)交互,首先必須通過引用EXCEL的COM組件并將其轉(zhuǎn)換成.NET組件才可在程序中正常調(diào)用EXCEL表格中的數(shù)據(jù)。考慮到程序的最后打包問題,C#語言連接EXCEL時最好使用相對路徑,否則程序打包后移到其他客戶端就會出錯,可以用application.startpath()來得到應(yīng)用程序的相對路徑。
3.6.2 文本文件中數(shù)據(jù)的讀寫
根據(jù)C#語言提供的文件讀取功能,開發(fā)者只需調(diào)用相應(yīng)函數(shù)就可將平面生成過程中的有效數(shù)據(jù)寫入文檔,此功能是為后續(xù)電路部分提供相關(guān)依據(jù),后續(xù)部分只需從文本中讀入所需數(shù)據(jù)即可。
本次開發(fā)的ZPW-2000R區(qū)間輔助設(shè)計軟件基于AutoCAD2004平臺,在.NET2010開發(fā)環(huán)境下利用C#語言進(jìn)行了鐵路信號專業(yè)區(qū)間圖紙的設(shè)計與開發(fā),目前已經(jīng)成功運用于集通線ZPW-2000R段的信號施工圖紙中,在設(shè)計周期短的形勢下,快速準(zhǔn)確、保質(zhì)保量的完成了設(shè)計任務(wù),為各站按時開通奠定了基礎(chǔ)。
該設(shè)計軟件目前只是應(yīng)用于客貨混線路,針對其他客運專線、普速線路以及非常規(guī)站的情況,在今后的過程中還需要做進(jìn)一步擴展和完善工作,期望能滿足各種線路及車站的設(shè)計要求。
[1]張晉西.Visual Basic.NET二次開發(fā)AutoCAD范例精解[M].北京:清華大學(xué)出版社,2004.
[2]李紅俠,李江.客運專線施工設(shè)計階段信號與相關(guān)專業(yè)接口總結(jié)分析[J].鐵道標(biāo)準(zhǔn)設(shè)計,2011(2):113-115.
[3]林瑜筠.區(qū)間信號自動控制[M].北京:中國鐵道出版社,2008.
[4]張敏慧.高速鐵路信號施工圖設(shè)計特點及輔助軟件實現(xiàn)[J].鐵路計算機應(yīng)用,2011(3):43-49.