找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7276|回复: 33

[分享]:我制作的一个实用程序——筛选删除

[复制链接]
发表于 2005-11-25 22:37:04 | 显示全部楼层 |阅读模式

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

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

×
一个偶然的机会,发现了这个论坛,看到很多好东东,真高兴。我手头也有一些自编的lisp程序,今天先发一个上来,与各位分享。
虽说我第一次来到这里发布程序,但这个程序我可是已经用了好几年,感到相当实用,愿大家喜欢。
本想发一两张相关的图片,无奈还不知道这么传上来,只好请大家见谅。
下面是程序的内容。

;| 筛选删除,命令名shaizi即“筛子”的拼音。
   用途:用于所选范围内的层过滤,或实体过滤。
   使用方法:1.框选要删除的范围,如直接回车,则程序会提供一个默认范围;
             2.根据自己需要,选择删除方式——回车(右键)即为层过滤方式,按左键即选择了实体过滤方式;
             3.点取一个代表实体(例如点取了一个在dote层上的文字,则程序将删除框选范围内dote层上的所有物体,或框选范围内所有的text)。
   如紧接着再次使用该命令,则默认的范围为上次使用的框选范围。|;

  1. (defun c:shaizi(/ p0 d p1 p2 p3 p4 n s1 en L ssa)
  2.   (setq oer *error* *error* myerr)
  3.   (setq os (getvar "osmode") oc (getvar "cmdecho"))
  4.   (setvar "osmode" 0)
  5.   (setvar "cmdecho" 0)
  6.   (setq p0 (getvar "viewctr") d (* 0.63 (getvar "viewsize")))
  7.   (graphscr)
  8.   (setq p1 (getpoint "\n框选第一点:"))
  9.   (if (= p1 nil)
  10.     (if eselp1 (setq p1 eselp1 p2 eselp2)
  11.                (setq p1 (polar p0 3.766 d) p2 (polar p0 0.604 d))
  12.     )
  13.     (setq p2 (getcorner "\n框选第二点:" p1))
  14.   )
  15.   (setq p3 (list (car p1) (cadr p2)) p4 (list (car p2) (cadr p1)))
  16.   (grdraw p1 p3 2) (grdraw p3 p2 2) (grdraw p2 p4 2) (grdraw p4 p1 2)
  17.   (setq n (getpoint "\n实体过滤(任意点取一点)/<层过滤>:"))
  18.   (if (= n nil) (setq n 8) (setq n 0))
  19.   (while (= s1 nil)
  20.     (setq s1 (entsel "\n点取某一物体:"))
  21.     (if s1 (setq en (entget (car s1)) L (cdr (assoc n en)))
  22.       (princ "\n  **没有点中物体,请重新点取**")
  23.     )
  24.   )
  25.   (setq ssa (ssget "c" p1 p2 (list (cons n L))) eselp1 p1 eselp2 p2)
  26.   (princ (strcat "\n删除了所选实体中的" L))
  27.   (if (= n 8) (princ "层.") (princ "."))
  28.   (if ssa (command "erase" ssa ""))
  29.   (redraw)
  30.   (setvar "osmode" os)
  31.   (setvar "cmdecho" oc)
  32.   (setq *error* oer)
  33.   (princ))

  34. (defun myerr (s)
  35.   (if (/= s "Function canccelled")
  36.    (if (= (substr s 1 13) "null function")
  37.        (princ "\n该程序不能运行.") (princ "\n程序中止")
  38.    )
  39.   )
  40.   (setq *error* oer)
  41.   (princ))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-12-18 11:48:25 | 显示全部楼层
 我也来试试,不知道能不能删除框外的东西!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-5-19 09:55:50 | 显示全部楼层
这个东东用起来有点问题啊,一个是它删除的时候不是按图层来的,第二个,用了这个命令之后捕捉点全没了!请楼主再改进一下啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-19 22:26:59 | 显示全部楼层
最初由 lwd9520 发布
[B]这个东东用起来有点问题啊,一个是它删除的时候不是按图层来的,第二个,用了这个命令之后捕捉点全没了!请楼主再改进一下啊! [/B]

1:当你框选后,如果按鼠标右键或回车就会按图层删除,如果按鼠标左键则会删除同类实体。
2:如果你程序未执行完中途退出,可能会失去捕捉点。正常退出是不会影响你原先的捕捉状态的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-5-25 18:52:09 | 显示全部楼层
最初由 tjzxl811 发布
[B]如果能筛选的种类再多点就更好了 [/B]


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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-6-4 17:33:07 | 显示全部楼层
最初由 xuwei8210 发布
[B]我也用了,是象12楼说的那样有点问题阿,希望楼主能改进一下! [/B]

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

使用道具 举报

已领礼包: 22个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 21:56 , Processed in 0.224433 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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