lisp语言在宅基地调查中的应用研究_第1页
lisp语言在宅基地调查中的应用研究_第2页
lisp语言在宅基地调查中的应用研究_第3页
lisp语言在宅基地调查中的应用研究_第4页
lisp语言在宅基地调查中的应用研究_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    lisp语言在宅基地调查中的应用研究    吕永杰摘要:cass软件是目前地籍调查中主流的测绘软件,运用lisp语言可以方便快捷的实现宅基地调查中涉及到的地形图的绘制、宗地属性批量改正以及面积统计等内容,极大的提高了调查成果的质量和效率。abstract: cass software is the mainstream surveying and mapping software in cadastral surveys. the use of lisp language can quickly and easily implement the

2、topographic mapping, parcel attribute batch corrections and area statistics involved in homestead surveys, which greatly improves the quality and efficiency of survey results.关键词:宅基地调查;cass软件;lisp语言key words: homestead survey;cass software;lisp language:tp391.7           

3、60;                          文獻标识码:a                                  :1006-4311(2020)08-0211-020  引言cass在宅基地调查中应用广泛,无论是地形图的绘制还是宗地图的制作都便捷易操作。lisp

4、语言在cass中可以实现其功能的延伸,处理一些固有功能之外无法实现的应用,针对宅基地调查数据量大、结构繁琐、逻辑关系复杂等实际情况,可以利用lisp语言实现对调查数据的批处理,将大大提高调查工作的质量和效率。1  cass软件和lisp语言简介cass软件是基于cad平台开发的,一套集地形、地籍、空间数据建库、工程应用、土石方算量等功能为一体的软件系统。软件的方便、快捷、易用充分得到了市场的认可和用户的高度评价。lisp语言(lisp,list processing的缩写)是一种早期开发的、具有重大意义的表处理语言。它最突出的特点是实现技术简单,使用表结构来表达非数值计算问题。2 &

5、#160;lisp程序在调查中的应用实例宅基地调查中的基础数据录入、改正和统计是调查中工作量最大和最容易出错的部分,本文根据实例来解决调查中遇到的问题。批量改正宗地图中的界址相关的属性问题。在调查中施工方会经常遇到发包方要求变更基础数据,如改变界址类别、类型、界标等情况,下面示例为cass软件中批量修改界址类别。(vl-load-com)(print "=")(setvar "osmode" 0)(setvar "cmdecho" 0)(setq ss(ssget "x" '(0 . "polyl

6、ine")(8 . "jzd")sn(sslength ss)i 0);endsetq(repeat sn(setq e1(ssname ss i)(while(setq ee1(entnext e1);(progn(setq data(entget ee1 '("*");(setq data1 (assoc -3 (entget ee1 '("*");(setq data2(cadr(assoc '-3 (entget ee2 '("jzxlb");(setq data1

7、(subst '("jzxlb" (1000 . "9 xx") '("jzxlb" (1000 . "8 xx") data1)(setq data (subst data1 (assoc '-3 data) data)(entmod data)(setq e1 ee1);end progn);end while(setq i(+ i 1)(print (strcat "还有" (itoa(- sn i 1) "宗地未处理,请等候!");end re

8、peat);enddefun(defun c:aa()(princ "选择要仅留图层的实体")(setq ename (car (entsel)(if (/= nil ename)(progn(setq lay (cdr (assoc 8 (entget ename)(setvar "clayer" lay)(command "-layer" "off" "*" "" "" "") ) )(princ)(defun c:q()(comm

9、and "-layer" "on" "*" "" )(princ)通过此例,可以实现界址类别的批量转换,最大限度的提高工作的效率和质量。统计规定范围内房屋数量、面积等是在宅基地调查中无论是阶段性还是最终工作量的统计中经常遇到的情况,通过每幅图的逐一统计,数量较少时,可以实现,对于宅基地调查动辄几万甚至几十万宗的统计显然是不现实的。下面示例为cass软件中批量统计范围内的计算面积的房屋的总面积。; 砖房:; registered application name: south;* code 1000, ascii s

10、tring: 141121;* code 1040, real number: 2; 混房:;* registered application name: south;* code 1000, ascii string: 141161;* code 1040, real number: 3; 简单房:;* registered application name: south;* code 1000, ascii string: 141200; 钢房屋;* registered application name: south;* code 1000, ascii string: 141141;*

11、 code 1040, real number: 4;命令 tj(vl-load-com)(defun c:tj()(gc)(initget 1 "y n")(setq x (getkword "是否计算简单房? 是(y) or 否(n) ")(setq ss (ssget  "x"  '(0 . "lwpolyline");过滤器选择圆(8 . "jmd");过滤器选择jmd图层   ) )ssnum (sslength ss) ;选择集中要素个数nown

12、um 0;目前选择集中的序号jdf 0;简单房建筑面积zf 0;砖房建筑面积hf 0;混房占地面积gf 0;钢房)(repeat ssnum ;循环处理选择集(setq ename(ssname ss nownum) ;逐一取出要素nownum(1+ nownum );当前序号递增elist(entget ename '("south");取得要素表xdata(cdr(assoc -3 elist);取得要素扩展属性表obj (vlax-ename->vla-object ename);activex对象mj (vl-catch-all-apply '

13、vla-get-area (list obj);建筑面积);end setq(if   (and (not (vl-catch-all-error-p mj) (/= nil xdata) ;如果有面积属性并有扩展属性(progn(setq fwlx (cdr(nth 1 (car xdata);房屋类型fwcs (cdr(nth 2 (car xdata);房屋层数 )(if(= fwcs nil)(setq fwcs 1);如果没有层数就是1(if (= fwlx "141121");砖房(setq zf (+ zf (* mj fwcs) )(if 

14、0;(= fwlx "141161");混房(setq hf (+ hf (* mj fwcs) )(if (= fwlx "141141");钢房(setq gf (+ gf (* mj fwcs) )(if (and (= fwlx "141200")(= x "y");简单房(setq jdf (+ jdf (* mj fwcs) );end progn);end if);end repeat(if (= x "y")(print (strcat "簡单房建筑面积:"

15、(rtos jdf 2 2) " 砖房建筑面积:" (rtos zf 2 2) " 混房建筑面积:" (rtos hf 2 2) " 钢房建筑面积:" (rtos gf 2 2)   " 总建筑面积:" (rtos (+ jdf zf hf gf) 2 2)(print (strcat "砖房建筑面积:" (rtos zf 2 2) " 混房建筑面积:" (rtos hf 2 2) " 钢房建筑面积:" (rtos gf 2 2)" 总

16、建筑面积:" (rtos (+   zf hf gf) 2 2)(print) )裁切图幅是在宅基地调查中经常遇到的情况,将地籍总图裁剪成50×50,50×40的标准图幅。下面示例为地籍总图裁剪小图幅。(defun c:bb()(command "osnap" "off")(princ "n选择图号")(setq s (ssget)(setq th 0)(setq xxx 0)(setq name (ssname s 0)(setq a (entget name)(setq t1 (assoc

17、'0 a)(setq t1 (cdr t1)(if (= t1 "text") (progn(setq tx (assoc '1 a)(setq tx (cdr tx)(setq llen (strlen tx)(setq llen (- llen 2)(setq tx1 (substr tx 1 llen)(while (/= xxx nil)(if (< th 10)(setq thh (strcat "0" (rtos th 2 0)(if (>= th 10)(setq thh (rtos th 2 0)(setq n

18、ame1 (strcat tx1 thh)(setq th (+ th 1)(setq p1 (getpoint"n 输入第一点:")(setq xxx p1)(if (/= p1 nil)(progn(setq p2 (getpoint"n 输入第二点:")(setq mmm (strcat "e:/" "plot" "/" name1)(command "-wblock" mmm "" p1 "w" p1 p2 "")(command "oops")  ) ) ) )3  结束语cass软件可以通过lisp语言方便快捷的实现宅基地调查中涉及到的地形图的绘制、宗地属性批量改正以及面积统计等内容,极大的提高了调查成果的质量和效

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论