Lisp列出重复点
我正在寻找lisp例程列出重复点在一个图形。我已经设法找到了一个可以删除重复点,但没有任何可以列出重复点。提前感谢您的协助。 你说的是点实体吗?你需要什么宽容?是否考虑分层?颜色?
-大卫 嗨,大卫,
是的,我说的是点实体。我要考虑的公差是点的精确坐标,比如从地形测量或从转换为AutoCAD点的GIS地图。我已经看了图层,确实有些点在某些坐标处被输入了两次。公差需要为0.001(以米为单位)。
虽然我想我昨晚在CADTutor上搜索后找到了答案。大卫,你在下面的链接中回答了。
http://www.cadtutor.net/forum/showthread.php?94248-选择重复点/第2页
但是,我需要生成一个显示重复坐标的列表,然后可以将其导出为csv文件。如果您有任何想法,我们将不胜感激。 以下未经测试,但应按要求执行:
(defun c:listdupepoints ( / d f i l s )
(if (setq s (ssget '((0 . "POINT"))))
(progn
(repeat (setq i (sslength s))
(setq p (cdr (assoc 10 (entget (ssname s (setq i (1- i)))))))
(if (vl-some (function (lambda ( x ) (equal p x 1e-3))) l)
(setq d (cons p d))
(setq l (cons p l))
)
)
(cond
( (not d)
(princ "\nNo duplicate points found.")
)
( (not (setq f (getfiled "" "" "csv" 1)))
(princ "\n*Cancel*")
)
( (setq f (open f "w"))
(foreach p d
(write-line
(apply 'strcat
(mapcar '(lambda ( x y ) (strcat (rtos x) y)) p '("," "," ""))
)
f
)
)
(close f)
)
( (princ "\nUnable to open file for writing."))
)
)
)
(princ)
)
页:
[1]