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