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