明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1502|回复: 6

[提问] 求个端点合并的东东

[复制链接]
发表于 2014-8-13 17:18:35 | 显示全部楼层 |阅读模式
一堆直线,如果有端点距离小于设定值,比如3mm时,端点就合到最近的一个点
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-8-13 17:30:29 | 显示全部楼层
高飞鸟有个神作,模糊归整,不知对你有没有用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

和我想的不一样,谢谢了  发表于 2014-9-9 11:31
不太适合  发表于 2014-9-9 10:43
 楼主| 发表于 2014-9-9 10:44:12 | 显示全部楼层
自已整了一个,笨办法,一个个的找,我不熟悉算法,希望有大侠能优化
(defun c:mint(/ CurDoc i  ent n if_txt);取得最近点
(vl-load-com)
(setq ss (ssget   '((0 . "line"))))

(setq n 0 i (sslength ss) pt_lst '())
(repeat i
   (setq ss_ent (entget (ssname ss n)))
   (setq pt_start (cdr (assoc 10 ss_ent)) pt_end (cdr (assoc 11 ss_ent)))
   (setq pt_lst (append pt_lst (list pt_start pt_end)))
   (setq n (1+ n)))
(setq pt_lst (MJ:delsame pt_lst   ))
;(princ "--------")
(setq n 0  j 0  ss_n 0)
(repeat (length pt_lst)
   (setq pt01 (nth n pt_lst))
    (setq j 0)
    (repeat (sslength ss)
           (setq ss_ent (entget (ssname ss j)))
           (setq pt_start (cdr (assoc 10 ss_ent)) pt_end (cdr (assoc 11 ss_ent)))
           (if  (< (distance pt_start  pt01) 5)
                (progn
                  (setq   ss_ent (subst   (cons 10 pt01)(assoc 10  ss_ent) ss_ent))
                  (entmod  (setq   ss_ent (subst   (cons 62 4)(assoc 62  ss_ent) ss_ent)))
                  (setq  ss_n (1+  ss_n))
                  ))
           (if  (< (distance pt_end  pt01) 5)
               (progn
                (setq   ss_ent (subst   (cons 11 pt01)(assoc 11  ss_ent) ss_ent))
                (entmod  (setq   ss_ent (subst   (cons 62 4)(assoc 62  ss_ent) ss_ent)))
                (setq  ss_n (1+  ss_n))
                  ))
           (setq j (1+ j)))
   
       (setq n (1+ n)))

(princ (strcat "\n共有 " (itoa ss_n) " 个对象微调..."))
(princ)
)

点评

overkill????  发表于 2014-9-9 11:29
 楼主| 发表于 2014-9-9 11:33:46 | 显示全部楼层
比哪两根线,共用一个点,但实际上这个点有一个小误差,得把这个点合并成一个点;
发表于 2016-5-24 20:58:09 | 显示全部楼层
myjping 发表于 2014-9-9 10:44
自已整了一个,笨办法,一个个的找,我不熟悉算法,希望有大侠能优化
(defun c:mint(/ CurDoc i  ent n if ...

大侠,少函数啊。求提供
发表于 2016-5-24 21:02:19 | 显示全部楼层
本帖最后由 dingtiedt 于 2016-5-24 21:05 编辑

删除(setq pt_lst (MJ:delsame pt_lst   )) ,也能执行,有重复的线也能执行
发表于 2023-3-26 18:16:48 | 显示全部楼层
解决了吗 谢谢解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 12:51 , Processed in 0.183501 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表