llsheng_73 发表于 2023-3-31 11:49:30

(defun closepline(e / en c70 e2);;去除多段线首尾重合点并闭合
(setq en(entget e)c70(cdr(assoc 70 en))e2(reverse en))
(if(equal(vlax-curve-getstartpoint e)
           (vlax-curve-getpointatparam e(1-(cdr(assoc 90 en))))1e-8)
    (progn
      (vl-every'(lambda(x)(if(/=(car x)10)(setq e2(cdr e2))))e2)
      (entmod(subst(cons 70(logior c70 1))(cons 70 c70)
                   (append(reverse(cdr e2))(List(assoc 210 en))))
                   ))))

丶吟游诗人灬 发表于 2023-4-9 15:20:01

感谢楼主分享,有空研究一下

weijiewen 发表于 2023-4-20 08:45:40

请问楼主解决了嘛?

Pegasus 发表于 2023-9-14 09:30:56

KO你 发表于 2020-4-22 16:00
在论坛上就能找到
快捷键qdd多段线顶点优化
(defun c:qdd(/ om ss l_length i j n mm z data new_l ...

有一个BUG。如果多段线的各段都在一条直线上,代码运行结果是删除了该多段线。
页: 1 [2]
查看完整版本: 首尾连接但不闭合的多段线如何使之闭合