李灶強,湯麗珍
(增城市國土資源和房屋管理局地籍測量隊,廣東增城 511300)
在城市經濟建設的快速發展下,城市不斷地更新擴大。對廣東省城市的更新而言,自然會聯系到“三舊”改造項目。“三舊”改造是國土資源部給予廣東省的特殊政策。“三舊”改造的實施意見對現行的國土資源政策有六大突破:一是簡化了補辦征收手續;二是允許按現狀完善歷史用地手續;三是允許采用協議出讓供地;四是土地純收益允許返撥支持用地者開展改造;五是農村集體建設用地改為國有建設用地,可簡化手續;六是邊角地、插花地、夾心地的處理有優惠。由于經濟市場化的影響,新政策新規范,“三舊”改造帶來了許多新工程項目。在房屋詳查方面,繪圖和面積統計等變得更細節,更規范。
為適應經濟市場化的發展,高效、精確地完成繪圖和數據統計等工作,必須先制定好工程項目作業中特定可簡化的和自動化的工作步驟。本文旨在結合工作實踐,在AutoCAD軟件平臺上,利用Visual LISP進行二次開發,對房屋詳查繪圖、數據統計操作等方面進行精化和自動化,從而進一步提高內業工作效率,保證繪圖質量。
一般測繪隊伍分為內外作業,外業包括地形、地籍、房屋結構測量和相關資料調查,內業負責繪圖、數據統計、資料歸檔等等的相關資料整理。總的來說,外業和內業是相輔相成的,詳細準確的外業測量調查能給內業提供完整而準確的數據,而內業數據整理的準確度和難易程度更能體現出外業作業方式的可操作性。如圖1為作業隊伍對房屋詳查的一般作業流程。

圖1 “三舊”改造項目中房屋詳查作業流程圖
目前,通過工作實踐發現,地形測量,房屋結構測量和相關資料調查等外業工作并不繁瑣,更不是重復性較高的操作。而內業作業中,就有較多繁瑣的操作,例如房屋照片成果表、房產圖和匯總表等。由于房產圖繪制最為復雜、操作重復性高而且其繪制過程可實現自動化程度高,于是筆者根據繪制要求對AutoCAD進行了二次開發來實現其操作簡化的目的。
AutoCAD提供了三種主要的開發工具,分別是:使用C/C++的ObjectARX,VB/VBA的ActiveX開發,以及AutoLISP/VisualLISP開發工具。其中,AutoLISP兼備快速開發工具的特點和COBOL語言的靈活性,很多開發者選擇LISP的主要原因是它讓人們感到很順手,對很多人來說,這是他們第一次開發AutoCAD所使用的語言,并且能很快使用該語言進行開發。另一個使用這種開發工具的原因是,我們的工作中可能已經在使用很多LISP程序。學習LISP比VBA難,卻又比C和C++簡單。直到AutoCAD 2000,VBA還不能很好地在AutoCAD內部執行,并且留下很多開發者希望解決的問題。LISP是快速編寫應用程序的最初的開發工具,有大量的LISP程序庫存在,在短時間內用VBA重寫這些程序,也不容易。基于這種情況,那么在AutoCAD中LISP就是最有效最直接的開發工具。
考慮到繪圖的復雜性和個人對開發語言的熟練程度,再加上實際的工作情況要求,如下實例中選取了VLISP語言來進行程序編輯。
(1)程序設計流程
根據繪制房產輔助圖的操作需要,模仿繪圖步驟,總結出圖2所示的處理流程。

圖2 程序設計流程
(2)部分程序
①子函數xylist利用cons來獲取閉合線中節點的X、Y坐標。

②子函數xymn是找出X、Y坐標的最大最小值。

在程序運行過程中先用子函數xylist來獲取線形節點X、Y坐標,再用子函數xymn來獲取閉合或不閉合的線性節點X、Y坐標的最大最小值,從而計算閉合線的中心點,好讓其居中并同時計算出其調用的圖幅大小和比例尺大小等重要成果。
除此之外,面積用(command"area""o"1e)(getvar"area")等LISP程序指令來獲取,然后對面積進行統計,僅僅是這指令就為面積統計節省了不少工作時間。
(1)測試檢驗在工程項目中的意義
隨著軟件規模的不斷擴大,軟件設計的復雜程度不斷提高,軟件二次開發中出現錯誤或缺陷的機會越來越多。同時,市場對軟件質量重要性的認識逐漸增強。測試軟件在項目實施過程中的重要性日益突出。但是,現實情況是,與軟件編程比較,軟件測試的地位和作用,還沒有真正受到重視,對于很多人(甚至是軟件項目組的技術人員)還存在對軟件測試的認識誤區,這進一步影響了測試活動的開展和真正提高測試質量。
本次二次開發后的檢驗工作較為特殊,由于應用需求比較迫切,檢驗工作只能重點放在使用期間,更確切地說就是檢驗和使用期并行,所以后來的改進和完善工作都是在使用過程中實現的。
(2)房產圖成果
一般為了操作簡便,都會比較統一地以簡要的拼音來命名命令。在AutoCAD平臺上輸入fct(房產圖)命令后,會彈出輸入房產圖基本資料窗口,如圖3所示。

圖3 房產圖基本資料窗口
圖4為最終輸出的房產圖成果,其圖上記錄有房產圖基本資料、房屋圖層結構和程序計算統計出來的比例尺統計面積等等。

繪圖簡化前概況 表1
總次數Tn1=X+7+N+M,總時間Tm1=7+N×0.4,其中N、M都隨房屋層數和房屋復雜程度成正比。

圖4 房產成果圖

繪圖簡化后概況 表2
總次數Tn2=X+M,總時間Tm2=2(實際小于2),同樣M都隨房屋層數和房屋復雜程度成正比。
表1與表2作比較得,總次數差Tn2-Tn1=7+N,總時間差Tm2-Tm1=5+N×0.4,同時N都隨房屋層數和房屋復雜程度成正比,N越大則總次數差和總時間差就越大。
用上述實例數據N為3(詳查房屋層數)代入數據可得:


則說明繪圖過程中,運用了此簡化功能后,每宗房屋繪圖速度比原來快了約6 min多,是原來處理速度的4倍多。
(1)從項目整體來看,每宗房屋詳查項目中包括十幾棟房屋甚至上一兩百棟房屋,每棟房屋都要作詳細的房產圖,在繪圖過程中此過程重復性最大,操作起來既繁瑣又復雜,簡化后繪圖時間節省了不少。
(2)表1中記錄數據已是較為熟練人員的操作成果,而表2記錄數據則一般熟練人員也能達到,并且鍵入命令、字符總次數Tm2比Tm1少得多,簡化后的操作簡單得多。
(3)從面積統計上看,未簡化繪圖過程中統計難度隨房屋層數N越大而增大,而簡化后的繪圖操作難度為零,因為程序中面積統計的算法已得實踐證明非常可靠,出錯幾率幾乎為零,說明簡化后的房產繪圖質量非常可靠。
從上面數據可知,雖然是三層較為簡單房屋,但自動化后,繪圖操作時間提高了4倍多。然而當房屋較為復雜時,例如房屋每多一層或者陽臺飄臺每層多好幾個時,自動化之前面積統計就要至少算多幾個甚至十幾個面,而自動化之后,面積統計也交給了計算機自動計算,無論再多幾層或幾十個陽臺飄臺都不會給繪圖人員帶來不便。又如當出圖的圖紙尺寸限制時,往往比例尺計算都會給繪圖人員增加不少困難,房屋每多一層都會給比例尺計算增加成倍的難度。總的來說,在自動化面積和比例尺統計之后,基于VLISP開發的命令操作不但給繪圖人員減輕了不少重復而又繁瑣的操作,而且提高了繪圖統計數據的準確性和可靠性,在以后的實際工作運用中其實用性相當強。
AutoCAD作為繪圖的一個常用的軟件平臺,雖然開發者經常對它升級而且社會上也有更專業的二次開發專業軟件(如南方CASS、WELTOP SV300),但仍不能滿足我們對成圖專業化、自動化和標注化以及數據管理方面的要求,因此對軟件進行二次開發來滿足需求十分必要。
鑒于今后對數據成果要求的高效、嚴密、嚴格性來看,建立更完善的數據成圖功能非常必要,從而很多繪圖軟件都有針對性的擴展功能。由于測繪行業也是一種服務性行業,客戶要求會隨市場的發展而變化的,而規范也會更新,新的規范也會不斷出現,這就要求我們要很好地利用二次開發功能,從而把我們的生產效率和產品質量提高到更新的層面,讓我們的服務更加完善。
[1]李學志.計算機輔助設計與繪圖[M].北京:清華大學出版社,2002.
[2]張晉西.Visual Basic與AutoCAD二次開發[M].北京:清華大學出版社,2002.
[3]李長勛.AutoCAD ObjectARX程序開發技術[M].北京:國防工業出版社,2005.
[4]李學志.Visual LISP程序設計(AutoCAD 2006)[M].北京:清華大學出版社,2006.
[5]張正綠.工程測量學[M].武漢:武漢大學出版社,2002.
[6]GB/T18316-2001.數字測繪產品檢查驗收規定和質量評定[S].