欢迎来到天天文库
浏览记录
ID:36648784
大小:295.93 KB
页数:3页
时间:2019-05-13
《CAD二次开发在地形图入库数据整理中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第33卷第6期测绘与空间地理信息Vol.33,No.62010年12月GEOMATICS&SPATIALINFORMATIONTECHNOLOGYDec.,2010CAD二次开发在地形图入库数据整理中的应用杜磊(镇江市勘察测绘研究院,江苏镇江212001)摘要:通过几个实例介绍了VisualLISP编程在地形图入库数据整理中的应用,并给出了相关程序的代码。关键词:VisualLISP;数据整理;扩展数据中图分类号:TP311.13文献标识码:B文章编号:1672-5867(2010)06-0098-02ApplicationofCADS
2、econdaryDevelopmentinDataArrangementWorkofTopographyWarehousingDULei(ZhenjiangSurveyingandMappingInstitute,Zhenjiang212001,China)Abstract:ThispaperintroducestheapplicationofVisualLISPprogrammingindataarrangementworkoftopographywarehousing,andprovidestheprogramcodes.Keywo
3、rds:VisualLISP;dataarrangement;extendeddata成图的工作效率,避免不必要的人工重复工作。0引言2实例VisualLISP嵌于AutoCAD内部,是LISP语言与Auto-CAD相结合的产物。利用VisualLISP可以灵活方便地增2.1图层控制加AutoCAD新命令,几乎无限地扩展AutoCAD新功能,可由于地形图涉及的要素众多,常常需要关闭一些图以通过MicrosoftActiveXAutomation接口与对象交互。作层或单独显示某一层来使图面显得简洁些。通常的做法为开发工具,VisualLI
4、SP提供了一个完整的集成开发环是通过打开CAD软件的图层管理器进行设置来实现图层境,包括编译器、调试器和其他工具,可以提高自定义Au-的关闭或打开,这样操作比较烦琐,通过VisualLISP编程toCAD的效率。可以快速实现图层控制。通过AutoCAD中“工具”菜单下的“VisualLISP编辑1问题的提出器”或直接在命令行输入“Vlisp”,编写如下代码:近年来,许多城市相继开展了数字地形图的建库工;选择物体关闭其所在图层作,并建立了相应的基础地理数据标准。之前由于缺乏(defunc:1(/sscntcenlay)统一的标准规范和技术
5、手段局限等原因,测绘人员在数(setqss(ssget))据采集和成图时,只是按照制图要求进行数据采集,无法(setqcnt(sslengthss))满足GIS建库要求。存在的主要问题有:图形数据不规范(setqcnt(1-cnt))(如居民地、水系中的面状地物不封闭;道路、围墙等线状(setqc0)地物表示不连续等);属性数据不完整(如地物无代码,只(while(<=ccnt)能从图形上分辨,属性数据与图形数据不存在关联等)。(setqen(ssnamessc))这些问题如果靠人工解决,势必造成效率低下,还会出现(setqlay(cd
6、r(assoc8(entgeten))));获得被选择物遗漏。而利用VisualLISP程序能实现将我们已知如何做体所在的图层名的事情加以自动化处理,本文列举了几个实例来说明在(if(=lay(getvar"clayer"))地形图数据整理中,通过LISP编程可以大大提高数字化(command"-layer""off"lay"y""")收稿日期:2010-01-26作者简介:杜磊(1978-),男,江苏扬中人,工程师,硕士,2004年毕业于南京大学第四纪地质学专业,主要从事工程测量及地理信息系统方面的应用研究工作。第6期杜磊:CAD二次
7、开发在地形图入库数据整理中的应用99(progn(command"putp""c""210009"ss2"")(command"-layer""off"lay"")))(command"change"ss2"""p""la""zbtz""")(setqc(1+c)));表示居民地楼层的注记加属性并转移到jmd层(princ))(setqss1(ssget"x"(list(cons0"*TEXT")(cons8"zj")(cons1"2,3,4,5,6,7,8,9,10,11,12"))));选择物体单独打开其所在图层(command"p
8、utp""c""141121-2"ss1"")(defunc:2(/sscntcenlay)(command"change"ss1"""p""la""jmd""")(setqss(ssget))(princ
此文档下载收益归作者所有