找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 陌生人

[讨论]:如何做带提示和过滤表的entsel ?

[复制链接]

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-12-22 01:06:14 | 显示全部楼层
最初由 陌生人 发布
[B]什么时候用关键字,举个例子?
[CODE]
;v1.1 2003.12.20.改写:加入带亮显提示功能;
;实例:(xentsel "\n选择直线或圆..." '((0 . "*LINE,CIRCLE")))
;:使用(grread T 4 2),放弃使用entsel;
(defun xentsel (msg fi... [/B]


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

使用道具 举报

 楼主| 发表于 2003-12-22 01:39:34 | 显示全部楼层
可以支持多个关键字的."o"只是例子,可以如: "O K B C "
entsel之后加亮显没有什么意义,因为选已经选了,在亮不亮已经没什么用.而且要在程序外面加一个恢复的语句,如果是马上加,那亮就是一瞬间的事情,根本看不出来.grread的好处就是可以在选之前预览(亮显),直观一些.
不过grread不能zoom却是个大问题,权衡之后,觉得还是entsel更有优势,但是如何让entsel在选择之前亮显呢?有谁解决了么?

这么久没人回答啊?
自己搞定了.虽然不是很完善,先到这里吧
谁说没有枪头就刺不死人?-------------------<<唐伯虎点秋香>>
谁说用了 grread 就不能zoom了?-------------- ....?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-12-25 10:35:36 | 显示全部楼层
;;By LUCAS(龙龙仔)
;;可设定3个图标按键 & 带亮显提示功能 & 过滤表 & 关键词
;;Usage:(Entsel_lai A B C "\n选择直线或圆" '((0 . "*LINE,CIRCLE,INSERT")) "Two One")
;;Usage:(Entsel_lai 3297 2791 2704 "\n选择直线或圆" '((0 . "*LINE,CIRCLE,INSERT")) "Two One")
;;A='ZOOM参数 B='PAN参数 C='ZOOM;P;参数
;;利用下列程序找出图标按键参数
;;(while t
;;  (setq MODE (grread t 4 2))
;;  (print MODE)
;;)
;;MODE=(2 3297)
;;参数=(CADR MODE)
;;亦可直接输入'ZOOM 或 'PAN 或其它能用的透明指令
;;SORRY!目前"关键词"功能只能以第一个字母为准

;;陌生人:你每次都只有展示,我只好也放(ENTSEL_LAI.FAS简体测试版)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-25 13:49:26 | 显示全部楼层
ABC选项测试没有成功,也许是以下原因:
A (2 97)
B(2  98)
C(2 99)
a(2 65)
b(2 66)
c(2 67)
我这里字符对应如上,和你的好像不同.你修改下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2003-12-25 21:39:44 | 显示全部楼层
抱歉,试的时候,直接按A,或者点图标都没反映,输入'zoom,倒是可以,不过好像只能一次,就回到提示
建议在程序中加如何操作的提示信息
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-25 23:45:28 | 显示全部楼层
试试我的:)

  1. ;| 带提示和过滤表的xentsel v2.1------------------------------陌生人 2003.12
  2.   vA1.0 2003.12完成.
  3.   函数: (xentsel 提示信息 过滤表 关键字串)
  4.   返回值: nil 或者 (实体名 . 点位)点对表.
  5.   
  6.   功能: 1.带亮显提示和过滤表的entsel;
  7.         2.循环直到选中有效实体或选择退出为止;
  8.         3.返回的点对表中的 点位为实体上的点;
  9.         4.缺省 key 有:a(zoom a),w (zoom pt1 pt2) P(zoom p) ,均为一次命令.关键字不得与之冲突.
  10.         5.分隔符推荐用 空格 ,也可以是 , ; . - /等.
  11.         6.空格进入 透明命令(zoom,pan图标或输入'z 'p 等,可多次), 回车/鼠标右键=退出.
  12.   实例: (xentsel "\n选择直线或圆/O-调整参数/D-xxx/U-xxx:" '((0 . "*LINE,CIRCLE")) "O,P;D.U")
  13. |;
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-29 10:10:28 | 显示全部楼层
;;空格進入透明命令(可輸入'ZOOM或'PAN圖標 或輸入'Z 'P等透明命令,可多次)
;;在"透明狀態"也可輸入"關鍵字"(但只在剛進入"透明狀態"時有效)
;;回車/鼠標右鍵=退出.
((= (cadr MODE) 32)
  (initget STR)
  (setq KEY (entsel "\n<退出透明狀態>:"))
)

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

使用道具 举报

 楼主| 发表于 2003-12-29 13:36:36 | 显示全部楼层
厉害!佩服佩服,你怎么做到的?
平生第一次有人拿我的程序去破解,不胜荣幸之至,更何况又是论坛响当当的人物,欣慰中有一丝惭愧,因为vlsp 学艺不精,难免贻笑大方了,不好意思得很。
惭愧,惭愧。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2003-12-29 17:51:02 | 显示全部楼层
我也来一段,可以使用关键字,使用过滤表,空选循环,回车退出,与透明命令无冲突。返回:entsel类型表或关键字或nil(回车退出)。

  1. ((defun xentsel(msg keyword filter_list / $s0)
  2.        ;keyword是一个关键字串,无关键字,输入“""”。如果回车表示退出,可以将字串以两个半角空格结束。
  3.        ;filter_list是特征关联表,目前只支持并联关系,无特征关联表输入“nil”。
  4.   (initget keyword)
  5.   (setq $s0 (entsel msg))
  6.   (cond
  7.     ((= $s0 "") nil)                            ;回车结束,返回nil
  8.     ((= $s0 nil) (xentsel msg keyword filter_list))    ;空选重复
  9.     ((and (= (type $s0) 'STR)                   ;返回关键字
  10.           (member (read $s0) (read (strcat "(" keyword ")")))
  11.      )
  12.       $s0
  13.     )
  14.     ((= (type $s0) 'LIST)                       ;返回实体与点表,与entsel相同
  15.      (if filter_list                                                 ;存在特征关联表
  16.        (if (not
  17.              (member                                                 ;判断特征关联表全为“真”
  18.                'nil
  19.                (mapcar
  20.                  '(lambda ($x)
  21.                     (if        (= (type (cdr $x)) 'STR)
  22.                       (wcmatch (cdr (assoc (car $x) (entget (car $s0)))) (cdr $x))  ;字串关联表项
  23.                       (equal (cdr (assoc (car $x) (entget (car $s0)))) (cdr $x))    ;其它关联表项
  24.                     )
  25.                   )
  26.                  filter_list
  27.                )
  28.              )
  29.            )
  30.          $s0                                    ;真,返回实体与点表
  31.          (xentsel msg keyword filter_list)      ;假,循环拾取
  32.        )
  33.        $s0
  34.      )
  35.     )
  36.     (t (xentsel msg keyword filter_list))       ;其它拾取及输入情况,循环拾取
  37.   )
  38. )

目前的程序段不支持复杂过滤表,感觉不如直接在程序中直接使用判别。
附件是我使用的一个实例。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-12-30 17:00:23 | 显示全部楼层
最初由 ll_j 发布
[B]我也来一段,可以使用关键字,使用过滤表,空选循环,回车退出,与透明命令无冲突。返回:entsel类型表或关键字或nil(回车退出)。
[code]
((defun xentsel(msg keyword filter_list / $s0)
       ;keyword是一... [/B]


ll_j兄:
你這程序未免太煩瑣,應可再簡化!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-12-30 23:33:44 | 显示全部楼层
本人也一直是eachy 的方法.

grread,当然也行,各人喜欢:),能达到目的就行.

至于关键字,要把关键字的功能写进去,不可能每次都重写吧

(defun entself (Msg Filter '(("An" ...)( "Bn" ...) ...) )
...
这样如何?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-31 00:13:05 | 显示全部楼层
对于关键字我觉得能用get***函数当然用get***函数,毕竟方便。
grread是个特例,因为只能返回一个键值,要写出模仿get***的关键字也不是不可以,(如“eXit”)只是要加一段字符判定语句。不过一个关键字已经够用了。
我用grread不因为什么,就因为可以选取前亮显,而在grread之后再用(entsel)--这个在明经的主题帖子里面都还没人想出来:)。 就是为了在entsel的时候可以用他的“透明”功能。
而只是用entsel或者先用entsel后用grread(好像没这个必要),就无法选取前亮显,但是在回应关键字和直接使用透明命令的时候方便一些。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 02:55 , Processed in 0.744774 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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