香远益清 发表于 2020-3-13 15:42:35

关于同心圆的删除问题

;;;设置容差为20的删除同心圆(包括块和圆弧)小程序
(defun c:tt ()
(setq ss (ssget '((0 . "circle,arc,insert"))))
(if ss
    (progn
      (setq m (sslength ss)
            n 0
      )
      (while (< n m)
      (setq e      (ssname ss n)
            n      (1+ n)
            l      n
            p      (assoc 10 (entget e))               
            P      (vl-princ-to-string (list (nth 1 p) (nth 2 p)))
            a         nil
      )
      (while (< l m)
          (setq      f(ssname ss l)
                l(1+ l)
                p1 (assoc 10 (entget f))
                P1 (vl-princ-to-string (list (nth 1 p1) (nth 2 p1)))
          )
          (if
            (equal P P1 20);;设置容错值20

            (progn
            (ssdel f ss)
             (entdel f)
               (setq l (1- l)
                  m (1- m)
                  a t
            )
            )
          )
      )
      (if a
          (progn
            (ssdel e ss)
          (entdel e)
                  (setq n (1- n)
                  m (1- m)
            )
          )
      )
      )
    )
)
)
;;以上程序是网上的帖子,测试发现问题:对于同心圆的中心点Y值增加不起作用,对于X值减小也不起作用,怎么回事?请高手指点。

页: [1]
查看完整版本: 关于同心圆的删除问题