蘆葦
(中鐵第五勘察設計院集團有限公司,北京102600)
基于面向對象技術CAD自動繪制鐵路長途干纜設計圖的研究
蘆葦
(中鐵第五勘察設計院集團有限公司,北京102600)
現階段,我國鐵路長途的運輸使用在逐年上升,對鐵路通信干纜的要求也越來越高。基于面向對象技術CAD自動繪制鐵路長途干纜設計圖的研究,分為3部分來介紹,對于促進鐵路通信干線光纜、區間短段光、電纜線路工程和區間視頻監控系統前端設備設計向高層次的集成化、智能化和標準化方向發展具有重要的理論意義和現實意義。
算法分析;面向對象設計;光纜引入、引出計算;沿線設備
【DOI】10.13616/j.cnki.gcjsysj.2016.09.074
1.1 對象唯一性
每個圖元對象都有自身唯一的標識,通過這種標識可計算相應的坐標點。在對象的整個生命期中,它的標識不能改變,具有唯一性,并且不同的對象不能有相同屬性的標識。
1.2 多態性
相同的方法或函數、過程可作用在多種類型的圖元對象上并獲得不同的結果。不同的對象,收到同一消息可以產生不同的結果,這種現象稱為多態性,每個圖元對象以適合自身的方式去響應共同的消息以到達線路兩側建筑物模型的創建。
1.3 對象繼承關系
CAD二次開發中C#常用對象繼承關系如圖1所示。
1.4 訪問CAD的DXF數據交換接口
AutoCAD是由美國Autodesk公司開發的單線程圖形編輯系統,維持著一個十分緊湊的圖形數據庫(包含圖形的幾何和拓撲信息),以DWG數據格式存儲,開發者很難直接讀取其數據并加以利用,我們可以利用其DXF(Drawing eXchangeFormat)數據交換接口把高級語言嵌入在CAD內部進行計算和繪制圖元,它是一種順序結構文件,在一定組碼符號規定下包括了實體命令和幾何數據信息文件。

圖1 對象繼承關系

圖2 圖元表示

圖3 基礎模塊調用關系
1.5 簡單圖元繪制
簡單圖元繪制示例如圖2所示。
2.1 軟件結構設計及模塊劃分
此次開發的自動繪制干纜程序以功能化、實用化為目標,采用面向對象設計思想,有利于根據鐵路通信業務需求對業務邏輯進行修改和擴展。(1)將設計目標的功能細化,通過學習設計標準和設計原則尋求設計目標的精確性;(2)采用組件函數設計實現復雜化向通用化轉變,將設計目標按功能和內容劃分為各級子模塊,降低耦合度,提高模塊間內聚,若鐵路通信設計標準有所變化,只需要修改相應模塊,如圖3所示。
2.2 區間建筑、設備、圖框設計模塊
區間建筑房屋、設備點設計過程中的一個重要思想就是分段處理,在平面圖繪制中,必須要以包含區間布點里程信息、線路上橋隧信息、基站設置情況(各專業提供的Excel表格),外部數據文件作為繪制條件寫入數組[1],通信機械室(站房)、隔離開關、光纜分歧頭及橋隧的所有里程,先對所有數據∑ak=a1+a2+…+an求和,式中,k為整數集合的長度或總量,定義小于n且和n互質的數構成的集合為Array<z>,稱呼這個集合為n的完全余數集合,對于互質的整數a和n,有a^φ(n) mod n=1,讓數組中每n個元素中最后一個作為本組的結點,再對總數量分組求和后下一個元素插入點的X軸向后劃定間距,整數集合存在n= kp+r,式中,n為最大因子,k為系數,p為正整數,r為余數,根據余數變換坐標點期間捕捉一個設備的插入點的X軸作為坐標轉換原點,然后遍歷整個數組再根據數組下標來動態計算其他圖元的X軸和Y軸坐標,將這些數據總數量求模取余計算后分段存儲在集合中并封裝成函數,通過調用所需函數即可分段繪制出所需區間設備組平面圖框架,此時圖框也可根據余數來確定個數,通過個數進行矩形坐標點變換即可按分組繪制標準圖框,同時解決了美觀問題。但是針對光纜分歧盒設計是按千米盤長決定的,與其他設備點里程對應關系有差別,這也是程序設計中的難點。另一個難點就是連續橋分段處理,即同一架橋體現在兩段圖框平面中的坐標變換。程序中要注意的地方很多,對于一個鏈表結構的集合,需要考慮加入斷鏈表后,斷鏈表中里程的實際里程如何轉換為在平面圖中的實際位置,這也是按圖紙圖面進行節約長度的處理。
2.3 區間光電纜引入、引出路徑設計模塊
除上、下行主干線外,難點在于區間光電纜路徑的建立,程序中首要考慮的是每個房屋、每個設備有無光電纜引入、引出,如果存在,就構建結構體函數,
例如,通信機械室有引出光纜到隔離開關1,也引出到救援通道1,上一個鄰接組中的基站也有到通信機械室的光纜引入,還有回路情況,此時應按照多對多的數據結構關系進行程序設計。多對多的數據關系意為多個集合之間的數據關系,該關系中第一個集合中的一個行可以與第二個集合中的一個或多個行相關聯。第二個集合中的一個行也可以與第一個集合中的一個或多個行相關連。在沒有借助數據庫系統的情況下,只能通過圖結構、樹型結構來構建結構體模擬數據庫查詢功能,通過讀寫Excel文件來對數據結構重組完成集合數據對應關系,為了節省內存開銷我們選用嵌套遍歷后折半查找算法,求出擁有引出線纜的房屋結果集。
下面提供一段集合中折半查找實現的偽代碼:
BinarySearch(max,min,des)
mid-<(max+min)/2
while(min<=max)
mid=(min+max)/2
if mid=des then
return mid
elseif mid>des then
max=mid-1
else
min=mid+1
return max
將第一個集合中的n個元素分成大致相等的兩部分,用第二個集合中存在的引入設備的結果集X跟其做比較,取a[n/2]與X做比較,如果X=a[n/2],則找到X,算法中止;如果X<a[n/2],則只要在數組a的左半部分繼續搜索X,如果X>a[n/ 2],則只要在數組a的右半部分搜索X,時間復雜度無非就是雙層遍歷的次數。時間復雜度可以表示為O()=O(logn)。這樣做是因為CAD軟件是個單線程的程序,避免了出現笛卡爾積的情況。此外,程序還需考慮區間干線的走向及過軌位置;線纜的單側敷設還是雙側敷設;在單線橋的地方,還要根據橋上是否有設備以及根據通信機械室或基站的位置來確定線纜是否分開繞行;還應根據設計規范考慮在上設備桿時和上橋時線纜的彎曲系數;程序就是按照以上設計原則布置各設備干線及區間支線光電纜的走行情況[2]。
2.4 基礎數據的讀寫
該程序為單線程執行,所有后臺數據都是按格式讀寫Excel表格,包括自行編制的平面數據及配置文件,通過引用微軟的COM組件并將其轉換成.NET組件才可以在程序中正常調用。考慮到每位用戶Excel存放位置不同,我們將提供對話框選取形式獲取Excel文件,避免移植到其不同用戶機上的路徑問題。
此次研發的鐵路長途通信干纜自動繪制軟件基于AutoCAD2015平臺,在.NET2013開發環境下利用C#語言進行鐵路通信施工圖的設計與開發,在設計周期短的形勢下,快速準確、保質保量地完成了設計任務,為各站按時開通奠定了基礎。
目前該設計軟件只應用于客專線路,針對普速線路的情況,今后還需做進一步的擴展和完善工作,期望滿足各種線路及區間設計要求。
【1】羅法水.鐵路站場平面一體化應用的研究及開發[J].鐵道標準設計,2005(6):12-13.
【2】易思蓉,莊海珍.一種大型帶狀數字地形模型數據結構[J].鐵道勘察,2004(5):34-36.
Study on Long-distance Railway Trunk Cable Designs by CAD Automatic Plotting Based on Object-oriented Technology
LU Wei
(China Railway Fifth Survey and Design Institute GroupCo.Ltd.,Beijing 102600,China)
Nowadays,long-distance railway transport is increasing year by year,asking for more from the railway trunk cable.As the study on long-distance railway trunk cable designs by CAD automatic plotting based on object-oriented technology,this paper makes an introduction in three parts.It has important theoretical and practical significance to promote the designs of trunk cable,short section light and cable line engineering and front end equipment of interval video monitoring system to a higher level of integration,intelligence and standardization.
algorithm analysis;object-oriented design;optical cable inlet and outlet calculation;line-side equipment
TP391.72
A
1007-9467(2016)09-0178-03
2016-08-20
蘆葦(1983~),男,河南鄭州人,工程師,從事通信設計、軟件工程研究。