利用
Autolisp
语言实现重复实体的删除
摘
要
:
随着外业数据的采集和内业
Autocad
图形编辑的不断深入
,
这些日常
维护有可能在图形中产生重复数据实体。
本文阐述了如何用
Autolisp
语言编程删
除这些重复实体
,
以确保图元在地形图中的唯一性和合理性。
关键词
:Autolisp
语言
重复实体
Autocad
数字化测绘大部分都是使用
Autocad
软件
,
即使是大型商用测绘软件有些也
是以
Autocad
为基础平台
,
例如南方测绘公司的
CASS
软件。因此
,
学会使用
Autocad
是每个测绘工作者的必修课。而单单会使用
Autocad
还不能完全解决工
作中可能出现的问题。例如
,
由于重复插入图块或者原地复制实体造成图形中存
在大量重复的实体
,
依靠
Autocad
现有命令又不能完全删除干净。这时就要用到
Autolisp
语言了。
Autolisp
语言是开发
Autocad
的重要工具
,
是
Lisp
语言和
Autocad
有机结合的产物
,
在
Autocad
的程序开发过程中起到了巨大的作用。所以
,
学好
Autolisp
语言
,
从而在工作中设计一个好的处理程序
,
会使复杂的任务变得简单容
易、事半功倍。
1
程序设计思路
首先生成一个选择集
,
选择要处理的图形实体。其次对选择集的全部实体进
行重复比对
,
把过滤出的重复实体添加到另一个选择集。最后删除掉重复实体选
择集中的图元。
2
自定义函数
处理过程中用到两个重要自定义函数
,
第一是包含实体的最小外框函数
:
(defun xyp-get-MinMaxPoint (ename mode / pointmax pointmin
dx dy pt1 pt2 pt3 pt4 pt5
pt6 pt7 pt8 pt9 point
);
此函数为得到实体外围框九点坐标表
(vla-getboundingbox
(vlax-ename->vla-object ename)
„minpoint
„maxpoint