找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2407|回复: 7

(完成)[编程申请]:求改进“消除重线”

[复制链接]
发表于 2002-8-17 21:01:44 | 显示全部楼层 |阅读模式

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

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

×
现在的消除重线只能对图层或全图消。

希望改成可以对手动选择的选择集消。而且,选择集中再针对图层分别消重。这样,对于80M以上的大dwg图,可操作性强一点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-18 22:13:01 | 显示全部楼层

程序写好了,请试用


  1. [FONT=courier new]
  2. ;|
  3.    命令:curve_rdup1
  4.    
  5.    功能:速度极快的,交互选取LINE,ARC,CIRCLE,然后分层消除重线
  6. |;
  7. (defun c:curve_rdup1 (/ ss el e lyr old new el ss1 short_l n sl num len
  8.                         rline sline rarc sarc rcir
  9.                      )
  10.   (prompt "\n请选取要消除重线的(Line、Arc、Circle)实体[分层消重]<退出>:")
  11.   (if (setq ss (ssget '((0 . "line,arc,circle"))))
  12.     (progn
  13.       (xdrx_setsstodb ss 0)
  14.       (setq el nil)
  15.       (while (setq e (xdrx_getentdata 0))
  16.         (setq lyr (xdrx_getentdxf 8))
  17.         (if (setq old (assoc lyr el))
  18.           (progn
  19.             (setq new (cons lyr (cons e (cdr old))))
  20.             (setq el (subst
  21.                        new
  22.                        old
  23.                        el
  24.                      )
  25.             )
  26.           )
  27.           (progn
  28.             (setq el (cons (list lyr e) el))
  29.           )
  30.         )
  31.       )
  32.       (setq ss1 (mapcar
  33.                   '(lambda (x)
  34.                      (setq sl (cdr x)
  35.                            ss (ssadd)
  36.                      )
  37.                      (foreach n sl
  38.                        (ssadd n ss)
  39.                      )
  40.                      (cons (car x) ss)
  41.                    )
  42.                   el
  43.                 )
  44.       )
  45.       (setq short_l 100)               ; 超短线长度,可以修改该值
  46.       (foreach n ss1
  47.         (prompt (strcat "\n处理" (car n) "层中,稍后..."))
  48.         (setq num (xdrx_curve_remove_dup (cdr n) short_l 10 100))
  49.         (setq len (sslength ss)
  50.               sline (cadar num)
  51.               rline (caar num)
  52.               rarc (caadr num)
  53.               sarc (cadadr num)
  54.               rcir (car (last num))
  55.         )
  56.         (prompt (strcat "\n 搜索到 Line,Arc,Circle 共:" (itoa len)
  57.                         "\n 删除超短线: " (itoa sline) " 删除重线: "
  58.                         (itoa rline) "\n 删除超短弧: " (itoa sarc)
  59.                         " 删除重弧: " (itoa rarc) "\n 删除重圆: "
  60.                         (itoa rcir) "\n 还剩: " (itoa (- len sline rline
  61.                                                          sarc rarc rcir
  62.                                                       )
  63.                                                 )

  64.                 )
  65.         )
  66.         (princ "\n")
  67.       )
  68.     )
  69.   )
  70.   (princ)
  71. )
  72. [/FONT]


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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 394个

财富等级: 日进斗金

发表于 2006-1-18 22:42:08 | 显示全部楼层
重叠的线,有的点错位也消不了,应该是不管是什么线,只要重叠就消除.就算两线重叠一半也消除.
可以做到这样就好了.....!!当然也要想消那里就选那里.这样才不会用太多时间.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-2-16 22:02:31 | 显示全部楼层
稍有偏差的怎么处理?

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 20:24 , Processed in 0.398233 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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