下载此文档

利用Autolisp语言实现重复实体删除.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
利用Autolisp语言实现重复实体的删除利用Autolisp语言实现重复实体的删除,科技论坛,李龙山约3202字摘要:随着外业数据的采集和内业Autocad图形编辑的不断深入,这些日常维护有可能在图形中产生重复数据实体。本文阐述了如何用Autolisp语言编程删除这些重复实体,以确保图元在地形图中的唯一性和合理性。关键词:Autolisp语言重复实体Autocad数字化测绘大部分都是使用Autocad软件,即使是大型商用测绘软件有些也是以Autocad为基础平台,例如南方测绘公司的CASS软件。因此,学会使用Autocad是每个测绘工作者的必修课。而单单会使用Autocad还不能完全解决工作中可能出现的问题。例如,由于重复插入图块或者原地复制实体造成图形中存在大量重复的实体,依靠Autocad现有命令又不能完全删除干净。这时就要用到Autolisp语言了。Autolisp语言是开发Autocad的重要工具,是Lisp语言和Autocad有机结合的产物,在Autocad的程序开发过程中起到了巨大的作用。所以,学好Autolisp语言,从而在工作中设计一个好的处理程序,会使复杂的任务变得简单容易、事半功倍。1程序设计思路首先生成一个选择集,选择要处理的图形实体。其次对选择集的全部实体进行重复比对,把过滤出的重复实体添加到另一个选择集。最后删除掉重复实体选择集中的图元。2自定义函数处理过程中用到两个重要自定义函数,第一是包含实体的最小外框函数:(defunxyp-get-MinMaxPoint(enamemode/pointmaxpointmindxdypt1pt2pt3pt4pt5pt6pt7pt8pt9point);此函数为得到实体外围框九点坐标表(vla-getboundingbox(vlax-ename->vla-objectename)'minpoint'maxpoint)(setqpointmax(vlax-safearray->listmaxpoint)pointmin(vlax-safearray->listminpoint)dx(/(-(carpointmax)(carpointmin)))dy(/(-(cadrpointmax)(cadrpointmin)))pt1pointminpt2(polarpt10dx)pt3(polarpt20dx)pt4(polarpt1(*)dy)pt5(polarpt40dx)pt6(polarpt50dx)pt7(polarpt4(*)dy)pt8(polarpt70dx)pt9pointmax)(cond((=mode1)(setqpointpt1))((=mode2)(setqpointpt2))((=mode3)(setqpointpt3))((=mode4)(setqpointpt4))((=mode5)(setqpointpt5))((=mode6)(setqpointpt6))((=mode7)(setqpointpt7))((=mode8)(setqpointpt8))((=mode9)(setqpointpt9))(t(setqpointpt1)))point)如果不用这个函数,重复比对时就要一一比对,对于大型图形程序处理速度将异常缓慢

利用Autolisp语言实现重复实体删除 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人scuzhrouh
  • 文件大小22 KB
  • 时间2020-08-07