黎 杰,吳新廣
(中國電建集團貴陽勘測設計研究院有限公司,貴州 貴陽 550081)
現代工程測量中,大比例尺地形圖是最主要的一項基本測繪成果。按照我國測繪規(guī)范一直沿用傳統(tǒng)模擬紙質地形圖分幅存儲管理方法,地形圖最終成果均要求有一定規(guī)格:中小比例尺采用梯形分幅;大比例尺常采用50 cm×50 cm正方形或50 cm×40 cm矩形分幅;工程地形圖可采用工程圖幅分幅標準。對規(guī)模較大的工程項目,其大比例尺地形圖圖幅數量較多,如某工程15 km2區(qū)域1∶500地形圖按50 cm×50 cm分幅圖幅數量就超過240幅。目前,工程建設項目主要使用1∶500~1∶2 000大比例尺數字地形圖,勘察設計過程中根據需要使用全區(qū)域或局部區(qū)域數字地形圖,通常不使用標準分幅數字地形圖成果。地形圖分幅的主要目的是滿足成果提交和成果歸檔使用要求,大比例尺數字地形圖通常采用相應的成圖軟件自動或半自動分幅。地形圖分幅出圖主要包括以下幾個步驟:分幅出圖前預處理(分區(qū)地形圖質檢、分區(qū)地形圖合并與接圖處理)→確定并設置分幅標準→按標準分幅生成分幅圖形文件→圖廓注記與整飾→制作分幅接合表→分幅地形圖文件規(guī)范化及拷貝出圖。
目前,業(yè)內大多數測繪生產單位均使用地形圖成圖系統(tǒng)軟件進行地形圖分幅處理,也有部分作業(yè)單位自行編制數字地形圖分幅程序或插件實現地形圖分幅處理,程序功能不盡相同,軟件界面、處理流程、分幅效果有所區(qū)別,但對于分幅地形圖基本都采用獨立文件形式。圖1為國內應用最廣泛的某款地形圖成圖系統(tǒng)軟件的地形圖分幅功能菜單與對話框,主要包括分幅標準、圖廓整飾和批量分幅等設置子項。
圖1 成圖系統(tǒng)中相關菜單項
利用成熟商用地形圖成圖系統(tǒng)軟件進行地形圖分幅處理具有軟件成本低、作業(yè)人員上手快、批量分幅自動化程度高等優(yōu)點,但也存在一些不足之處:
(1)成圖系統(tǒng)地形圖分幅是在AutoCAD模型空間對測區(qū)地形圖文件進行物理切割,為獨立的標準圖幅地形圖文件,文件數量多,存儲空間大,實現批量打印出圖較為困難,分幅與出圖使用脫節(jié)。
(2)批量自動分幅對每個標準圖幅地形圖文件以圖幅左下角坐標命名,圖幅結合表也采用該名稱自動標注,美觀度較差且查詢使用不便。若后續(xù)需要將圖幅按測區(qū)流水號、地形圖內特征地物或地名命名,文件名稱、圖幅結合表、地形圖分幅結合圖等修改工作量大。
(3)批量自動分幅按矩形或梯形(經緯度)區(qū)域進行分幅切割,不能識別空白圖幅,需人工刪除空白圖幅文件和編輯測區(qū)分幅結合圖、圖幅結合表,容易產生差錯,處理工作量較大。
(4)地形圖分幅方式不靈活。對帶狀測區(qū)或不規(guī)整測區(qū),成圖軟件批量自動分幅同樣按矩形或梯形(經緯度)區(qū)域分幅,單個圖幅不能移動或變換規(guī)格,產生大量只有極少內容的圖幅,大大增加了圖幅數量。若采用人工任意圖幅(任意位置或任意規(guī)格)分幅,分幅工作量和后期修改工作量較大。
(5)增加地形圖質量控制和地形圖修測工作量。地形圖質量控制通常按圖幅進行,質量檢查時需增加地形圖圖幅接邊檢查工序,圖幅檢查后修改還需進行圖幅接邊檢查,必要時還要修改測區(qū)地形圖總圖,增加了內業(yè)工作量。開展已有地形圖修測時,通常在測區(qū)地形圖總圖上進行,修測后需對修測部分按原有分幅標準重新分幅,分幅工作量較大。
(6)地形圖使用不便。工程區(qū)域面積相對較大,在工程建設過程中需要整個區(qū)域或分區(qū)地形圖,用圖人員需要將分幅地形圖逐個拼合成區(qū)域地形圖,并刪除圖廓內容,必要時還要進行地物、等高線等要素連接,造成使用不便。
目前,市場上沒有成熟并滿足需求的商用地形圖分幅專業(yè)軟件。在工程建設中廣泛使用的AUTODESK公司的AutoCAD軟件從2000版以后提供了模型空間和布局、定制等功能,全面支持Internet,增加了Visual Basic和Visual LISP語言,二次開發(fā)環(huán)境更為開放,提供Vlisp獨立編程環(huán)境,自帶的二次開發(fā)AutoLisp匯編語言,用戶根據需要可進行AutoCAD專業(yè)應用開發(fā)定制,擴充AutoCAD的功能。
1個AutoCAD圖形文件對應1個模型空間,1個模型空間可以對應多個布局。每個AutoCAD的模型空間可以完整的輸入、顯示、編輯、存儲、輸出(包括第三方軟件文件格式轉換、硬拷貝輸出等)1個圖形文件,而布局只對模型空間的局部或部分內容進行獨立顯示、編輯、硬拷貝輸出,每個布局中可設立圖框(僅在布局中顯示和編輯)對布局內圖形進行編輯(實際修改并存儲的是模型空間圖形數據)。AutoCAD的模型空間和布局功能為地形圖分幅處理提供了新思路,1個測區(qū)1種比例尺地形圖對應1個圖形文件,即1個AutoCAD模型空間每個布局對應1張分幅地形圖,每幅分幅地形圖的完整信息只在1個布局中顯示、編輯和輸出,地形圖修改無論在布局中還是在模型空間中結果完全一致,不需要進行圖幅接邊,僅需進行地形圖測繪分區(qū)接邊,這種地形圖分幅方式即為地形圖虛擬分幅,大大節(jié)約了存儲空間,減小了圖形文件編輯修改、圖幅接邊工作量,后續(xù)用戶可直接使用,無需開展分幅地形圖合并處理,十分方便。因此,較傳統(tǒng)硬分幅,地形圖虛擬分幅具有明顯優(yōu)勢,但目前主流地形圖成圖系統(tǒng)不支持地形圖虛擬分幅,需要用戶自主開發(fā)定制該項功能。
地形圖虛擬分幅軟件應具有以下功能:①采用面向對象的程序設計,界面友好,相關參數輸入或設定方便;②程序在模型空間中僅自動產生分幅格網、標注分幅圖名稱或編號,可由用戶自由設定,圖紙名稱與分幅圖號相結合,易于查詢識別;③程序在模型空間中可對部分圖幅位置進行調整和特殊圖幅規(guī)格定制;④批量分幅過程中自動識別空白圖幅,僅對非空白圖幅進行分幅處理;⑤分幅編號可由用戶根據情況自行設定,提高分幅圖號的靈活性和連續(xù)性;⑥通過自動創(chuàng)建分幅圖布局,實現虛擬分幅,自動識別分幅圖號,將其作為該分幅圖的布局名稱;⑦采用視口設計技術,按設定比例尺顯示相關分幅圖內容,每個布局顯示范圍與模型空間分幅范圍一一對應;⑧自動插入、標注、修改并繪制圖框,自動完善圖框相關注記內容;⑨批量分幅前定制布局模板,完成設置,創(chuàng)建布局時自動插入,減少人工干預;⑩設置必要的操作提示信息,提高程序易用性;考慮在AutoCAD版本或成圖系統(tǒng)的環(huán)境兼容性,減小程序使用環(huán)境要求。
AutoLISP是由Autodesk公司開發(fā)的一種LISP程序語言,嵌入AutoCAD內部,是一種具有智能特點的編程語言,第三方軟件開發(fā)人員使用AutoLISP語言可實現增加和修改AutoCAD命令、擴大圖形編輯功能、建立圖形庫和數據庫等功能,并可對當前圖形直接訪問和修改,開發(fā)編制各種應用程序軟件包,是開發(fā)應用AutoCAD不可缺少的工具。AutoLISP是地形圖虛擬分幅程序開發(fā)的主要編程語言。
地形圖虛擬分幅程序需要用戶交互式輸入地形圖分幅標準、圖幅參數等多種信息數據,為使程序界面友好,采用對話框界面輸入參數。對話框具有形象、直觀的特點,可隨意輸入、隨時修改,鼠標、鍵盤并用,是一種深受用戶歡迎的界面。AutoLISP編程語言實現對話框較為繁瑣,因此選用對話框控制語言DCL定制對話框,使用AutoLISP調用,AutoCAD的對話框也使用DCL編程,提供了ACAD.DCL、BASE.DCL等2個重要的DCL文件,ACAD.DCL為AutoCAD系統(tǒng)定義的對話框,BASE.DCL為用戶提供了一些常用的對話框標準控件。DCL具有與AutoCAD平臺無關的優(yōu)點,不同平臺之間的移植非常容易,程序設計成本低。對話框文件是擴展名為.dcl的文本文件,符合DCL對話框控制語言的語法,本身并不能工作,必須使用AutoLISP或其他應用程序調用。對話框由主對話框和其內部的各種片型框組成,結構為樹狀。
為達到面向對象的程序設計效果,筆者在編制地形圖虛擬分幅程序時,使用AutoLISP語言編寫主程序,DCL語言進行對話框界面設計,程序主要分以下幾個部分:①用戶使用程序信息提示;②圖框信息設置;③圖形識別、分幅,用戶自行選擇分幅規(guī)格及范圍;④批量創(chuàng)建布局及視口,設置視口和圖框;⑤程序授權設置;⑥操作成果保存;⑦相關對話框設計;⑧對話框驅動程序設計等。
對話框程序部分源代碼
tksz:dialog{
label="圖框設置";
:edit_box{
label="圖框名稱";
width=50;
height=1.5;
key="tm";
}
:edit_box{
label="成圖單位";
width=50;
height=1.5;
(4)接種、灌裝、發(fā)酵。試驗所用所有儀器事先必須經過高壓滅菌,接種在超凈工作臺進行,接種前黃精浸提液與復原乳充分攪拌混合,將菌種接種后也需充分攪拌使菌種均勻分散在混合液中,接種完成后在無菌條件下進行灌裝,然后在42℃的恒溫培養(yǎng)箱中進行發(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"))
… ……
首先,打開需要分幅處理的地形圖文件進行地形圖虛擬應用程序加載(見圖2)。若經提示后發(fā)現設置不對,可按“取消”退出程序運行,轉入相關處理流程,設置或處理完畢后再運行程序,此時按“確定”進入圖框信息設置界面(見圖3)。設置完成后按“確定”,進入圖形分幅設置界面(見圖4)。
圖2 彈出用戶提示信息界面
圖4 圖形分幅設置界面
設置完成后按“確定”,進入圖形分幅,程序自動運行,完成分幅(見圖5)。
圖5 對地形圖進行自動分幅
批量分幅完成后,新創(chuàng)建9個布局(第1個布局為分幅結合圖,后8個布局分別對應8張分幅地形圖),實現地形圖虛擬分幅。自動生成的分幅圖布局見圖6。
圖6 自動生成的分幅圖布局
布局中圖框信息可以進行人工修改。由于程序采用輸入定制參數自動生成圖框,標注圖廓信息,所有圖幅責任人員均為一致,需根據實際情況對布局圖幅編輯修改,修改完成后進行保存,若需硬拷貝出圖,可選擇AutoCAD中的“發(fā)布”功能,進行必要的打印頁面設置檢查,實現地形圖批量打印出圖。
本文利用AutoCAD軟件豐富的平臺功能,綜合運用AutoCAD自帶的AutoLISP編程語言和對話框控制DCL編程語言,按照可視化的程序設計思路,通過定制地形圖模板和輸入分幅參數,完成地形圖自動分幅,在布局中自動創(chuàng)建分幅地形圖,自動生成圖框、標注圖廓信息,實現地形圖虛擬分幅,最終實現地形圖批量自動化虛擬分幅與打印輸出。地形圖虛擬分幅程序具備以下特點:①界面友好、簡潔、實用;②人工干預少,自動化程度高;③用戶選擇度大,使用方便靈活;④實現批量自動虛擬分幅和出圖打印。地形圖虛擬分幅程序解決了生產中遇到的技術難題,提高了工作效率,增加了用戶的體驗度。