


摘 要:隧道監控系統是高速公路機電系統的組成之一,其設計的主要工作是外場設備布置圖及一覽表的編制。在傳統的應用AutoCAD繪圖設計的基礎上,對Python自動化辦公技術進行了研究,設計出了用于生成監控外場設備布置圖及一覽表的腳本程序,改良了隧道監控系統工程設計的流程,在隧道監控設計工作的實際應用中,提高效率的同時,還避免了一些人工繪圖操作容易出現的錯誤。
關鍵詞:自動化辦公技術;隧道監控系統;高速公路機電系統;AutoCAD;Python
中圖分類號:U495? ? 文獻標志碼:A? ? 文章編號:1671-0797(2022)12-0005-04
DOI:10.19514/j.cnki.cn32-1628/tm.2022.12.002
0? ? 引言
隨著“建設交通強國”重大戰略決策的提出,我國的公路建設迅速發展,包括監控系統在內的交通工程沿線機電設施也取得了日新月異的進步,從傳統的單一視頻監視發展為多種傳感技術相配合的智能化監控系統。隨著以人為本理念的深入和指揮調度需求的提升,外場機電設備的種類不斷增加,拓寬了監控的維度,也有針對性地提高了外場機電設備的布設密度,滿足了各等級公路服務水平的要求。與此同時,設計行業目前普遍應用的計算機輔助設計繪圖方式,在不斷增長的設計工程量面前逐漸顯得力不從心,將計算機自動化辦公技術應用于設計繪圖將是解決問題的有效方法。本文以隧道監控系統設計的相關作業為對象,研究并得出了一套基于Python的電子版圖紙自動繪制的解決方法。
1? ? 需求分析
隧道是高速公路的重點監控對象之一,特殊的行車環境使隧道監控系統具有機電設備種類多、布設間距小的特點,如中、長隧道內每不超過150 m就需要布設一臺攝像機。此外,隧道內可變信息情報板、亮度檢測器、風速風向檢測器、一氧化碳與能見度檢測器、車道指示器、緊急電話以及各類電光標志等都在隧道監控系統的設計范圍內。
因為隧道內環境較為單一和封閉,無其他需要特殊監控的路段,通常是每個設備按一定的間距逐個擬定其樁號,所以隧道監控在布設點位上具有高度的重復性與規律性,布設的工作量與隧道長度成正比。
監控外場設備布置圖及一覽表的來源與組成如圖1所示,根據經驗,僅照著監控外場設備一覽表畫圖的這一環節,每布設1 km長度的隧道需要花費約1 h的時間,且隨著隧道長度的增加,工作量將呈線性增長。而與繪圖相比,一覽表的編制也不逞多讓,設備不同其布設間隔大多不同,并且需要盡量避免出現樁號重復的設備,以便為其配電預留硐室及橫埋管道提供一定的空間。因此,實現這部分設計的自動化是十分必要的。此外,組成一覽表和布置圖的設備編號、樁號信息的擬定和排列均服從布設方案中制定的規則,并且與隧道基本信息相互關聯,嚴密的邏輯和重復操作由計算機來取代人工執行理論上是可行的。
2? ? 軟件架構與技術的選取
2.1? ? 軟件的總體架構
根據前文的需求描述劃分出軟件輸入、輸出與總體的功能模塊,如圖2所示。通過讀取Excel表格,獲取隧道信息與布設規則,實現各設備樁號的計算與校驗,以Excel格式輸出布設一覽表;同時按圖紙比例對其編號、樁號、位置信息進行繪圖,并寫入AutoCAD軟件支持的DWG格式文件中。
2.2? ? 技術的選取
AutoCAD作為目前工程設計工作應用最廣的繪圖軟件,提供了多種接口以便進行二次開發,有以下幾種技術路線可供選擇:
(1)AutoLISP:它是嵌入在AutoCAD中的一種編程語言,可以在AutoCAD軟件自帶的VisualLISP編輯器中進行相關應用程序的設計[1],其不僅擁有一般高級程序設計語言的基本框架及功能,而且擁有較為強大的圖形處理能力[2]。許多工程設計中應用的插件如數條多段線求和、批量打印等大多是由其實現的。
(2)VBA:它是一種標準宏語言,具備面向對象的程序開發理念與方法。在傳統的宏語言VB的基礎上,改進了對AutoCAD、Office等應用程序的接口支持,使對AutoCAD、Excel內部信息的調用更為方便,實現了在這兩種應用間的交互式開發[3]。
(3)Python:它是一種具有解釋性、互動性,面向對象的高級程序設計語言,對格式的限制和偏向自然語言的語法使其兼具了嚴謹和易讀的特點。Python語言易于擴展,可以導入相應的庫模塊以實現所需功能,對于AutoCAD、Excel等常見應用均有對應的庫模塊供使用者免費下載安裝并進行調用,因此在AutoCAD軟件的二次開發上,Python語言具備易于上手、簡潔、高效的優勢[4]。
綜上所述,本文采用三者中擴展性較強且支持多個應用程序自動化辦公的Python語言進行開發設計。因為本文自動繪圖的實現涉及對Excel文件、AutoCAD軟件的讀寫訪問等相關操作,需要引用Python語言的XLRD、XLWT和PYAUTOCAD庫來實現讀取表格自動繪圖的相關功能。引用的庫模塊及用途如圖3所示。
3? ? 功能實現
3.1? ? 信息輸入
除隧道地理位置及長度等信息因隧道而異之外,不同項目需要布置設備的種類、位置亦不相同。為使軟件適用于不同類型的隧道,也為便于根據不同項目的特點更改布設原則,可以采用業務數據與程序邏輯剝離的數據驅動方式[5],將隧道基本信息與布設方案分別單獨寫入表格而非程序中,通過讀取文件中隧道的基本信息及各設備布設間距,與隧道洞口、人、車行橫洞相對距離等數據,向程序中各變量賦值并執行樁號的計算與校驗指令。CF17BD0E-6054-4481-9117-7A94CABA9EEB
如表1所示,隧道的基本信息包括隧道左右洞的出入口、人行橫洞、車行橫洞的數量及樁號,上述路段同時也是監控的重點對象,很多監控設備如云臺攝像機、車道指示器等都與其樁號相關聯。所以在布設方案信息表中除了需要填寫設備的布設間距之外,還要對設備在出入口、橫通道處的布設情況進行注明,如表2所示。
3.2? ? 樁號計算
設備樁號的計算主要是根據輸入的隧道基本信息和布設方案,在隧道長度范圍內按布設間距通過累加的方式計算;對于僅在出入口、車行橫洞或者人行橫洞處設置的設備,則在上述路段的樁號的基礎上與設備到其的位移求和計算。對于每一個設備都要根據其布設方案重復上述計算過程。
由于隧道內監控設備數量較多,且不同設備的布設間距、關聯的監控對象、與關聯的監控對象之間的位移不同,因此可能存在不同設備設置在同一樁號的情況,結果可能導致在與隧道主體專業提預留預埋管道及硐室的時候出現缺漏等問題。因此,需要執行遍歷樁號查重的操作,并將重復的樁號進行顏色標記,最終將得出的所有設備樁號以表格的形式輸出,由人工對布設表中的重復樁號進行調整。樁號計算過程具體如圖4所示。
3.3? ? AutoCAD自動繪圖
自動繪圖模塊的工作流程在圖5中已經有了總體的描述,因此接下來本文主要對實際樁號與繪圖坐標的轉化和操控AutoCAD這兩部分主要內容進行補充說明。
(1)繪圖坐標的轉化:由于最終打印出版的圖紙通常是A3尺寸,需要根據樁號將設備在隧道內的相對位置轉化為繪圖坐標,對于長隧道的外場設備布置圖,需要打印數張圖紙且要為每張圖的圖框預留一定空間,因此在計算繪圖坐標的過程中,除了按固定比例縮小到適合A3圖紙之外,還需要判斷當前設備點位所在的圖紙的頁數,并加上之前圖紙累計的間隙之和,實現樁號到圖紙中設備布設位置的轉化。
(2)操控AutoCAD:調用Python語言的PYAUTOCAD庫提供的基本繪圖指令,分別執行連接、創建AutoCAD圖形文件、創建圖層、添加表示隧道左右洞長度的線段、添加表示設備在隧道內相對位置的線段、添加表示設備樁號及編號信息的文本,按照繪圖坐標的大小順序,將不同類型的設備的編號及樁號標注在圖紙上。關于設備圖例的添加,PYAUTOCAD庫提供了一種將外部CAD圖形文件以塊參照的形式復制到當前圖形文件的方法,因此可將布設圖中需要用到的不同設備的圖例單獨保存成一個個獨立的圖形文件,組成一個圖例庫,讀表執行程序時按設備選取對應圖例同樁號、名稱信息一并插入即可實現。最后重命名、保存圖形文件,完成繪圖。
4? ? 軟件的實際應用與驗證
以1 400 m左右長度的中隧道為例,將隧道基本信息和布設方案編寫成表格之后,運行程序生成布設一覽表,其格式及部分內容如表3所示。
程序輸出的AutoCAD圖形文件的一段內容如圖6所示,圖中橫軸代表此隧道右洞的路側邊線,在刻線所指示的位置需要設置相應的隧道監控設備,刻線兩側的文本即設備的名稱編號和樁號信息,刻線端頭為表示設備類型的各種圖例,以便于識別。圖中各設備的種類、位置均一目了然,能夠滿足設計出圖的要求。
5? ? 結語
綜上所述,通過本文設計的軟件可以實現自動繪圖和隧道監控外場設備一覽表的自動生成,極大地節省了設計人員的時間,減少了工作量,且能夠避免如遺漏、重復等許多人為差錯,其在擁有數條中長隧道的大型項目中應用成效尤為明顯。
[參考文獻]
[1] 申健康,吳育紅.AutoLISP在公路施工測量中的應用[J].北京測繪,2016(3):140-143.
[2] 王小娟,楊玲玲.AutoCAD二次開發工具及技術應用[J].山西煤炭管理干部學院學報,2010,23(1):88-89.
[3] 敖翔.基于AutoCAD_VBA的無縫線路一體化設計系統開發[J].鐵道標準設計,2016,60(1):19-23.
[4] HETLAND M L.Python基礎教程[M].3版.袁國忠,譯.北京:人民郵電出版社,2018.
[5] 王君,朱美正,李欣.關鍵字驅動測試框架的研究與實現[J].計算機工程與設計,2010,31(10):2246-2248.
收稿日期:2022-03-30
作者簡介:王嗣策(1994—),男,遼寧沈陽人,技術員,從事高速公路監控系統設計工作。CF17BD0E-6054-4481-9117-7A94CABA9EEB