楊 震,黃小鋼
(中鐵第四勘察設計院 設備處,武漢 430063)
基于VBA的機車交路圖計算機輔助繪圖系統研究
楊 震,黃小鋼
(中鐵第四勘察設計院 設備處,武漢 430063)
機車交路圖是鐵路組織列車運行的基礎性文件,采用AutoCAD的原始制圖命令進行制圖操作,效率較低且容易出錯。本文采用AutoCAD VBA二次開發,開發了基于參數輸入的機車交路圖計算機輔助繪圖系統,實現了機車交路圖的快速生成和修改。
機務;機車交路;輔助繪圖系統
我國鐵路設計正朝著信息化、規范化、智能化、現代化的方向發展,機務是鐵路建設的一個重要組成部分,而機車交路圖是機務部門組織運輸生產活動的基礎,是繪制機車周轉圖的重要依據,規范、清晰的機車交路圖,對提高機車運用效率具有重要意義。當前設計人員多采用通用繪圖軟件AutoCAD進行機車交路圖的繪制,該方法勞動強度大、工作效率低,隨著鐵路運輸的頻繁變化,已無法滿足鐵路信息化的發展需求[1]。周智勇[2]采用C++ Builder語言開發了運行于Windows 98操作系統下的機車交路圖輔助設計系統,隨著計算機技術的更新換代,該系統的適用性已稍顯不足;李鳴[3]基于MFC類庫采用C++語言開發了獨立于AutoCAD的機車交路圖設計軟件,但由于目前機車交路圖的設計、傳遞、打印、存檔等均以AutoCAD為介質,使得該軟件的普及較為困難。
本系統采用VBA語言對AutoCAD進行二次開發,基于模塊化設計思想,以面向對象方式進行編程,采用GDI圖形界面技術設計人機交互界面,調用Windows API接口進行預覽圖顯示,調用AutoCAD ActiveX接口進行圖形自動繪制,實現了機車交路圖的計算機輔助繪制,使用戶只需輸入參數,無需使用AutoCAD繪圖命令,即可完成機車交路圖的繪制。
1.1 繪圖內容要求
繪制出各種類型的站段,如內燃機務段、機務折返段等,繪制出各種類型的機車交路,如立折交路、肩回交路等。站段、交路屬性齊全,站段名稱、位置等可修改,交路顏色可變,可添加、修改、刪除途徑站段,交路要素表要素齊全,可修改。需保證交路元素的相關性,交路的形狀會根據途徑站段的變化而變化,圖例內容與站段和交路元素始終保持一致。
1.2 繪圖方式要求
一張完整的機車交路圖包含有站段、機車交路、交路要素表、圖例、標題、圖框等元素,元素種類較少,數量較多,重復工作量較大。同時站段、機車交路等元素間關聯緊密,一處小的修改可能會導致整個圖面的變化,使用AutoCAD繪圖及修改較為繁瑣。
通過軟件開發,采用圖形界面和參數驅動相結合的方式,提供機車交路圖繪制的全新手段,取代手工繪制的方式。開發友好的人機交互界面,提供站段信息、交路信息、邊框、標題、圖例、方案數量等基本信息的規范輸入格式,并提供預覽功能,保證用戶交互簡潔、方便、易懂,如圖1所示。

圖1 軟件用戶界面
根據需求分析,以模塊化的思想進行軟件框架的設計,將軟件分為4個模塊:用戶交互界面、后臺數據處理、CAD自動出圖、文件存取,各模塊之間關系密切,同時又相對獨立,各模塊之間的聯系如圖2所示。各模塊又細分為多個子模塊,圖3為軟件功能模塊劃分圖。

圖2 軟件框架圖
用戶交互界面:采用GDI圖形界面技術開發人機交互界面,交互界面分區設置,包含了站段、交路、邊框、標題、圖例、方案等信息,為用戶提供這些參數的輸入、修改、保存和讀取操作,同時軟件還會對參數進行分析,對錯誤的輸入參數進行提示。為了方便用戶交互,便于設計過程參數調整,用戶界面根據輸入參數提供預覽功能,使參數更加直觀。最終的機車交路CAD圖形由這些輸入參數所確定,整個過程用戶無需手動繪圖。
后臺數據處理:本系統的核心模塊,根據用戶輸入參數,在后臺自動進行繪圖數據的計算,包括輸入參數分析、站段圖形計算、交路形狀計算、站段布局計算等,該模塊定義了機車交路圖的數據組織結構,包含了大量的幾何代數算法,計算得到的數據用于預覽圖和CAD圖的繪制。
CAD自動出圖:根據用戶輸入參數和后臺處理數據,軟件調用CAD圖形繪制模塊,進行機車交路圖的繪制,該模塊又包含段所繪制模塊、交路繪制模塊以及其它元素繪制模塊等。CAD圖形繪制模塊調用AutoCAD ActiveX繪圖指令,使用匿名塊命令繪制站段,使用直線、圓弧、圓角命令繪制交路,使用文字命令繪制標題、交路要素表等。使用CAD圖形繪制模塊自動生成機車交路圖,省去手工繪制操作,提高了繪圖效率。
文件存取:分為文本文件輸出和文本文件讀取,將用戶輸入參數進行保存,生成文本文件,并且能夠讀取文件,方便機車交路圖的修改和重生成。
3.1 數據結構
根據行業標準《鐵路機務設備設計規范》規定,站段按其屬性可分為若干類型,且《鐵路工程制圖圖形符號標準》給出了其標準圖例。


圖3 軟件功能模塊劃分圖

采用集合結構組織站段參數數據,建立站段參數矩陣A=(a1, a2, a3, a4),其中
a1=站段編號;
a2=站段名稱;
a3=站段類型;
a4=站段坐標點組合。
機車交路包含多種屬性,根據機車運轉方式,分為肩回交路、循環交路、半循環交路;根據乘務員駐班性質,分為駐班交路、立折交路;根據機車類型,分為內燃機車交路、電力機車交路等。
采用集合結構組織交路參數數據,建立交路參數矩陣B=(b1, b2, b3, b4, b5),其中
b1=交路編號;
b2=交路類型;
b3=交路途徑站點;
b4=交路顏色;
b5=交路要素表。
其中,交路要素表為數據集合,包括機車類型、牽引噸數、交路里程、限制坡度、坐標等參數,在此不再贅述。
交路空間主要由站段、交路構成,此外還包括圖例、圖框、標題等元素,交路空間數據模型如下:
V=(A, B, C,…, R)
其中,R為交路空間集合中所有元素之間關系的有限集合,數據元素之間存在著一對一、一對多和多對多的關系,構成了交路空間的網狀結構,如圖4所示。

圖4 數據結構
3.2 數據算法
(1)站段繪制算法
由上節可知,機務設備輸入類型較多,不同類型圖例各不相同,針對各類機務設備設計單獨的繪制算法,調用不同的圖形塊,各算法之間呈并列關系,根據類型參數一一映射到繪制算法,完成機務設備的計算和繪制。算法具有線性的時間復雜度,針對相同的機務設備類型,算法只計算一次,節省了內存空間,具有較好的空間復雜度。站段算法流程圖如圖5所示。

圖5 站段算法流程圖
(2)交路繪制算法
交路形狀的計算涉及到二維空間幾何變換,如圖6所示,交路的肩寬與長度成正比I,當機務設備A、B、C三點共線時,交路上任意一點D的坐標[x, y]T可由下式計算:

其中,λ為0~1的小數,若坐標系橫軸不與交路中心線平行,可通過旋轉矩陣R1將坐標系旋轉至橫軸與交路中心線平行,然后將由式(1)得到的交路坐標左乘旋轉矩陣R1的逆矩陣即可,旋轉矩陣R1由下式計算:

其中,α為交路中心線到坐標系橫軸的夾角。
當A、B、C三點不共線時,可看作BC段繞B點進行了旋轉,如圖6所示。圖中列出了3種BC段旋轉不同角度的情況,AB段交路坐標仍由式(2)計算,BC’段交路坐標[x’,y’]T可由旋轉變換獲得:

其中,設BC’與BC之間的夾角為θ,則旋轉矩陣R2為:


圖6 機車交路示意圖
最后,還需對折角處進行圓角處理,圓角半徑為B點到交路線段的垂直距離。
當交路途徑站點多于3個,后續交路區段計算原理與前面相同。
(3)空間布局算法
用戶輸入參數可以構成一幅完整的機車交路圖,但出圖通常采用標準圖框,且為了保證圖面整潔、布局良好,通常將圖框區域按適當比例劃分為若干個功能區,如圖7所示,要將實際交路空間恰當地顯示在圖紙空間的繪圖區上,則要經過多重映射。
采用包圍盒算法算出實際交路空間的長度L和寬度H,繪圖區的長度L’和寬度H’已分配,取L/L’和H/H’的較小值為縮放比例因子,實際交路空間中心與繪圖區中心對應,以此進行空間映射。映射后實際交路空間坐標轉變為AutoCAD圖紙空間坐標,方便打印。

圖7 坐標空間映射
機車交路圖輔助繪圖系統與AutoCAD緊密結合且采用簡單易用的VBA語言開發,根據參數輸入自動生成機車交路圖,用戶界面簡潔易懂,操作方便,提高了機車交路圖的繪圖效率,滿足機務部門的繪圖需要,軟件預置有數據庫功能,經推廣應用和深化開發可建立全國機車交路數據系統,進一步提高繪圖效率。
[1] 葉利華. 機車交路系統的設計與實現[D]. 成都:西南交通大學,2005.
[2] 周智勇. 機車交路圖輔助設計系統的研究[J]. 鐵路計算機應用,2003(Z1):123-126.
[3] 李 鳴,倪智振. 基于MFC的機車交路圖輔助設計系統研究[J]. 鐵道標準設計,2013(8):133-136.
責任編輯 陳 蓉
Computer-aided Drawing System of locomotive routing map based on VBA
YANG Zhen, HUANG Xiaogang
( Department of Equipment Design and Research, China Railway SIYUAN Survey and Design Group CO.,LTD, Wuhan 430063, China )
Locomotive routing map was the base of railway organization. The common drawing operation now was based on AutoCAD. The eff i ciency and accuracy of this method were low. In order to improve the efficiency of locomotive routing mapping, a Computer-aided Drawing System with parameters input was developed by means of AutoCAD VBA.
locomotive servicing and maintenance; locomotive routing; Computer-aided Drawing System
U268∶TP39
A
1005-8451(2014)10-0004-04
2014-04-28
楊 震,助理工程師;黃小鋼,教授級高級工程師 。