胡友明 (蕪湖市勘察測繪設計研究院有限責任公司,安徽 蕪湖 241000)
圖紙打印是測繪生產(chǎn)中的一項重要內(nèi)容,也是測繪成果提交前的最后一步,卻是容易被人忽略的一步。測繪類圖紙的主要特點是分層化,一個數(shù)據(jù)文件中包含不同的圖層信息;分幅化,同一圖層又分為離散或連續(xù)的若干個圖幅;格式化,每一個圖幅的打印需要加載標準圖框。上述特點使其無法像其他文檔一樣進行快速地打印和整理。隨著城市建設的快速化,客戶對測繪成果提交周期的要求越來越短,圖紙打印的自動化和快速化顯得非常重要。
現(xiàn)階段,地下管線圖出圖的主要流程是選擇需要打印的圖層,針對需要打印的圖幅逐一加載圖框,并輸入相關的圖框信息,發(fā)送到繪圖儀,重復以上步驟直至所有的圖層打印完成,整理圖紙。上述流程中的每一步都需要人工干預,自動化水平低,容易出錯。隨著圖層、圖幅及圖紙份數(shù)的增加,出圖工作將耗費大量的時間。本文針對地下管線圖出圖效率低下的問題,基于EPS平臺二次開發(fā)技術(shù),使用VBScript設計并實現(xiàn)了一種圖紙打印自動化系統(tǒng)。
EPS平臺由北京清華山維新技術(shù)開發(fā)有限公司開發(fā)。是一種以數(shù)據(jù)庫為核心的一體化解決數(shù)據(jù)采集、數(shù)據(jù)編輯、數(shù)據(jù)監(jiān)理、跨平臺數(shù)據(jù)轉(zhuǎn)換、整合共享與多格式數(shù)據(jù)分發(fā)、數(shù)據(jù)庫建設、數(shù)據(jù)更新到GIS分析應用等諸多問題的綜合信息系統(tǒng)體系。具備的二次開發(fā)技術(shù),賦予了其強大的靈活性和可擴展能力,廣泛應用于勘測規(guī)劃領域。EPS支持C++和腳本語言兩種開發(fā)方式。EPS腳本語言遵循VBScript和JScript語言標準,可以實現(xiàn)工程管理、選擇集操作、圖形編輯操作、數(shù)據(jù)整理、數(shù)據(jù)轉(zhuǎn)換、坐標體系轉(zhuǎn)換和系統(tǒng)設置等功能。EPS腳本分為有模腳本和無模腳本兩種形式,其中無模腳本支持與視圖窗口交互操作。相比C++開發(fā)方式,腳本語言簡單易學,開發(fā)快速,本文采用VBScript進行開發(fā)。SSProcess是系統(tǒng)缺省定義的對象,其包含的PrintCurFrameMap函數(shù)為圖紙打印自動化系統(tǒng)的實現(xiàn),提供了關鍵功能。
地下管線圖打印自動化系統(tǒng)大體可分為信息的輸入,圖幅的選擇與打印兩大部分。EPS提供了符合《城市地下管線探測技術(shù)規(guī)程》中圖示要求的圖框,需要輸入9項信息,分別為圖幅名稱、平面坐標系、高程系、測量單位、測量方法、探測員、測量員、繪圖員、檢查員。目前,蕪湖市的綜合地下管線探測需要提交給水、雨水、污水、天然氣、電力、路燈、電信等七種管線圖。圖幅的選擇與打印就是在7個圖層中打開特定的圖層,關閉其余的圖層,在該圖層中定位到需要打印的圖幅,加載圖框,發(fā)送繪圖指令到繪圖儀。
整個系統(tǒng)的框架是以單個圖幅的選擇和打印為核心,在圖幅、圖層和打印份數(shù)間進行三重循環(huán),如圖1所示。
圖1 地下管線圖打印自動化系統(tǒng)框架
地下管線圖打印時,除需要輸入與圖框有關的9項信息外,還需要確定紙張大小、比例尺、打印偏移、打印機、打印份數(shù)、打印顏色等要素。采用手動打印方式時,需要在不同位置的三個窗口輸入以上信息,如圖2所示。
整個打印流程中圖2(a)彈出N1 x N2次,圖2(b)彈出N1次,圖2(c)彈出N1次,N1為需要打印的圖層數(shù),N2為圖層內(nèi)的圖幅數(shù)。
圖2 手動打印方式信息輸入與要素選擇窗口
在自動化打印系統(tǒng)中,使用AddInputParameter函數(shù)設計實現(xiàn)了一種綜合信息輸入窗口,如圖3所示,可一次性輸入、選擇所有與打印相關的信息和要素,且只需要輸入一次。為進一步減少用戶操作的次數(shù),通過給AddInputParameter函數(shù)指定缺省值的方式,可自動輸入平面坐標系、高程系、測量單位等不隨工程而改變的固定信息;使用ReadEpsIni函數(shù)可獲取上一次打印使用的繪圖儀名稱;利用ReadEpsDBIni函數(shù)讀取工程名稱和勘測日期,經(jīng)格式轉(zhuǎn)換后可自動填寫圖幅名稱和測量方法兩項信息。在某些情況下,可以實現(xiàn)零輸入即設置完成所有與打印相關的信息。
圖3 打印機、圖幅設置窗口
用戶在打印機、圖幅設置窗口里提交完相應信息后,圖幅的選擇與打印會自動完成。程序能否按照設計的要求自動選擇正確的圖幅,是整個自動化打印系統(tǒng)的關鍵所在??紤]到實際工作中的各種應用場景,系統(tǒng)設計了兩種圖幅選擇方式,全部圖幅與自選圖幅,可通過打印機、圖幅設置窗口中的“打印范圍”進行選擇。前者會打印所有有管線數(shù)據(jù)的圖幅,后者則打印用戶指定的圖幅。
在全部圖幅的選擇方式下,系統(tǒng)通過檢測某一個圖幅內(nèi)是否有管線線或者管線點來確定是否選擇該圖幅。程序測試發(fā)現(xiàn),兩種檢測條件在大部分情況下的選擇結(jié)果沒有區(qū)別。但是,對于某些特殊情況下(如管線數(shù)據(jù)未進行分幅),以管線線作為選擇條件會出現(xiàn)遺漏。因此,最終以圖幅內(nèi)是否有管線點作為選擇的依據(jù)。
自選圖幅方式利用EPS無模腳本可進行視圖窗口交互操作的特性實現(xiàn)。基本的操作方式是用戶使用鼠標左鍵點擊某個圖幅,即選擇該圖幅,再次左擊,取消選擇,點擊右鍵完成選擇。實現(xiàn)該操作的關鍵是獲取鼠標點擊點所在圖幅的中心點坐標。如圖4所示,十字標記為圖幅中心點O,星形標記為鼠標點擊點P。
圖4 鼠標點擊點與圖幅中心點
式(1)和式(2)中 Xo、Yo 為圖幅中心點的坐標,Xp、Yp為鼠標點擊點的坐標,W為圖幅寬帶,比例尺為1:500時,W取250,Xp/W、Yp/W為取模運算。通過SetCurMapFrame函數(shù),利用獲取的圖幅中心點坐標即可選擇該圖幅。
圖幅選擇完成以后,利用EPS腳本提供的PrintCurFrameMap函數(shù),即可向繪圖儀發(fā)送打印指令。當打印份數(shù)大于1時,系統(tǒng)會逐份進行打印,對繪圖儀輸出的圖紙無需再進行整理。
以某小區(qū)的綜合管線圖出圖為例,將手動打印方式與使用自動化系統(tǒng)打印進行了對比。該小區(qū)共有7種管線,分別為給水、雨水、污水、天然氣、電力、路燈、電信,占據(jù)5個圖幅,每種管線打印3份。對比結(jié)果如下表所示。
兩種出圖方法操作次數(shù)對比表
本文結(jié)合生產(chǎn)實際,針對地下管線圖出圖需大量人工操作的問題,利用EPS平臺二次開發(fā)技術(shù),設計并實現(xiàn)了圖紙打印自動化系統(tǒng),可以對該系統(tǒng)進行進一步的優(yōu)化,即可適用于帶狀地形圖等其他類型圖紙的打印。經(jīng)測試對比,該系統(tǒng)自動化程度較高,大幅減少了人工操作,同時也避免了過多的人工操作可能出現(xiàn)的錯誤,提高了工作效率,讓測繪成果得以快速提交應用。