于 健
(北京五色金土信息科技有限公司,北京 100000)
在地籍調查工作中,地籍成果圖表的輸出是必不可少的,就傳統地籍測繪而言,大家習慣于在AutoCAD的基礎上,利用南方CASS或者廣州CASS來進行地籍測圖的內業出圖工作,以上插件主要通過提供預編的要素種類對地形地物進行標注,利用AutoCAD中的XData擴展屬性來記錄地形地物的屬性信息。
同樣,插件本身也提供了成果圖表的輸出工具,但是在很多時候插件自帶的成果圖表輸出工具并不能滿足我們的出圖要求,各地的地方標準要求的成果圖表的輸出格式不盡一致,很多時候我們需要對成果圖表進行二次加工,而且修改起來工作量較大,耗費人力較多。
北京五色金土信息科技有限公司承接門頭溝、豐臺、昌平等區縣的農村集體土地確權登記頒證工作。項目涉及到大量地籍測繪及宗地成果圖表輸出等工作,由于地方標準的不同,傳統的地籍測繪軟件廣州開思等不能完全滿足北京市地籍成果圖表的輸出工作,出圖后有相當一部分的內容不一致,需要在原有圖表的基礎上進行整飾,圖表整飾修改的工作量較大,隨著標準要求的不同,成果圖表的修改量進一步增加,造成很多不必要的人力資源浪費。
基于諸多不便因素的制約下,文章提出在地籍測繪成果總圖的基礎上,通過AutoCAD自帶的Lisp語言編輯器進行繪制代碼編寫,更加貼合實際生產工作,更能提高工作效率。
Lisp語言和眾多編程語言一樣,有著相類似的地方,通過對代碼的編譯執行來完成一系列程序化的工作。Lisp語言相對來說應用起來靈活,簡化的程序處理,不僅在處理速度上表現優異,在內存管理等方面也非常優秀。
在地籍調查中,主要采用的AutoCAD的擴展屬性來存儲實體的地籍屬性信息,將宗地相關屬性存儲在宗地圖形的擴展屬性中。由于地籍屬性信息通過擴展屬性來存儲,而擴展屬性則直接掛接在實體對象上,故可以通過獲取擴展屬性來獲取相應圖形的地籍信息。擴展屬性主要通過擴展屬性注冊名來進行標識,可以通過該名稱提取擴展屬性表中的所有信息,再通過相對位置來提取相應的屬性信息,從而獲取完整的地籍屬性信息。
以宗地圖和界址點成果表為例,繪制步驟主要分為:裁切另存圖形文件、繪制宗地圖、繪制界址點成果表等三個方面。
3.2.1 裁剪另存圖形
一般而言,地籍測量的成果總圖中包含了全部的宗地,而成果圖表需要單宗地進行繪制。因此需要根據宗地的范圍進行圖形裁剪,將宗地及宗地四鄰關系重新存儲為新的圖形,再進行宗地成果圖表的繪制。為了便于操作,可以采用批量裁剪的方式,將總圖中所有的宗地外圍擴大,然后進行批量裁剪,將裁剪后的圖形統一輸出到“作業成果”文件夾中。
在Lisp編輯器中定義一個批量裁剪命令,然后選擇需要裁剪的閉合宗地線,然后遍歷所選宗地線,逐一將宗地線的外圍擴大10個單位距離,以保留相鄰關系。然后對圖形進行裁剪,通過圖形擴展屬性獲取該宗地線的地籍號,將裁剪好的圖形以該宗地的地籍號命名保存到指定的“作業成果”文件夾中。
批量裁剪的目的是獲取每一宗地的小范圍宗地圖形文件,以地籍號統一命名,便于下一步對每一宗地進行成果圖表繪制,最后獲得每一宗地的成果圖表文件。
3.2.2 繪制宗地圖
(1)繪制圖框要素。根據地籍號選擇圖形文件,打開裁剪后的宗地圖形,調用命令通過圖形選擇工具選擇需要繪制的宗地線,程序自動讀取該宗地圖形的界址點坐標以及擴展屬性等信息。通過坐標計算獲取宗地幾何中心的位置,根據宗地圖形的包絡矩形以及紙張大小計算最適宜繪圖比例尺。將圖形按照比例尺進行圖紙空間縮放,通過調用預先制作的圖框模板,作為塊插入到相應的坐標位置。然后根據宗地的擴展屬性將宗地號、權利人名稱、圖幅號、土地坐落、制圖人、比例尺等相關信息標注到圖框的相應位置,完成圖框要素的繪制。
(2)繪制界址點、界址線。通過圖形對象獲取界址點信息,自動檢索宗地拐點坐標,根據標注圖表樣式,按照坐標位置自動繪制界址點圈以及界址線,界址線繪制時需要根據界址點圈半徑回縮,以防止壓蓋。
(3)界址點號、界址邊長標注。通過界址點坐標,程序自動檢索界址點位置,根據界址點連接的前界址線和后界址線的向量角計算出兩根界址線偏移的中心角方向,通過判斷向量夾角的大小計算偏移量,將坐標往該方向偏移指定距離單位,標注界址點號。
(4)標注本宗基本信息。計算本宗地中心點位置,將宗地號、權利人、宗地面積、地類代碼等按照標準圖表樣式計算各自的標注點,標注到中心點位置附件的相應標注點上,完成本宗地基本信息的標注。
(5)標注鄰宗基本信息。裁剪宗地時外擴了一定距離,可以根據裁剪附帶下來的鄰宗宗地線,來計算鄰宗標注中心點的位置,通過其擴展屬性來將鄰宗的宗地號、權利人、地類代碼等按照標準圖表樣式標注到適宜標注點,完成鄰宗基本信息的標注。
3.2.3 繪制坐標成果表
(1)繪制成果表框架。根據以上宗地圖位置,按照圖紙紙張的大小,往右偏移一個適當的位移,確定坐標成果表的起始位置,將成果表模板以圖塊的方式插入到該位置。根據圖表的位置將宗地號、圖幅號、繪圖員等相關信息標注到相應的表框位置。
(2)繪制宗地略圖。根據地方標準,界址點成果表的最后需要繪制宗地略圖,因此,需要根據界址點成果表中的略圖框的大小,將宗地線按比例縮放到合適的位置,并按照界址點號標注的方式進行略圖點號標注。
(3)標注界址點號及坐標成果值。獲取界址點號標注的位置,遍歷所有界址點坐標,將界址點號、界址點類型、界址點坐標值、界址邊長逐一標注到表框中的合適位置,該標注位置主要為縱坐標遞減的方式計算即可。
(4)跨頁處理。界址點數超過單張表的最大記錄數時,需要重新添加一張新表。需要重新計算下一張表的起始位置,重復進行一次表框繪制,表格換頁后,需要將第一行進行處理,要求與上一張表的最后一行保持一致,然后繼續對剩余界址信息進行標注,直至所有坐標值均標注完成。
AutoCAD中沒有現成的圖形裁剪功能,經過試驗和對比,本方案中采用的方式是將宗地線外擴10個單位,與所有相交的線段依次進行打斷處理,以實現裁剪的目的。由于打斷命令一次只能將圖形打斷成兩部分,對于部分圖形,需要進行兩次打斷處理才能完成相交打斷操作,將打斷后的圖形通過框選的方式復制到一個新的文件,并以宗地號命名保存,完成圖形裁剪操作,由于打斷操作均在總圖中進行,為了保持原圖的完整性,在每一宗地裁剪完成后,都需要通過AutoCAD的分組回退命令方式將圖形自動還原到原始狀態。
擴展屬性的存儲方式決定了擴展屬性的提取方式,在提取擴展屬性時,需要了解每一個需要的擴展屬性所存儲的位置序號,然后再通過(entget)命令來將所有擴展屬性取出,通過(nth)命令來提取相應位置的擴展屬性,例如:(setqPL_djh(cdr(nth20(nth0(cdr(assoc3(entgetent1'("DJInfo"))))))))。通過獲取“DJInfo”注冊名下的所有擴展屬性信息,然后提取第20位置上的值賦值PL_djh,完成地籍號的擴展屬性提取。

圖1 比例尺計算代碼
Lisp中要獲取CAD圖形的坐標等圖像信息,需要通過vlax擴展函數來進行提取,將宗地線作為對象提取其所有拐點坐標信息,按照需求將拐點坐標XY值存儲到數組中,演示代碼如下:
由于在AutoCAD中,成果圖表需要按照1∶1大小打印成圖,這就需要將圖形按照指定的大小進行圖紙空間變換,比例尺的計算方法如下:
根據本宗地拐點坐標值獲取最大、最小坐標值,判斷包絡矩形的XY值與圖紙寬高大小關系,確定采用X值或者Y值進行計算,通過計算獲得最適宜的縮放比例尺,要求縮放比例尺為100的整數倍。
通過計算出來的最適宜比例尺,將宗地按照該比例尺進行圖紙空間縮放,則可以將圖形以最適宜的方式縮放到圖框中。

圖2 比例尺計算代碼
在標注點位中,圖框中個元素的標注點相對固定,可以根據圖框的插入點進行相對定位,進行圖框要素的標注,對于圖形中界址點號,界址線邊長等活動元素,需要按照圖形進行計算標注點位置。
(1)界址邊長標注點位計算。通過圖形對象信息的獲取,可以得到該宗地拐點坐標序列,同時也可用計算界址邊長序列,遍歷所有界址邊長,通過獲取起點坐標和終點坐標,獲取界址線向量,通過計算兩點之間的中點位置,然后在垂直平分線上按照指定的距離定點,即可計算出界址邊長標注的點位坐標,通過點位坐標以及向量角度來完成界址邊長的標注。

圖3 界址邊長標注代碼

圖4 垂直平分線定點代碼
(2)界址點號標注點位計算。界址點號標注點的計算需要計算前界址線的向量與后界址線的向量,通過計算出向量夾角中心線的向量方向,然后同樣通過向量定點的方式來計算界址點號標注的位置。
基于AutoCAD的Lisp程序自動繪圖技術能夠快速便捷的協助地籍作圖人員輸出成果圖表,實現了成果圖表自定義模板以及快速制圖功能。從讀取擴展屬性到圖形屬性,Lisp能夠充分利用地籍調查測量中的相關信息進行匯總制圖,達到了數據處理的準確性和高效性,在地籍工作這方面表現良好,具有一定的可行性。
Lisp程序化作圖不僅可以快速繪制成果圖表,還可以避免由于人為原因造成的疏漏和錯誤。程序化作圖能夠協助地籍作圖者快速制作出完整正確的宗地成果圖表等,節省人力物力,也能相應運用到其他相關圖表的生產,從而達到一套技術多種運用的目的,實現制圖及數據處理一體化和高效化。