明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3980|回复: 16

如何判断在entsel后,是按了空格,回车,右键,左键空拾取,左键非空拾取

  [复制链接]
发表于 2010-12-2 17:31:42 | 显示全部楼层 |阅读模式
如何判断在entsel后,是按了空格,回车,右键,左键空拾取,左键非空拾取
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2010-12-2 18:39:39 | 显示全部楼层
本帖最后由 namezg 于 2010-12-2 21:24 编辑

(initget " ")
(setq ent (entsel))
(cond
    ((= ent " ")  执行代码)                                       ;空格
    ((= 52 (getvar "errno"))  执行代码)                   ;回车或右键
    ((= 7 (getvar "errno"))  执行代码)                     ;左键单击空选
    (T 执行代码)                                                     ;左键单击非空选
)
上面的代码正确吗,如果正确回车和右键无法区分,不用grread用什么方法能区分?

用grread区分,下面的代码对吗?
(setq el (grread T 4 2))
(cond
    ;((= (car el) 2) 代码)                               ;任意键盘键
    ((equal el '(2 6)) 代码)                             ;键盘键F3
    ((member el '((2 80) (2 112))) 代码)       ;键盘键P或p
    ;((member el '((2 13) (2 32))) 代码)        ;键盘键空格或回车
    ((equal el '((2 13))) 代码)                        ;键盘键空格
    ((equal el '((2 32))) 代码)                        ;键盘键回车
    ;((= (car el) 3)) 代码)                              ;左键拾取
    ((and (= (car el) 3) (= el nil)) 代码)          ;左键拾取为空
    ((and (= (car el) 3) (/= el nil)) 代码)         ;左键拾取为非空
    ((= (car el) 11) 代码)                               ;右键


回复 支持 1 反对 0

使用道具 举报

发表于 2010-12-2 18:56:39 | 显示全部楼层
(setvar "errno" 0)
  (setq rtxt (entsel "\n选择源文本:"))
  (setq err (getvar "errno"))
  (while (/= err 52)
    (cond
      ((= err 7)
       (setvar "errno" 0)
       (setq
         rtxt (entsel
                "没有选中.\n选择源文本:"
                )
         )
       (setq err (getvar "errno"))
       )
      ((and (/= (cdr (assoc 0 (entget (car rtxt)))) "TEXT")
            (/= (cdr (assoc 0 (entget (car rtxt)))) "MTEXT")
            )
       (setvar "errno" 0)
       (setq rtxt
              (entsel
                "所选对象不是文本. \n选择源文本:"
                )
             )
       (setq err (getvar "errno"))
       )
这是我程序中的一段代码,你看看是否有帮助,我觉得右键和回车是同样的作用,我没有区分,也区分不出,这就要请教别人了。

点评

good  发表于 2011-12-23 14:47
回复 支持 1 反对 0

使用道具 举报

发表于 2024-8-25 21:17:19 | 显示全部楼层

这个不错,也做个记号
发表于 2010-12-2 18:31:37 | 显示全部楼层
Return Values

A list whose first element is the entity name of the chosen object
and whose second element is the coordinates
(in terms of the current UCS) of the point used to pick the object.

您不妨参考 GrRead 函数以订制所需
发表于 2010-12-2 18:38:29 | 显示全部楼层
我是用ERRNO这个变量来控制的,右键,空格,回车直接就结束命令了。而左键空拾取,errno为52,如果左键非空拾取,那命令继续,不用判断。
发表于 2011-4-10 19:54:17 | 显示全部楼层
做个记号,后面要学习
发表于 2012-8-9 12:58:21 | 显示全部楼层
学习,经常为这个问题发愁
发表于 2012-10-21 22:58:04 | 显示全部楼层
学习 了,刚好可以解决我的一个难题
发表于 2012-10-22 00:07:04 | 显示全部楼层
留个记号
以后再看
发表于 2012-10-23 01:42:17 | 显示全部楼层
这个不错,也做个记号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 08:42 , Processed in 0.185407 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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