明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6594|回复: 16

[讨论] 请教能否编一个像ET中OVERKILL命令一样lisp,删除的图中有一些重叠的圆和文字?

  [复制链接]
发表于 2011-8-3 10:39:31 | 显示全部楼层 |阅读模式
请教能否编一个像ET中OVERKILL命令一样lisp,删除的图中有一些重叠的圆和文字
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-8-3 11:33:48 | 显示全部楼层
本帖最后由 ljttjl 于 2011-8-3 11:36 编辑

http://ljttjl.ys168.com/   2009-2试用程序及演示   20091111删除完全重叠图元对象程序
以下为此程序演示:

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 2019-12-27 10:46:28 | 显示全部楼层
Gu_xl 发表于 2011-8-3 13:09
回复 cxs259 的帖子

楼上的都别废话,用这个吧!

这个程序算最好了目前,就是偶尔有几根不该删的线,删除了,不知道原因,还有,不知道重复文字能否删除。
发表于 2021-8-6 11:34:14 | 显示全部楼层
如果有三根线,能不能把重复的三根一起删除 了。只要两个物体重复,直接全部删除呢。
发表于 2011-8-3 12:41:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-8-3 13:09:14 | 显示全部楼层
回复 cxs259 的帖子

楼上的都别废话,用这个吧!
  1. (defun C:DUPREM (/ F1 SLE SA CA TA LA LB ENTA EA TYPA A1 A2 A3 A4 SC
  2.    LTEST TES
  3.   )
  4.   (setq F1 NIL
  5. F1 0
  6.   )
  7.   (or :GCHOICE (setq :GCHOICE "Set"))
  8.   (initget "Set Limits All")
  9.   (setq SLE
  10.   (getkword (strcat "\n选择集类型 [Set/Limits/All] <"
  11.       :GCHOICE
  12.       ">: "
  13.      )
  14.   )
  15.   )
  16.   (if (not SLE)
  17.     (setq SLE :GCHOICE)
  18.     (setq :GCHOICE SLE)
  19.   )
  20.   (cond
  21.     ((= SLE "Set") (setq SA (ssget)))
  22.     ((= SLE "Limits")
  23.      (setq SA (ssget "c" (getvar "extmin") (getvar "extmax")))
  24.     )
  25.     ((= SLE "All") (setq SA (ssget "X")))
  26.   )

  27.   (if (and SA (= (type SA) 'PICKSET) (not (zerop (sslength SA))))
  28.     (progn
  29.       (setq CA 0
  30.      TA (sslength SA)
  31.      LA NIL
  32.      LB NIL
  33.       )
  34.       (while (< CA TA)
  35. (setq ENTA (ssname SA CA)
  36.        EA   (cdr (entget ENTA))
  37.        TYPA (cdr (assoc 0 EA))
  38. )
  39. (setq A1 (assoc 5 EA))
  40. (setq A2 (cons 5 ""))
  41. (setq EA (subst A2 A1 EA))
  42. (if (wcmatch (getvar "ACADVER") "*15*")
  43.    (progn
  44.      (setq A3 (assoc 330 EA))
  45.      (setq A4 (cons 330 ""))
  46.      (setq EA (subst A4 A3 EA))
  47.    )
  48. )

  49. (setq LA (cons ENTA LA)
  50.        LB (cons EA LB)
  51.        CA (+ CA 1)
  52. )
  53.       )
  54.       (setq SC   NIL
  55.      SC   (ssadd)
  56.      LTEST LB
  57.       )
  58.       (setq CA 0)
  59.       (setq TES   (car LTEST)
  60.      LTEST (cdr LTEST)
  61.      TA   NIL
  62.      TA   (length LTEST)
  63.       )
  64.       (while (/= TA 0)
  65. (if (member TES LTEST)
  66.    (progn
  67.      (setq SC (ssadd (nth CA LA) SC))
  68.      (setq F1 (+ F1 1))
  69.    )
  70. )
  71. (setq CA (+ CA 1))
  72. (setq TES   (car LTEST)
  73.        LTEST (cdr LTEST)
  74.        TA    (length LTEST)
  75. )
  76.       )
  77.       (command "erase" SC "")
  78.       (redraw)
  79.       (prompt "\n")
  80.       (prin1 F1)
  81.       (prompt " 个物体被删除.")
  82.     )
  83.   )
  84.   (princ)
  85. )
发表于 2011-8-3 13:47:27 | 显示全部楼层
虽然我不喜欢ljttjl,但觉得应该为其辩护。

将自己的劳动成果开源共享,这是种高尚的行为;将其用来卖钱,则属于理所应当。请注意:没能做到“高尚”,并不属于“卑劣”。就像你无权要求微软白送你windows7。

这就是“good”(道德)和“right”(权利)的区别。

当然,做“高尚”的行为,会感到很爽,这也属于一种“得利”,只是各人对这种得利的感觉不尽相同。

顺便学习一下gu_xl版主的源代码,他无疑属于“高尚”。
发表于 2011-8-3 14:07:09 | 显示全部楼层
同意楼上的观点,开源肯定是造福大家,但是用自己的劳动成果来获利,也属正常的行为。
支持Gu_xl版主一直以来的奉献!
 楼主| 发表于 2011-8-3 14:40:54 | 显示全部楼层
谢谢G版的无私奉献,还有一个问题能否在此一同给予解答,如附图若采用您所编bianjie命令后,整个图形会消失,是什么原因?

本帖子中包含更多资源

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

x
发表于 2011-8-3 15:36:50 | 显示全部楼层
这么麻烦,到ET的资料夹里找到源码,改个简单的命令名,重新编译一下不就行了,费这么大事。我确认里面有源码,我自己就是这么干的。
发表于 2011-12-9 14:32:51 | 显示全部楼层
这个比较厉害
发表于 2011-12-16 21:25:44 | 显示全部楼层
互联网的大爷,我等待30分钟才连上网
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 09:59 , Processed in 0.181187 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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