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