山西省地質(zhì)測繪院 崔劍凌
目前很多廣泛應(yīng)用于測繪行業(yè)中的軟件都是基于AtuoCAD平臺下開發(fā)的軟件 而AutoLisp是為擴展和自定義CAD功能而設(shè)計的編程語言 它起源于20世紀50年代末的Lisp語言。AutoLisp被引入CAD內(nèi)部 不僅具備一般高級語言的基本結(jié)構(gòu)和功能 而且還具有強大的圖形處理功能 由于AutoLisp易于掌握 因此是CAD用戶使用較為廣泛的編程語言之一。
近幾年全國第二次土地調(diào)查和土地所有權(quán)、使用權(quán)及宅基地使用權(quán)發(fā)證等工作已全面展開 人機交互式的屬性錄入工作特別繁重 通過程序解決這一問題 具有一定的現(xiàn)實意義。
南方CASS地形地藉成圖軟件是基于AutoCAD平臺技術(shù)開發(fā)的數(shù)字化數(shù)據(jù)采集系統(tǒng)。它廣泛應(yīng)用于地形成圖、地藉成圖、工程測量三大領(lǐng)域。很多測繪工作者在基礎(chǔ)測繪數(shù)字化成圖和地籍調(diào)查時 常用的工作軟件為南方CASS軟件。利用其簡單快捷的專用工具 可以完成線劃圖的制作、屬性錄入等工作。
南方CASS自帶宗地屬性錄入編輯界面
圖1
習(xí)慣在CAD中縮放移動鼠標的作業(yè)員通過界面錄入屬性很不方便。如果了解CASS中宗地屬性的存儲結(jié)構(gòu) 利用VLISP可編譯LISP命令 屬性的錄入和修改工作將會變得簡便許多。以下將介紹在CASS中宗地屬性的存儲方式 以及利用LISP操作擴展屬性的方法進行宗地屬性批量錄入和修改的流程。
在CASS中 宗地屬性是利用擴展屬性進行存儲的。下面是一個顯示宗地屬性的LISP程序。
圖2
在CASS環(huán)境下加載后 鍵入LOOKK 并選擇已有界址線 就會得到如下信息
圖3
其中 以上自“-3”后面的內(nèi)容即是宗地屬性信息而在CAD中利用LISP對于“-3”后面的擴展屬性是可以進行批量賦予和修改的。
CASS中屬性存儲是采用表的形式存儲的 比如宗
圖4
地基本屬性 (SOUTH (1000 . 300000) (1000 .530428001005JC00005) (1000 . 白有春) (1000 . 072))
SOUTH代表是基本南方屬性 下面由四個元素組成 (1000 . 300000)表示南方屬性宗地的代碼 (1000. 530428001005JC00005)表示宗地號 (1000 . 白有春)表示宗地權(quán)利人 (1000 . 072)表示宗地土地利用類型。相對應(yīng)的表中部分為
圖5
CASS中其它屬性對應(yīng)表如下
了解了宗地屬性的存儲規(guī)律 對于宗地屬性的賦予和修改就可以通過編寫LISP程序處理 本文中以建立一個街坊的宗地基本屬性為例進行說明。
首先根據(jù)外業(yè)調(diào)查情況 在CAD底圖上圈定宗地界址線 并將調(diào)查得到的權(quán)利人姓名、宗地編號以及地類類型在底圖上按屬性對應(yīng)層標注
圖7
編寫LISP程序自動搜索相應(yīng)信息并自動轉(zhuǎn)換成宗地屬性(princ" 選取加入界址線...") (setq plines (ssget(list (cons 0 "*POLYLINE") (cons 8 "JZD"))))利用選取的每一條畫好的線 生成一個坐標冊ZBC 自動按對應(yīng)的DM層 代碼 搜索到對應(yīng)的標注數(shù)據(jù) (setq xq(ssget "cp" zbc (list (cons 0 "TEXT") (cons 8 dm))))(setq dmnr (cdr (assoc 1 (entget (ssname xq 0))))) ;并 (setq bnr (cons 1000 dmnr)) (setq b (list (list dm bnr)))構(gòu)造屬性表 于是生成一個新的“-3”的擴展屬性表(setq ent56 (list(append (list -3) b)))。準備就緒后 用(setq ent55 (entget entnam1))將原來線上的屬性提取出來 再將新舊屬性合并為一個完整的屬性表(setq newent (append ent55 ent56)),同時 (entmod newent) 更新數(shù)據(jù)庫。這樣新的宗地信息就根據(jù)圖面注記自動錄入對應(yīng)宗地屬性值里了。
同樣的思路和方法 也可以對宗地屬性進行批量修改 比如 利用宗地擴展屬性進行宗地信息的過濾和選擇 實現(xiàn)宗地區(qū)號的統(tǒng)一替換 判斷宗地號位數(shù)、身份證號碼及電話號碼位數(shù)錄入是否有錯誤 并逐一提取對應(yīng)信息。如果有錯 即用(command"change" entnam1 "" "p" "c" "5" "")修改線的顏色進行提示。通過制作這些實用的小程序 讓繁雜而重復(fù)的工作簡單化 繼而有效地提高作業(yè)效率和作業(yè)質(zhì)量。以及在數(shù)據(jù)庫的建設(shè)時也可以將宗地圖表信息文本化便于利用與管理。