找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3248|回复: 7

[编程申请]:删除多段线上的重合点 【完成】

[复制链接]
发表于 2003-10-28 11:52:06 | 显示全部楼层 |阅读模式

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

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

×
在绘制多段线时,由于操作失误,在多段线中间或其端点处出现重合点,如何用编程方法将这些多余的重合点删除?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-10-28 14:10:22 | 显示全部楼层
养成良好的绘图习惯是很重要的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-28 15:49:53 | 显示全部楼层
编程思路:
安顺序找出pl线的各顶点,判断一下,如果顶点坐标相同则之保留其一,然后删除原pl线,再用pl线将各顶点连起来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-10-30 00:05:21 | 显示全部楼层
;;;我把polyline转成LWpolyline了
;;;命令名aeo,自己改

  1. (defun c:aeo (/ dis e j ss del-point-pl)
  2.   (defun del-point-pl (e dis / a an en how li1 li2 li3 pt pt1 split)
  3.     (defun split (n li / return a)
  4.       (while li
  5.         (setq a nil)
  6.         (repeat (if (<= n (length li))
  7.                   n
  8.                   (length li)
  9.                 )
  10.           (setq a (cons (car li) a)
  11.                 li (cdr li)
  12.           )
  13.         )
  14.         (setq return (cons (reverse a) return))
  15.       )
  16.       (reverse return)
  17.     )
  18.     (setq en (entget e '("*"))
  19.           how nil
  20.     )
  21.     (foreach an en
  22.       (if (setq a (member (car an) '(10 40 41 42)))
  23.         (setq how t)
  24.       )
  25.       (cond
  26.         ((not how)
  27.           (setq li1 (cons an li1))
  28.         )
  29.         ((and
  30.            how
  31.            a
  32.          )
  33.           (setq li2 (cons an li2))
  34.         )
  35.         (t
  36.           (setq li3 (cons an li3))
  37.         )
  38.       )
  39.     )
  40.     (setq li1 (reverse li1)
  41.           li2 (reverse li2)
  42.           li3 (reverse li3)
  43.           li2 (split 4 li2)
  44.           li1 (append
  45.                 li1
  46.                 (car li2)
  47.               )
  48.           pt (cdaar li2)
  49.           li2 (cdr li2)
  50.     )
  51.     (foreach p li2
  52.       (setq pt1 (cdar p))
  53.       (if (> (distance pt pt1) dis)
  54.         (setq li1 (append
  55.                     li1
  56.                     p
  57.                   )
  58.         )
  59.       )
  60.       (setq pt pt1)
  61.     )
  62.     (entmod (append
  63.               li1
  64.               li3
  65.             )
  66.     )
  67.   )                                       ; **
  68.   (setq j -1)
  69.   (if (setq ss (ssget '((0 . "*POLYLINE"))))
  70.     (progn
  71.       (setq dis (getdist "\n多少距离之间要删除(0.001)"))
  72.       (if (not dis)
  73.         (setq dis 1e-3)
  74.       )
  75.       (command "undo" "group")
  76.       (repeat (sslength ss)
  77.         (setq e (ssname ss (setq j (1+ j))))
  78.         (if (= "POLYLINE" (cdr (assoc 0 (entget e))))
  79.           (command "convert" "p" "s" e "")
  80.         )
  81.         (if (= "LWPOLYLINE" (cdr (assoc 0 (entget e))))
  82.           (del-point-pl e dis)
  83.         )
  84.       )
  85.       (command "undo" "end")
  86.     )
  87.   )
  88.   (princ)
  89. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

发表于 2005-5-10 16:16:54 | 显示全部楼层
最初由 eachy 发布
[B]2006 就简单了,Explode-〉逐一 Join-〉Pedit 连接 [/B]


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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 06:46 , Processed in 0.389277 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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