找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1665|回复: 8

[求助] [求助]:请问用ENTSEL选择对象时如何设置过滤.

[复制链接]
发表于 2006-10-30 19:52:09 | 显示全部楼层 |阅读模式

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

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

×
比如只让选多义线.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-10-30 23:28:40 | 显示全部楼层
好像办不到吧!
要select之后才能filter,问题是已“选”了...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-31 13:53:51 | 显示全部楼层
可以,用grread 重寫entsel可以設置過濾功能,此功能在論壇中好象有,可以到函數下載中去找找看。。
明經通道好象我也有見過的..
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-31 14:11:51 | 显示全部楼层
因为entsel是单选函数,所以可以用while控制,如果不是多义线则重新选择
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-31 16:44:13 | 显示全部楼层
;带提示和过滤表的entsel

  1. (defun c:test()
  2.     (setq en (xentsel "\n请选择一个圆:" '((0 . "circle"))))
  3. )
  4. ;No.1 选择类型不附继续选择,为空则退出
  5. (defun xentsel(txt plist / ss sn en)
  6.     ;(setq txt "\n请选择一个圆:")
  7.     ;(setq plist '((0 . "circle")))
  8.     (setq ss (ssget "x" plist))
  9.     (setq sn 0)
  10.     (while (zerop sn)
  11.         (setq en (entsel (strcat "\n" txt)))
  12.         (if (not en) (vl-exit-with-error ""))
  13.         (if (ssmemb (car en) ss) (setq sn 1))
  14.     )
  15.     en
  16. )
  17. ;No.2 直到选择到为止
  18. (defun xentsel (txt plist / ss sn en)
  19.     ;(setq txt "\n请选择一个圆:")
  20.     ;(setq plist '((0 . "circle")))
  21.     (setq ss (ssget "x" plist))
  22.     (while (not        (and (setq en (entsel (strcat "\n" txt)))
  23.                      (ssmemb (car en) ss)
  24.                 )
  25.            )
  26.     )
  27.     en
  28. )
  29. ;No.3 这个是明经上的改编而来(直到选择到为止)
  30. (defun xentsel (txt plist)
  31.     (while (not        (and (setq en (entsel txt))
  32.                      (not (command "_select" (car en) ""))
  33.                      (sssetfirst nil nil)
  34.                      (ssget "p" plist)
  35.                 )
  36.            )
  37.     )
  38.     en
  39. )
  40. ;No.4 明经无痕大作
  41. (defun xentsel (msg fil)
  42.     (while (not (and (setq el (entsel msg)) (ssget (cadr el) fil)))
  43.     )
  44.     el
  45. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-31 17:32:35 | 显示全部楼层
给你个更好的吧,陌生人的大作!
[php]
;;;=============================================================================
;;返回值: NIL 或者 (实体名 . 点位)点对表.  
;;功能: 1.带提示和过滤表的ENTSEL;
;;      2.循环直到选中有效实体或选择退出为止;
;;      3.返回的点对表中的 点位为实体上的点;
;;      4.支持关键字串。
;;实例: (XENTSEL "\n选择直线或圆/UNDO/OPTION/EXIT" "UNDO OPTION EXIT" '((0 . "*LINE,CIRCLE,ARC")))
(DEFUN XENTSEL (MSG KEYWORD FILTER_LIST / $S0 $S01)
  (INITGET KEYWORD)
  (SETQ $S0 (ENTSEL MSG))
  (COND
    ((AND (= $S0 NIL) (= (GETVAR "ERRNO") 52)) NIL) ;回车结束,返回NIL
    ((= $S0 NIL) (XENTSEL MSG KEYWORD FILTER_LIST)) ;空选重复
    ((= (TYPE $S0) 'STR) $S0)                ;返回关键字
    ((= (TYPE $S0) 'LIST)                ;返回实体与点表,与ENTSEL相同
     (IF FILTER_LIST                        ;存在特征关联表
       (IF (AND        (SETQ $S01 (SSGET (CADR $S0) FILTER_LIST))
                (SSMEMB (CAR $S0) $S01)
           )
         $S0                                ;真,返回实体与点表
         (XENTSEL MSG KEYWORD FILTER_LIST) ;假,循环拾取
       )
       $S0
     )
    )
    (T (XENTSEL MSG KEYWORD FILTER_LIST)) ;其它拾取及输入情况,循环拾取
  )
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-1 16:07:09 | 显示全部楼层
更好??
好的标准是什么!

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 16:03 , Processed in 0.390219 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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