山西省地质测绘院 崔剑凌
目前很多广泛应用于测绘行业中的软件都是基于AtuoCAD平台下开发的软件 而AutoLisp是为扩展和自定义CAD功能而设计的编程语言 它起源于20世纪50年代末的Lisp语言。AutoLisp被引入CAD内部 不仅具备一般高级语言的基本结构和功能 而且还具有强大的图形处理功能 由于AutoLisp易于掌握 因此是CAD用户使用较为广泛的编程语言之一。
近几年全国第二次土地调查和土地所有权、使用权及宅基地使用权发证等工作已全面展开 人机交互式的属性录入工作特别繁重 通过程序解决这一问题 具有一定的现实意义。
南方CASS地形地藉成图软件是基于AutoCAD平台技术开发的数字化数据采集系统。它广泛应用于地形成图、地藉成图、工程测量三大领域。很多测绘工作者在基础测绘数字化成图和地籍调查时 常用的工作软件为南方CASS软件。利用其简单快捷的专用工具 可以完成线划图的制作、属性录入等工作。
南方CASS自带宗地属性录入编辑界面
图1
习惯在CAD中缩放移动鼠标的作业员通过界面录入属性很不方便。如果了解CASS中宗地属性的存储结构 利用VLISP可编译LISP命令 属性的录入和修改工作将会变得简便许多。以下将介绍在CASS中宗地属性的存储方式 以及利用LISP操作扩展属性的方法进行宗地属性批量录入和修改的流程。
在CASS中 宗地属性是利用扩展属性进行存储的。下面是一个显示宗地属性的LISP程序。
图2
在CASS环境下加载后 键入LOOKK 并选择已有界址线 就会得到如下信息
图3
其中 以上自“-3”后面的内容即是宗地属性信息而在CAD中利用LISP对于“-3”后面的扩展属性是可以进行批量赋予和修改的。
CASS中属性存储是采用表的形式存储的 比如宗
图4
地基本属性 (SOUTH (1000 . 300000) (1000 .530428001005JC00005) (1000 . 白有春) (1000 . 072))
SOUTH代表是基本南方属性 下面由四个元素组成 (1000 . 300000)表示南方属性宗地的代码 (1000. 530428001005JC00005)表示宗地号 (1000 . 白有春)表示宗地权利人 (1000 . 072)表示宗地土地利用类型。相对应的表中部分为
图5
CASS中其它属性对应表如下
了解了宗地属性的存储规律 对于宗地属性的赋予和修改就可以通过编写LISP程序处理 本文中以建立一个街坊的宗地基本属性为例进行说明。
首先根据外业调查情况 在CAD底图上圈定宗地界址线 并将调查得到的权利人姓名、宗地编号以及地类类型在底图上按属性对应层标注
图7
编写LISP程序自动搜索相应信息并自动转换成宗地属性(princ" 选取加入界址线...") (setq plines (ssget(list (cons 0 "*POLYLINE") (cons 8 "JZD"))))利用选取的每一条画好的线 生成一个坐标册ZBC 自动按对应的DM层 代码 搜索到对应的标注数据 (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)))构造属性表 于是生成一个新的“-3”的扩展属性表(setq ent56 (list(append (list -3) b)))。准备就绪后 用(setq ent55 (entget entnam1))将原来线上的属性提取出来 再将新旧属性合并为一个完整的属性表(setq newent (append ent55 ent56)),同时 (entmod newent) 更新数据库。这样新的宗地信息就根据图面注记自动录入对应宗地属性值里了。
同样的思路和方法 也可以对宗地属性进行批量修改 比如 利用宗地扩展属性进行宗地信息的过滤和选择 实现宗地区号的统一替换 判断宗地号位数、身份证号码及电话号码位数录入是否有错误 并逐一提取对应信息。如果有错 即用(command"change" entnam1 "" "p" "c" "5" "")修改线的颜色进行提示。通过制作这些实用的小程序 让繁杂而重复的工作简单化 继而有效地提高作业效率和作业质量。以及在数据库的建设时也可以将宗地图表信息文本化便于利用与管理。