软件开发论文发表期刊推荐国家级期刊《中国信息界》,《中国信息界》杂志由国家发展和改革委员会主管,国家信息化专家咨询委员会指导,国家信息中心支持,中国信息协会主办。《中国信息界》杂志(学术版)是以 “宣传信息化、推进信息化”为宗旨;以“学术、理论、深度、全面”为鲜明特征;以反映信息化与工业化融合的大背景下我国信息化各领域的学术研究成果为主要 内容;以国内外关注中国信息化学术研究进程和从事信息化的教育、科研、管理等各方面工作的人士为核心读者的国家级权威学术期刊。
摘要:本文简述了在南方CASS9.0软件下,软件自带功能及AUTOLISP编程实现地形图缩编中植被符号的抽稀方法。
关键词:地形图,缩编,植被符号,抽稀,骨架线,比例尺,AUTOLISP,编程
1引言
在城市建设过程中,各个部门对地形图的比例尺要求也不相同。为了避免重复测绘,不同比例尺地形图通常采用缩编的方法获得,这样既经济又缩短了工期。本文基于南方CASS9.0平台,阐述了1:500地形图缩编为1:2000过程中植被符号的抽稀方法。
2CASS软件下植被符号的抽稀方法
2.1植被符号的自动缩放和抽稀
缩编的第一步是更改比例尺,其步骤为:点击菜单文件“绘图处理”中“改变当前图形比例尺”,出现“输入新比例尺<1:500>1:”后输入“2000”,出现“是否自动改变符号大小?(1)是(2)否<1>”时直接回车,文字、图块的大小、线形的宽度都由1:500直接改为1:2000的样式了。
骨架线(ASSIST层)是数字地图导入GIS的一种概念性数据结构和支撑技术。同时,也是CASS的一种底层数据结构。这种数据结构使得CASS的地图编辑可以直接针对骨架线进行。任何线状地物或面状地物,只要骨架线的数据(位置等)发生改变,与骨架线相关的所有符号也会发生相应的改变。
植被符号以块的形式存在于图形中,在改变比例尺的过程中,如果植被符号的骨架线是闭合的,其内部的植被符号图块的X、Y、Z比例由原来的0.5改变为2.0,符号被整体放大4倍,并按新的间距(1:500符号间距的4倍)重新布设符号,实现符号的自动抽稀;如果植被符号的骨架线不闭合或者没有骨架线,符号自动放大4倍,但符号的间距还是原来的间距,这种情况下就需要人工处理了。
2.2植被符号的人工抽稀
在植被符号的骨架线不闭合或者没有骨架线的情况下,改变比例尺后需要人工处理。其方法是:1,骨架线不闭合情况下修改骨架线对象特性,使其闭合,输入命令recass及选项S,选中骨架线后点击鼠标右键,完成植被符号的重构。2,没有骨架线的情况下,使用多段线沿植被符号的最外围画线并使其闭合,用相同符号已有的骨架线刷刚画的线,使其变为骨架线,删除骨架线内的符号,同样使用命令recass即可。
3AUTOLISP编程实现植被符号的抽稀方法
3.1AUTOLISP语言简介
LISP(LISTProcossingLanguage)是一种计算机的表处理语言,是迄今为止人工智能学科领域广泛应用的一种程序语言。而AUTOLISP语言是一种嵌在AUTOCAD内部的LISP编程语言,它是LISP语言和AUTOCAD的有机集合的产物,它采用了与LISP语言中的CommonLISP最相近的语法和习惯约定,它可以直接调用几乎全部AUTOCAD命令。
3.2程序的实现
在CAD命令行中输入vlide进入到LISP的编辑界面中,新建一个LSP文件,写入下列代码,并保存为fhcx.lsp。
(defunc:fhcx()
(vl-load-com)
(setvar"cmdecho"0)
(setvar"osmode"0)
(setqblc(getvar"userr1"))
(setqblxs(*0.001blc))
(setqxzl(-(*0.02blc)1.5))
(setqyzl(-(*0.01blc)1.5))
(setqs1(entsel"n请选择一个植被符号:"))
(command"zoom""e""")
(setqtyb(entget(cars1)))
(setqgjz0(assoc0tyb))
(setqtkm(assoc2tyb))
(setqtcm(assoc8tyb))
(setqglb(listgjz0tcmtkm))
(setqs(ssget"x"glb))
(setqtygs(sslengths))
(setqff(open"d:/坐标表.txt""w"))
(setqi0)
(repeattygs
(setqdgtym(ssnamesi))
(setqdgtyb(entgetdgtym))
(setqzbb(cdr(assoc10dgtyb)))
(setqzbx(rtos(carzbb)22))
(setqzby(rtos(cadrzbb)22))
(setqzbzfq(strcatzbx","zby))
(write-linezbzfqff)
(setqi(1+i))
)
(closeff)
(command"._erase"s"")
(setqtcm1(cdrtcm))
(command"layer""s"tcm1"")
(setqff(open"d:/坐标表.txt""r"))
(setqtkmc(strcat(cdrtkm)".dwg"))
(setqi0)
(while(
(setqzbzfq(read-lineff))
(setqzfqcd(strlenzbzfq))
(setqdhwz(vl-string-search","zbzfq))
(setqxzb(atof(substrzbzfq1dhwz)))
(setqyzb(atof(substrzbzfq(+dhwz2))))
(setqzbb(listxzbyzb))
(setqp1(list(-xzbxzl)(-yzbyzl)))
(setqp2(list(+xzbxzl)(+yzbyzl)))
(setqs(ssget"w"p1p2glb))
(if(=snil)
(progn
(setqp1(list(-xzb3)(-yzb3(*0.01blc))))
(setqp2(list(+xzb3)(+yzb3(*0.01blc))))
(setqs(ssget"w"p1p2glb))
(if(=snil)
(command"-insert"tkmczbbblxsblxsblxs))))
(setqi(1+i)))
(closeff)
(command"layer""s"0"")
)
3.3程序的的使用方法及编程思路
3.3.1程序的的使用方法
在CAD命令行中输入appload命令,找到fhcx.lsp文件加载,同时在启动组中添加此文件即可。在CAD命令行中输入fhcx回车,选中一个植被符号,本图内此类符号就自动进行抽稀处理。
3.3.2程序的编程思路
自动获取本文档的比例尺,确定插入符号图块的比例及间距;选中一个植被符号后将本类别符号的插入点坐标写入文本文件,然后删除此类别的植被符号;依次读出坐标文件,并以此坐标点为中心设置搜索范围,查找此类别的植被符号,如果找不到,就以此坐标为插入点插入此类别的植被符号,否则以下一坐标点为中心进行搜索,直到所有坐标点搜索完为止。
4结束语
骨架线(ASSIST层)在闭合的情况下,通过改变当前图形的比例尺可以自动完成植被符号的缩放和抽稀;在骨架线(ASSIST层)不闭合或没有骨架线的情况下,AUTOLISP编程可以快速完成符号的抽稀,减少人工操作的过程,提高工作效率。
参考文献
[1]陈道洁,付守默。AutoLISP及应用开发技术[M].成都科技大学出版社,1995。
[2]倪晓东。数字化地形地籍成图系统CASS9.0参考手册[Z].广东南方数码科技有限公司,2010。