黎 杰,吳新廣
(中國(guó)電建集團(tuán)貴陽(yáng)勘測(cè)設(shè)計(jì)研究院有限公司,貴州 貴陽(yáng) 550081)
現(xiàn)代工程測(cè)量中,大比例尺地形圖是最主要的一項(xiàng)基本測(cè)繪成果。按照我國(guó)測(cè)繪規(guī)范一直沿用傳統(tǒng)模擬紙質(zhì)地形圖分幅存儲(chǔ)管理方法,地形圖最終成果均要求有一定規(guī)格:中小比例尺采用梯形分幅;大比例尺常采用50 cm×50 cm正方形或50 cm×40 cm矩形分幅;工程地形圖可采用工程圖幅分幅標(biāo)準(zhǔn)。對(duì)規(guī)模較大的工程項(xiàng)目,其大比例尺地形圖圖幅數(shù)量較多,如某工程15 km2區(qū)域1∶500地形圖按50 cm×50 cm分幅圖幅數(shù)量就超過240幅。目前,工程建設(shè)項(xiàng)目主要使用1∶500~1∶2 000大比例尺數(shù)字地形圖,勘察設(shè)計(jì)過程中根據(jù)需要使用全區(qū)域或局部區(qū)域數(shù)字地形圖,通常不使用標(biāo)準(zhǔn)分幅數(shù)字地形圖成果。地形圖分幅的主要目的是滿足成果提交和成果歸檔使用要求,大比例尺數(shù)字地形圖通常采用相應(yīng)的成圖軟件自動(dòng)或半自動(dòng)分幅。地形圖分幅出圖主要包括以下幾個(gè)步驟:分幅出圖前預(yù)處理(分區(qū)地形圖質(zhì)檢、分區(qū)地形圖合并與接圖處理)→確定并設(shè)置分幅標(biāo)準(zhǔn)→按標(biāo)準(zhǔn)分幅生成分幅圖形文件→圖廓注記與整飾→制作分幅接合表→分幅地形圖文件規(guī)范化及拷貝出圖。
目前,業(yè)內(nèi)大多數(shù)測(cè)繪生產(chǎn)單位均使用地形圖成圖系統(tǒng)軟件進(jìn)行地形圖分幅處理,也有部分作業(yè)單位自行編制數(shù)字地形圖分幅程序或插件實(shí)現(xiàn)地形圖分幅處理,程序功能不盡相同,軟件界面、處理流程、分幅效果有所區(qū)別,但對(duì)于分幅地形圖基本都采用獨(dú)立文件形式。圖1為國(guó)內(nèi)應(yīng)用最廣泛的某款地形圖成圖系統(tǒng)軟件的地形圖分幅功能菜單與對(duì)話框,主要包括分幅標(biāo)準(zhǔn)、圖廓整飾和批量分幅等設(shè)置子項(xiàng)。

圖1 成圖系統(tǒng)中相關(guān)菜單項(xiàng)
利用成熟商用地形圖成圖系統(tǒng)軟件進(jìn)行地形圖分幅處理具有軟件成本低、作業(yè)人員上手快、批量分幅自動(dòng)化程度高等優(yōu)點(diǎn),但也存在一些不足之處:
(1)成圖系統(tǒng)地形圖分幅是在AutoCAD模型空間對(duì)測(cè)區(qū)地形圖文件進(jìn)行物理切割,為獨(dú)立的標(biāo)準(zhǔn)圖幅地形圖文件,文件數(shù)量多,存儲(chǔ)空間大,實(shí)現(xiàn)批量打印出圖較為困難,分幅與出圖使用脫節(jié)。
(2)批量自動(dòng)分幅對(duì)每個(gè)標(biāo)準(zhǔn)圖幅地形圖文件以圖幅左下角坐標(biāo)命名,圖幅結(jié)合表也采用該名稱自動(dòng)標(biāo)注,美觀度較差且查詢使用不便。若后續(xù)需要將圖幅按測(cè)區(qū)流水號(hào)、地形圖內(nèi)特征地物或地名命名,文件名稱、圖幅結(jié)合表、地形圖分幅結(jié)合圖等修改工作量大。
(3)批量自動(dòng)分幅按矩形或梯形(經(jīng)緯度)區(qū)域進(jìn)行分幅切割,不能識(shí)別空白圖幅,需人工刪除空白圖幅文件和編輯測(cè)區(qū)分幅結(jié)合圖、圖幅結(jié)合表,容易產(chǎn)生差錯(cuò),處理工作量較大。
(4)地形圖分幅方式不靈活。對(duì)帶狀測(cè)區(qū)或不規(guī)整測(cè)區(qū),成圖軟件批量自動(dòng)分幅同樣按矩形或梯形(經(jīng)緯度)區(qū)域分幅,單個(gè)圖幅不能移動(dòng)或變換規(guī)格,產(chǎn)生大量只有極少內(nèi)容的圖幅,大大增加了圖幅數(shù)量。若采用人工任意圖幅(任意位置或任意規(guī)格)分幅,分幅工作量和后期修改工作量較大。
(5)增加地形圖質(zhì)量控制和地形圖修測(cè)工作量。地形圖質(zhì)量控制通常按圖幅進(jìn)行,質(zhì)量檢查時(shí)需增加地形圖圖幅接邊檢查工序,圖幅檢查后修改還需進(jìn)行圖幅接邊檢查,必要時(shí)還要修改測(cè)區(qū)地形圖總圖,增加了內(nèi)業(yè)工作量。開展已有地形圖修測(cè)時(shí),通常在測(cè)區(qū)地形圖總圖上進(jìn)行,修測(cè)后需對(duì)修測(cè)部分按原有分幅標(biāo)準(zhǔn)重新分幅,分幅工作量較大。
(6)地形圖使用不便。工程區(qū)域面積相對(duì)較大,在工程建設(shè)過程中需要整個(gè)區(qū)域或分區(qū)地形圖,用圖人員需要將分幅地形圖逐個(gè)拼合成區(qū)域地形圖,并刪除圖廓內(nèi)容,必要時(shí)還要進(jìn)行地物、等高線等要素連接,造成使用不便。
目前,市場(chǎng)上沒有成熟并滿足需求的商用地形圖分幅專業(yè)軟件。在工程建設(shè)中廣泛使用的AUTODESK公司的AutoCAD軟件從2000版以后提供了模型空間和布局、定制等功能,全面支持Internet,增加了Visual Basic和Visual LISP語(yǔ)言,二次開發(fā)環(huán)境更為開放,提供Vlisp獨(dú)立編程環(huán)境,自帶的二次開發(fā)AutoLisp匯編語(yǔ)言,用戶根據(jù)需要可進(jìn)行AutoCAD專業(yè)應(yīng)用開發(fā)定制,擴(kuò)充AutoCAD的功能。
1個(gè)AutoCAD圖形文件對(duì)應(yīng)1個(gè)模型空間,1個(gè)模型空間可以對(duì)應(yīng)多個(gè)布局。每個(gè)AutoCAD的模型空間可以完整的輸入、顯示、編輯、存儲(chǔ)、輸出(包括第三方軟件文件格式轉(zhuǎn)換、硬拷貝輸出等)1個(gè)圖形文件,而布局只對(duì)模型空間的局部或部分內(nèi)容進(jìn)行獨(dú)立顯示、編輯、硬拷貝輸出,每個(gè)布局中可設(shè)立圖框(僅在布局中顯示和編輯)對(duì)布局內(nèi)圖形進(jìn)行編輯(實(shí)際修改并存儲(chǔ)的是模型空間圖形數(shù)據(jù))。AutoCAD的模型空間和布局功能為地形圖分幅處理提供了新思路,1個(gè)測(cè)區(qū)1種比例尺地形圖對(duì)應(yīng)1個(gè)圖形文件,即1個(gè)AutoCAD模型空間每個(gè)布局對(duì)應(yīng)1張分幅地形圖,每幅分幅地形圖的完整信息只在1個(gè)布局中顯示、編輯和輸出,地形圖修改無論在布局中還是在模型空間中結(jié)果完全一致,不需要進(jìn)行圖幅接邊,僅需進(jìn)行地形圖測(cè)繪分區(qū)接邊,這種地形圖分幅方式即為地形圖虛擬分幅,大大節(jié)約了存儲(chǔ)空間,減小了圖形文件編輯修改、圖幅接邊工作量,后續(xù)用戶可直接使用,無需開展分幅地形圖合并處理,十分方便。因此,較傳統(tǒng)硬分幅,地形圖虛擬分幅具有明顯優(yōu)勢(shì),但目前主流地形圖成圖系統(tǒng)不支持地形圖虛擬分幅,需要用戶自主開發(fā)定制該項(xiàng)功能。
地形圖虛擬分幅軟件應(yīng)具有以下功能:①采用面向?qū)ο蟮某绦蛟O(shè)計(jì),界面友好,相關(guān)參數(shù)輸入或設(shè)定方便;②程序在模型空間中僅自動(dòng)產(chǎn)生分幅格網(wǎng)、標(biāo)注分幅圖名稱或編號(hào),可由用戶自由設(shè)定,圖紙名稱與分幅圖號(hào)相結(jié)合,易于查詢識(shí)別;③程序在模型空間中可對(duì)部分圖幅位置進(jìn)行調(diào)整和特殊圖幅規(guī)格定制;④批量分幅過程中自動(dòng)識(shí)別空白圖幅,僅對(duì)非空白圖幅進(jìn)行分幅處理;⑤分幅編號(hào)可由用戶根據(jù)情況自行設(shè)定,提高分幅圖號(hào)的靈活性和連續(xù)性;⑥通過自動(dòng)創(chuàng)建分幅圖布局,實(shí)現(xiàn)虛擬分幅,自動(dòng)識(shí)別分幅圖號(hào),將其作為該分幅圖的布局名稱;⑦采用視口設(shè)計(jì)技術(shù),按設(shè)定比例尺顯示相關(guān)分幅圖內(nèi)容,每個(gè)布局顯示范圍與模型空間分幅范圍一一對(duì)應(yīng);⑧自動(dòng)插入、標(biāo)注、修改并繪制圖框,自動(dòng)完善圖框相關(guān)注記內(nèi)容;⑨批量分幅前定制布局模板,完成設(shè)置,創(chuàng)建布局時(shí)自動(dòng)插入,減少人工干預(yù);⑩設(shè)置必要的操作提示信息,提高程序易用性;考慮在AutoCAD版本或成圖系統(tǒng)的環(huán)境兼容性,減小程序使用環(huán)境要求。
AutoLISP是由Autodesk公司開發(fā)的一種LISP程序語(yǔ)言,嵌入AutoCAD內(nèi)部,是一種具有智能特點(diǎn)的編程語(yǔ)言,第三方軟件開發(fā)人員使用AutoLISP語(yǔ)言可實(shí)現(xiàn)增加和修改AutoCAD命令、擴(kuò)大圖形編輯功能、建立圖形庫(kù)和數(shù)據(jù)庫(kù)等功能,并可對(duì)當(dāng)前圖形直接訪問和修改,開發(fā)編制各種應(yīng)用程序軟件包,是開發(fā)應(yīng)用AutoCAD不可缺少的工具。AutoLISP是地形圖虛擬分幅程序開發(fā)的主要編程語(yǔ)言。
地形圖虛擬分幅程序需要用戶交互式輸入地形圖分幅標(biāo)準(zhǔn)、圖幅參數(shù)等多種信息數(shù)據(jù),為使程序界面友好,采用對(duì)話框界面輸入?yún)?shù)。對(duì)話框具有形象、直觀的特點(diǎn),可隨意輸入、隨時(shí)修改,鼠標(biāo)、鍵盤并用,是一種深受用戶歡迎的界面。AutoLISP編程語(yǔ)言實(shí)現(xiàn)對(duì)話框較為繁瑣,因此選用對(duì)話框控制語(yǔ)言DCL定制對(duì)話框,使用AutoLISP調(diào)用,AutoCAD的對(duì)話框也使用DCL編程,提供了ACAD.DCL、BASE.DCL等2個(gè)重要的DCL文件,ACAD.DCL為AutoCAD系統(tǒng)定義的對(duì)話框,BASE.DCL為用戶提供了一些常用的對(duì)話框標(biāo)準(zhǔn)控件。DCL具有與AutoCAD平臺(tái)無關(guān)的優(yōu)點(diǎn),不同平臺(tái)之間的移植非常容易,程序設(shè)計(jì)成本低。對(duì)話框文件是擴(kuò)展名為.dcl的文本文件,符合DCL對(duì)話框控制語(yǔ)言的語(yǔ)法,本身并不能工作,必須使用AutoLISP或其他應(yīng)用程序調(diào)用。對(duì)話框由主對(duì)話框和其內(nèi)部的各種片型框組成,結(jié)構(gòu)為樹狀。
為達(dá)到面向?qū)ο蟮某绦蛟O(shè)計(jì)效果,筆者在編制地形圖虛擬分幅程序時(shí),使用AutoLISP語(yǔ)言編寫主程序,DCL語(yǔ)言進(jìn)行對(duì)話框界面設(shè)計(jì),程序主要分以下幾個(gè)部分:①用戶使用程序信息提示;②圖框信息設(shè)置;③圖形識(shí)別、分幅,用戶自行選擇分幅規(guī)格及范圍;④批量創(chuàng)建布局及視口,設(shè)置視口和圖框;⑤程序授權(quán)設(shè)置;⑥操作成果保存;⑦相關(guān)對(duì)話框設(shè)計(jì);⑧對(duì)話框驅(qū)動(dòng)程序設(shè)計(jì)等。
對(duì)話框程序部分源代碼
tksz:dialog{
label="圖框設(shè)置";
:edit_box{
label="圖框名稱";
width=50;
height=1.5;
key="tm";
}
:edit_box{
label="成圖單位";
width=50;
height=1.5;
(4)接種、灌裝、發(fā)酵。試驗(yàn)所用所有儀器事先必須經(jīng)過高壓滅菌,接種在超凈工作臺(tái)進(jìn)行,接種前黃精浸提液與復(fù)原乳充分?jǐn)嚢杌旌希瑢⒕N接種后也需充分?jǐn)嚢枋咕N均勻分散在混合液中,接種完成后在無菌條件下進(jìn)行灌裝,然后在42℃的恒溫培養(yǎng)箱中進(jìn)行發(fā)酵。
key="ctdw";
… ……
主程序部分源代碼
(defun act3 ()
(setq tm (get_tile "tm"))
(setq ctdw (get_tile "ctdw"))
(setq cly (get_tile "cly"))
(setq hty (get_tile "hty"))
(setq jcy (get_tile "jcy"))
(setq clfst (get_tile "clfst"))
(setq jbdgj (get_tile "jbdgj"))
… ……
首先,打開需要分幅處理的地形圖文件進(jìn)行地形圖虛擬應(yīng)用程序加載(見圖2)。若經(jīng)提示后發(fā)現(xiàn)設(shè)置不對(duì),可按“取消”退出程序運(yùn)行,轉(zhuǎn)入相關(guān)處理流程,設(shè)置或處理完畢后再運(yùn)行程序,此時(shí)按“確定”進(jìn)入圖框信息設(shè)置界面(見圖3)。設(shè)置完成后按“確定”,進(jìn)入圖形分幅設(shè)置界面(見圖4)。

圖2 彈出用戶提示信息界面

圖4 圖形分幅設(shè)置界面
設(shè)置完成后按“確定”,進(jìn)入圖形分幅,程序自動(dòng)運(yùn)行,完成分幅(見圖5)。

圖5 對(duì)地形圖進(jìn)行自動(dòng)分幅
批量分幅完成后,新創(chuàng)建9個(gè)布局(第1個(gè)布局為分幅結(jié)合圖,后8個(gè)布局分別對(duì)應(yīng)8張分幅地形圖),實(shí)現(xiàn)地形圖虛擬分幅。自動(dòng)生成的分幅圖布局見圖6。

圖6 自動(dòng)生成的分幅圖布局
布局中圖框信息可以進(jìn)行人工修改。由于程序采用輸入定制參數(shù)自動(dòng)生成圖框,標(biāo)注圖廓信息,所有圖幅責(zé)任人員均為一致,需根據(jù)實(shí)際情況對(duì)布局圖幅編輯修改,修改完成后進(jìn)行保存,若需硬拷貝出圖,可選擇AutoCAD中的“發(fā)布”功能,進(jìn)行必要的打印頁(yè)面設(shè)置檢查,實(shí)現(xiàn)地形圖批量打印出圖。
本文利用AutoCAD軟件豐富的平臺(tái)功能,綜合運(yùn)用AutoCAD自帶的AutoLISP編程語(yǔ)言和對(duì)話框控制DCL編程語(yǔ)言,按照可視化的程序設(shè)計(jì)思路,通過定制地形圖模板和輸入分幅參數(shù),完成地形圖自動(dòng)分幅,在布局中自動(dòng)創(chuàng)建分幅地形圖,自動(dòng)生成圖框、標(biāo)注圖廓信息,實(shí)現(xiàn)地形圖虛擬分幅,最終實(shí)現(xiàn)地形圖批量自動(dòng)化虛擬分幅與打印輸出。地形圖虛擬分幅程序具備以下特點(diǎn):①界面友好、簡(jiǎn)潔、實(shí)用;②人工干預(yù)少,自動(dòng)化程度高;③用戶選擇度大,使用方便靈活;④實(shí)現(xiàn)批量自動(dòng)虛擬分幅和出圖打印。地形圖虛擬分幅程序解決了生產(chǎn)中遇到的技術(shù)難題,提高了工作效率,增加了用戶的體驗(yàn)度。