朱 聰,李柏林,何朝明,王 強
(西南交通大學機械工程學院,成都610031)
ObjectARX是針對AutoCAD平臺上的二次開發而推出的一個開發軟件包。它提供了以C語言為基礎的面向對象的開發環境及應用程序接口,能快速地訪問AutoCAD圖形數據庫。
接觸網設計的主要內容是接觸網平面布置圖設計。高速鐵路車站接觸網平面設計的各個步驟,包括支柱布置、錨段劃分、中心錨結確定、附加導線布置、生成接觸網布置信息表和統計圖等。
目前國內使用的接觸網平面布置圖AutoCAD系統主要有兩種形式,各有弊端。一類系統將鐵路接觸網中使用的部件劃分成一組組圖形塊,利用AutoCAD的基本繪圖功能分別進行繪制,然后進行計算組合,最后完成設計[1]。使用此系統,設計接觸網布置圖比較容易,設計人員能借助它較快地繪制出一張平面CAD布置圖。但生成的CAD圖中,各實體之間都是獨立的,相互間沒有數據聯系,而某些設計計算需要使用元件之間的相互聯系(支柱布置、錨段劃分等),全部要求通過手工計算,非常不便。另一類系統能夠實現利用接觸網元件之間的聯系進行設計,繪制過程煩瑣,這類方法在錯誤檢查與修改方面存在缺陷,如果出錯,需要設計人員重新填寫數量巨大的屬性數據。本文的接觸網數據驅動系統具有如下特點:(1)友好的圖形繪制界面;(2)適用于多種不同的鐵路線路;(3)接觸網的主要元件都設計為存有數據的實體,更加方便的計算、修改和存儲數據;(4)繪制平面布置圖的全部過程更加智能化,簡化工作量,使設計的速度和準確性得到提高;(5)智能收集并整理圖紙數據,在完成圖形繪制后,自動生成信息表、統計表,統計重要元件的類型、數量等數據。
在繪圖過程中,對某項屬性數據進行修改后,此屬性數據對應的過程自動進行相應的改變。以支柱屬性數據為例,如圖1。

圖1 接觸網繪圖系統流程圖
數據初始化的作用是為得到布置所需的線路數據,將這些數據一部分存入外部的Excel中,另一部分存入到線路的擴展屬性中,通過這些數據自動生成線路多段線,如正線、站線和渡線。數據初始化的步驟如下:
(1)輸入初始化數據,保存在預先設置好的EXCEL中;
(2)點擊選取要生成的線路類型和編號;
(3)連續點取多條線段,建立線段集合;
(4)將線段集合中的線段從左到右排序;
(5)遍歷全圖,獲得所選線段的起始兩端點,建立點集合;
(6)將點集合中的點按照X坐標從小到大排序;
(7)分別循環從線集和點集中取出一線一點,判斷此點是否為此線起點,若是則執行步驟(8),否則執行步驟(9);
(8)將此點按此線的線型加入到多段線點集中;
(9)將此點按直線連接的方式加入到多段線點集中;
(10)將多段線點集合中的點生成多段線;
(11)建立名為“PolyLine”的圖層,并將此多段線存入;
(12)將線路類型和編號存入多段線屬性中,保存在圖紙中;
(13)繼續步驟(1)直到圖中所有線路選取結束為止。
在步驟(7)中,如果點不為線段的起點,表示用戶選擇的多條線段中出現不連續情況,即相鄰線段不是首尾相連,有一定距離,處理方式為將前面線段終點與后面線段起點以直線方式連接。
合并生成多段線后,將線路屬性存入線路是為區別不同線路,將多段線統一存入到同一圖層是為方便信息的提取和加快程序運行速度。這樣不同的線路圖和不同的選取線路方式可以獲得不同的線路數據,生成不同的線路。
結果:初始化數據完成,線路多段線生成,線路類型、編號、里程等信息存入線路。

圖2 支柱布置總體流程圖
支柱布置總體流程圖如圖2。支柱布置結果影響著整個設計的準確性。布置支柱前,首先需輸入標準跨距、跨距比、道岔向外參數、道岔向內參數、橋里程、信號機等數據,然后按照圖元間的關系和一定的規則循環對每條線路進行支柱布置。布置支柱的過程中,會出現相鄰兩支柱線上距離過大或過小的情況,就需要再布置支柱或調整距離,這里通過調用剩余長度支柱布置函數ResidenLen-DisTrutDisign()即可。
剩余長度支柱布置算法:
假定相鄰跨距比為1.15、標準跨距:l標跨=50 m,則lmax=50×1.15=57.5 m,lmin=50×(2-1.15)=42.5 m。lmax向下取整為57 m,lmin向上取整為43 m。 相鄰跨距比系數:l系=[1-相鄰跨距比,相鄰跨距比-1] 。如果定義相鄰跨距比為1.15,則1-1.15≤l系≤1.15-1,即-0.15≤l系≤0.15。
標準跨距:在完成道岔等特殊位置的支柱定義后,其余支柱布置時,標準跨距優先滿足。
當lmax 當2lmax 當3lmin 當2lmin+lmax 當3l標跨 當3lmax 當3lmin+lmax 布置完畢調用ChangeTrutPtDataAll()函數給支柱寫入屬性數據,支柱中需要存放的屬性很多,例如:繪制時手工設定;計算其它實體屬性的條件;通過與其它實體的關系計算得到。這些屬性使支柱與錨塊、拉出值和信息表的數據相互聯系,錨段劃分時,通過支柱的坐標和間距設定下錨點,計算錨段長度;繪制拉出值時,根據支柱坐標確定拉出值位置,根據支柱類型確定拉出值大小;統計支柱時,根據支柱類型、編號等自行生成統計表。所以通過調節標準跨距或跨距比可以改變支柱布置的方式和內部存儲的屬性數據,從而改變后續功能的結果,以達到用戶的最終需求。 結果:支柱布置完成,支柱橫縱坐標、支柱編號、支柱所在線路信息、支柱里程和支柱類型等屬性存入支柱。 錨段劃分的功能包括錨段劃分和中心錨結的確定。根據前面存儲的數據,讀取錨塊所在支柱的數據信息可以計算得到錨塊位置和編號,讀取線路信息可以得到錨塊所在線路名稱。劃分錨塊后,還要對支柱的屬性進行更新,如是否為下錨柱,是否為轉換柱,是否在絕緣錨段關節區域等,為信息表布置提供數據基礎。所以支柱數據和錨塊數據是相互驅動,相互決定的。 結果:錨塊劃分完成,錨塊相關信息數據存入錨塊。 拉出值的作用是為了使受電弓滑板工作均勻,并防止發生刮弓和脫弓事故。附加導線是為了維持良好的供電質量和保證供電系統的可靠運行不可缺少的組成部分。對一個支柱計算拉出值時,通過讀取支柱的數據,如支柱坐標、類型等,再將這些數據結合用戶輸入的信息決定拉出值位置和計算拉出值大小。拉出值以文本的方式輸出,同時也要給拉出值寫入屬性數據,為后面的信息表提供數據基礎。拉出值的數據是根據讀取錨塊中的數據確定的,如支柱在錨段區間內就要給拉出值賦予“絕緣”或“非絕緣”屬性,支柱排序也影響著拉出值類型。 結果:拉出值、附加導線生成,相關文本信息存入拉出值。 信息表的主要作用是為了便于施工參考和為后續統計表中的統計數量作數據基礎。信息表包括:附加導線、支柱基礎編號、側面限界、支柱類型、吊柱及硬橫跨類型、地質情況/基礎類型和接觸網安裝圖號等。 生成圖中元件的統計數據是接觸網布置圖設計的最終目的。統計表主要包括《避雷器設置表》、《道岔表》、《工程數量表》、《錨段長度表》、《號碼牌表》、《說明》和《簽署欄》等。 通過遍歷信息表中所有文本的屬性數據,循環統計相應數據出現的次數,再通過一些公式、經驗計算出結果,就可以得到相應元件的數量和信息出現的次數。 結果:信息表、統計表(各接觸網材料的類型和數量)生成。 以下結合高速鐵路接觸網設計典型工程實際用例,簡要介紹數據驅動在二次開發中的應用。 此系統是在Windows環境下使用.NET和ObjectARX2008進行開發,適用于AutoCAD2008及其以上版本,編譯軟件使用VisualStudio2005。 高速鐵路接觸網繪圖系統根據布置圖中不同元件的繪制特點,在AutoCAD2008的內置菜單中加入屏幕菜單,繪制系統的菜單就嵌入進了AutoCAD菜單欄。系統菜單的功能主要是生成接觸網平面布置圖系統的主菜單,方便用戶操作。主菜單下拉產生獨立的繪圖指令模塊,使各個子模塊分別實現相應的功能。高速鐵路接觸網繪圖運行過程如圖3。 圖3 繪圖系統執行過程流程圖 (1)輸入相應的初始化數據,如道岔參數、支柱間距、圖紙比例、安裝圖號等,并存儲在Excel表中,如圖4。 圖4 數據初始化 (2)運行各個模塊分別進行支柱布置錨段劃分、拉出值繪制、附加導線繪制等,如圖5。 (3)繪制信息表、統計表等,如圖6。 (4)通過前面所得數據和參數,進行跨距、風偏、風載荷和側面限界等的計算。 圖5 站場局部繪制圖 圖6 信息表 隨著我國電氣化鐵路的進一步推廣,國內有關接觸網的CAD系統研究越來越多。與其他CAD輔助系統相比較,本文的研究在智能和自動化方面提高了很多,使用本系統能提高接觸網布置圖的準確度和設計速度。整個接觸網布置圖設計任務,能夠通過非常簡單的命令準確完成。運用ObjectARX把接觸網設計元件做成系統的自定義實體,并且在實體中包含有與接觸網有關的數據,使得在數據發生改變后,接觸網布置圖能自行調整,減少設計時間,提高設計的準確性。通過數據驅動技術,在使用ObjectARX編程時,能更加方便地保存和讀取數據。使得不同程序間的數據傳遞更加直接,更容易、更快速地實現不同的功能,可廣泛地用于鐵路接觸網的布置設計中。 [1] 趙建軍,何寒冰. 接觸網智能CAD系統的研究和實現[J] .微計算機信息,2007(12):165-167. [2] 黃銳,祁成兵,王輝. 擴展實體數據在AutoCAD二次開發中的應用[J] . 山西建筑,2008(11):363-365. [3] 王田煜,徐剛. 基于ObjectARX的AutoCAD二次開發技術[J] . 河北能源職業技術學院學報,2003,(2):28-30. [4] 闖濤,趙良臣.用ObjectARX進行AutoCAD二次開發的研究[J] . 浙江工程學院學報,2003,20(1):37-40. [5] 鐵道勘測院. 接觸網設計手冊[S] . 北京:中國鐵道出版社,1992:25-55.2.3 錨段劃分
2.4 布置拉出值和附加導線
2.5 生成信息表和工程數量統計表
3 應用實例




4 結束語