王先明 ,陳榮武,蔡哲揚(yáng)
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 610031)
城市軌道交通運(yùn)行圖自動(dòng)生成的CAD實(shí)現(xiàn)
王先明 ,陳榮武,蔡哲揚(yáng)
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 610031)
基于城市軌道交通平行運(yùn)行圖自動(dòng)生成平臺(tái),提出將生成的運(yùn)行圖導(dǎo)出成CAD腳本,通過CAD軟件來顯示運(yùn)行圖的方法。通過MFC編寫軟件,驗(yàn)證了這種方法的可行性。
列車運(yùn)行圖;自動(dòng)生成;CAD腳本;MFC
列車運(yùn)行圖是用以表示列車在區(qū)間運(yùn)行以及在車站到發(fā)或通過時(shí)刻的技術(shù)文件。它規(guī)定了各次列車占用區(qū)間的程序,列車在每個(gè)車站的到達(dá)和出發(fā)(或者通過)時(shí)刻,列車在區(qū)間的運(yùn)行時(shí)間,列車在車站的停站時(shí)間以及列車交路、列車重量和長(zhǎng)度等,是全路組織列車運(yùn)行的基礎(chǔ)。
本文根據(jù)實(shí)驗(yàn)室編寫的具有通用性的運(yùn)行圖編輯軟件生成的運(yùn)行圖,提出將其轉(zhuǎn)換成CAD腳本語言,利用CAD軟件自動(dòng)出圖的方法。
本文所討論的城市軌道交通列車運(yùn)行圖編輯軟件是利用給定的系統(tǒng)數(shù)據(jù),包括車站數(shù)據(jù)、列車區(qū)間運(yùn)行時(shí)分?jǐn)?shù)據(jù)、線路數(shù)據(jù)以及用戶輸入的列車運(yùn)行間隔、運(yùn)營(yíng)起止時(shí)間來計(jì)劃列車運(yùn)行線路,安排計(jì)劃運(yùn)行線路中列車運(yùn)行車次和設(shè)置運(yùn)行發(fā)車時(shí)間,來完成列車運(yùn)行的計(jì)劃安排,生成列車計(jì)劃安排數(shù)據(jù),并通過計(jì)劃安排數(shù)據(jù)界面實(shí)現(xiàn)運(yùn)行圖的繪制?;玖鞒虉D如圖1所示。
圖1 運(yùn)行圖自動(dòng)生成流程圖
自動(dòng)生成運(yùn)行圖的實(shí)現(xiàn)步驟主要有:
(1)得到用戶提供的車站數(shù)據(jù),區(qū)間運(yùn)行數(shù)據(jù)、停站時(shí)分、站間距等線路基礎(chǔ)數(shù)據(jù)。根據(jù)車站信息和站間距,完成對(duì)運(yùn)行圖底圖的鋪畫。
(2)利用對(duì)話框,系統(tǒng)保存用戶輸入的全日行車計(jì)劃以及交路信息。根據(jù)這些信息,先在每個(gè)時(shí)間段中,盡量等間隔地鋪畫滿足該小時(shí)行車對(duì)數(shù)的上下行運(yùn)行線。
(3)對(duì)列車進(jìn)行虛擬連接,判斷是否滿足列車的折返約束條件,若不滿足則對(duì)所有的運(yùn)行線進(jìn)行平移操作,然后重復(fù)(3);若滿足條件則繼續(xù)下一步。
(4)對(duì)所有的運(yùn)行線進(jìn)行折返連接。對(duì)在高低峰轉(zhuǎn)換時(shí)出現(xiàn)的無法連接的車輛,作為車輛段的出庫列車或入庫列車處理。在進(jìn)行出入庫處理時(shí)需要考慮出入庫方向及車輛段的容量問題。
(5)當(dāng)選擇的車輛段在運(yùn)行線中間某處時(shí),對(duì)列車進(jìn)行出入庫操作后,列車原本的運(yùn)行線會(huì)被截?cái)?,因此?huì)造成在某些車站不滿足全日計(jì)劃的行車對(duì)數(shù)要求,當(dāng)不符合要求時(shí),在初始布線時(shí)添加過渡,判斷生成的運(yùn)行圖是否需要添加過渡,若需要?jiǎng)t設(shè)定需要添加過渡的時(shí)間段及過渡等級(jí),然后重復(fù)(2)~(5);若不需要?jiǎng)t結(jié)束。
城市軌道交通列車運(yùn)行圖編輯軟件利用Microsoft Visual C++6.0集成開發(fā)環(huán)境,是一個(gè)基于MFC的單文本應(yīng)用程序。
根據(jù)列車號(hào)可以遍歷所有列車,一輛列車的運(yùn)行數(shù)據(jù)包括其經(jīng)過的所有車站,每一個(gè)車站都包含相同的數(shù)據(jù)結(jié)構(gòu),MFC中定義的運(yùn)行線數(shù)據(jù)結(jié)構(gòu)和車站數(shù)據(jù)結(jié)構(gòu)的程序如下:
typedef struct _SYS_LINE_DATA_
{
int index;//運(yùn)行線編號(hào)
int dep; //起點(diǎn)站
int depPlat; //起點(diǎn)站臺(tái)
int des; //終點(diǎn)站
int desPlat; //終點(diǎn)站臺(tái)
L D S t a t i o n station[MAX_STAT ION_CNT];//車站數(shù)組
int stationCount; //車站數(shù)量
}SysLineData; //運(yùn)行線數(shù)據(jù)結(jié)構(gòu)
該數(shù)據(jù)結(jié)構(gòu)用于CSysLineData的成員變量CList<SysLineData, SysLineData&> m_lineList
typedef struct _STATION_TIME_DATA_
{
int dep; //起點(diǎn)站
int depPlat; //起點(diǎn)站臺(tái)int perf; //運(yùn)行等級(jí)
int distance; //站間距離
long arrivetime; //到站時(shí)間
long departtime; //離站時(shí)間
int maoziflag; //折返標(biāo)志
}StationTimeData; //車站數(shù)據(jù)結(jié)構(gòu)
該數(shù)據(jù)結(jié)構(gòu)用于CTTRunTimeData的成員變量CList<TTRunTimeData, TTRunTimeData&>m_runTimeList
大交路列車在線路兩端車站進(jìn)行折返,小交路列車在指定的車站進(jìn)行折返。以成都地鐵4號(hào)線為例,讀取列車運(yùn)行數(shù)據(jù)的流程圖如圖2所示。
圖2 讀取列車運(yùn)行數(shù)據(jù)的流程圖
導(dǎo)出的運(yùn)行圖數(shù)據(jù)和其在程序中的表示如表1所示。
表1 運(yùn)行圖數(shù)據(jù)和其在程序中的表示
導(dǎo)出的數(shù)據(jù)中車站名、站間距離、站間運(yùn)行時(shí)分、停站時(shí)間用于在CAD中生成線路的基本信息表格,時(shí)間軸和車站軸則生成運(yùn)行圖的底圖。
在運(yùn)行圖自動(dòng)編輯軟件代碼的基礎(chǔ)上添加ONCAD響應(yīng)函數(shù),在響應(yīng)函數(shù)中編寫以上所提需要導(dǎo)出的運(yùn)行圖數(shù)據(jù)代碼。
由于CAD只識(shí)別CAD腳本文件,所以在讀取數(shù)據(jù)并導(dǎo)出過程中要遵循CAD腳本格式命令,在導(dǎo)出部分的代碼編寫中,[F1]鍵將這些數(shù)據(jù)用CString類的變量自動(dòng)導(dǎo)出到CAD的SCR腳本文件中。
在運(yùn)行圖編輯軟件的工具欄中添加“CAD出圖”菜單項(xiàng),單擊即可完成CAD腳本數(shù)據(jù)的導(dǎo)出過程,如圖3所示。
圖3 CAD出圖
為了方便工程設(shè)計(jì)人員對(duì)運(yùn)行圖的后期編輯,導(dǎo)出部分的代碼按照腳本格式命令,將大交路和小交路放置在不同的圖層,大交路用紅色顯示,小交路用藍(lán)色顯示。并且列車可能出現(xiàn)大小交路混跑的形式,所以在大小交路交界點(diǎn)處將顏色分開顯示。在折返蓋帽時(shí),為了便于識(shí)別,當(dāng)沒有折返重疊時(shí)都用大帽子顯示,當(dāng)有折返重疊時(shí)采用大小帽子交替顯示。
在CAD界面中輸入命令“scr”,在彈出的對(duì)話框中選擇相應(yīng)的腳本文件以打開腳本,CAD顯示中最左邊是線路的基本數(shù)據(jù)表,包括車站名、站間距離、區(qū)間運(yùn)行時(shí)分、停站時(shí)間等數(shù)據(jù)。右邊顯示實(shí)際運(yùn)行圖,其中藍(lán)色線條為小交路,紅色線條為大交路,折返帽子用高低帽區(qū)別顯示。在CAD中的顯示效果如圖4所示。
圖4 CAD運(yùn)行結(jié)果圖
在基于具有一般通用性城市軌道交通運(yùn)行圖自動(dòng)生成平臺(tái)的基礎(chǔ)上,將運(yùn)行圖的數(shù)據(jù)用CAD腳本命令的格式導(dǎo)出,并在CAD軟件中實(shí)現(xiàn)運(yùn)行圖的自動(dòng)鋪畫。此方法的實(shí)現(xiàn),可以在很大程度上減輕編制運(yùn)行圖工作人員勞動(dòng)強(qiáng)度。同時(shí),列車的大小交路和折返帽子放置在了不同圖層,并用不同顏色顯示,為后期運(yùn)行圖的調(diào)整提供方便。
[1] 高強(qiáng)周. 城市軌道交通列車運(yùn)行圖設(shè)計(jì)實(shí)現(xiàn)與評(píng)價(jià)[D].北京:北京交通大學(xué), 2008.
[2] 江志彬,徐瑞華,吳 強(qiáng). 計(jì)算機(jī)編制城市軌道交通共線交路列車運(yùn)行圖[J]. 同濟(jì)大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,38(5): 692-696.
[3] 孫 鑫. VC++深入詳解[M]. 北京:電子工業(yè)出版社,2012.
責(zé)任編輯 方 圓
Train diagram automatic generation by CAD for Urban Transit
WANG Xianming, CHEN Rongwu, CAI Zheyang
( School of Information Science and Technology, Southwest Jiaotong University, Chengdu 610031, China )
This paper proposed a method of creating a CAD script derived by a train diagram based on the platform of Urban Transit train diagram automatic generation. Using the AutoCAD software to display the train diagram. The validity of this design method was verif i ed by MFC.
train diagram; automatic generation; CAD script; MFC
U292.41∶TP39
A
1005-8451(2014)12-0043-03
2014-07-13
王先明 ,在讀碩士研究生;陳榮武,高級(jí)工程師。