找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 937|回复: 6

[求助] 求把一个多段线角点连线的代码

[复制链接]

已领礼包: 10个

财富等级: 恭喜发财

发表于 2018-12-10 11:31:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
各位大师,如图,谢谢

搜狗截图20181210112904.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-12-10 12:26:40 | 显示全部楼层
试试

  1. (defun c:tt (/ a d e f i l n v x)
  2.   (if (setq e (ssget "_+.:E:S" '((0 . "LWPOLYLINE") (-4 . "&=") (70 . 1))))
  3.     (progn (setq l (entget (ssname e 0))
  4.                  l (cons (assoc 10 (reverse l)) l)
  5.                  f (lambda (x) (reverse (cdr x)))
  6.                  d 1e308
  7.                  n 0
  8.            )
  9.            (while (setq a (assoc 10 l))
  10.              (cond ((not v) (setq v (cons (cdr a) v)))
  11.                    ((equal (car v) (cdr a) 1e-3))
  12.                    ((< (setq x (distance (cdr a) (car v))) d)
  13.                     (setq d x
  14.                           i n
  15.                           v (cons (cdr a) v)
  16.                     )
  17.                    )
  18.                    ((setq v (cons (cdr a) v)))
  19.              )
  20.              (setq l (cdr (member a l))
  21.                    n (1+ n)
  22.              )
  23.            )
  24.            (setq v (f v))
  25.            (repeat i (setq v (reverse (cons (car v) (f v)))))
  26.            (repeat (- (/ (length v) 2) 2)
  27.              (entmake (list '(0 . "LINE")
  28.                             (cons 10 (car (setq v (f (f v)))))
  29.                             (cons 11 (last v))
  30.                       )
  31.              )
  32.            )
  33.     )
  34.   )
  35.   (princ)
  36. )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 374个

财富等级: 日进斗金

发表于 2018-12-10 16:28:28 | 显示全部楼层
很好支持谢谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-12-10 18:41:42 | 显示全部楼层
  1. (defun connect (e / _point d d1 l p1 p2 a b n i)
  2.   (setq _point vlax-curve-getpointatparam
  3.         d      (vlax-curve-getdistatparam
  4.                  e
  5.                  (setq n (fix (+ 0.1 (vlax-curve-getendparam e))))
  6.                )
  7.   )
  8.   (repeat (setq i (1+ n))
  9.     (setq l (cons (setq p1 (_point e (setq i (1- i)))) l))
  10.     (if (setq p2 (cadr l))
  11.       (if (and (< (setq d1 (distance p1 p2)) d) (not (zerop d1)))
  12.         (setq d d1
  13.               a (rem (1+ i) n)
  14.               b i
  15.         )
  16.       )
  17.     )
  18.   )
  19.   (mapcar 'set '(a b) (list (max a b) (min a b)))
  20.   (while (progn (setq a (rem (1+ a) n))
  21.                 (setq b (rem (+ n (1- b)) n))
  22.                 (not (= (rem (1+ a) n) b))
  23.          )
  24.     (entmake (list '(0 . "LINE")
  25.                    (cons 10 (_point e a))
  26.                    (cons 11 (_point e b))
  27.              )
  28.     )
  29.   )
  30. )

  31. (defun c:tt ()
  32.   (setq ss (ssget '((0 . "LWPOLYLINE"))))
  33.   (repeat (setq i (sslength ss))
  34.     (connect (ssname ss (setq i (1- i))))
  35.   )
  36.   (princ)
  37. )


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5295个

财富等级: 富甲天下

发表于 2018-12-10 21:30:30 | 显示全部楼层
不看图还真不好理解。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2018-12-11 09:58:38 | 显示全部楼层
两位大师动作神速。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 155个

财富等级: 日进斗金

发表于 2019-9-6 19:41:29 | 显示全部楼层
为还不够完美,有些顶点没连上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 04:24 , Processed in 0.232739 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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