明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 612|回复: 2

[提问] 请问我这段代码为什么只能响应左键,点右键和回车就会报参数错误?

[复制链接]
发表于 2019-3-6 15:16:16 | 显示全部楼层 |阅读模式
(defun c:te( / ss)
         
        (setq loop T)
        (while loop
          (setq code (grread T 8))
          (if(= (car code) 25)
                  (progn
                        (princ "\n 右键响应成功!!!")
                  )
          )
          
          (if(= (car code) 3)
                (progn
                        (princ "\n 左键响应成功!!!")
                        (setq ss (ssadd (ssget ":D" '((0 . "text"))) ss)) ;;添加图元到数据集
                )  
          )
          
          (if(equal code '(2 13))
                (progn
                        (princ "\n 跳出循环!!!")
                        (setq loop nil)
                  )
          )
        )
)

补充一下,左键右键回车三个键只能响应最开始点的那个键,再点其他的键就会报参数错误,比如点完左键再点右键或回车就报错了;不加获取图元的那行代码就没问题,加上就不行了。

发表于 2019-3-6 18:39:34 | 显示全部楼层
用cond 好点,获取图元那里写错了,ssadd 对象是图元名不是选集
(defun c:tt5( / ss)
(setq loop T)
(while loop
(setq code (grread T 8))
(cond
((= (car code) 3)     (princ "\n 左键响应成功!!!") (setq ss  (ssget "X" '((0 . "text")))) )               
((or (= (car code) 25) (= (car code) 11))    (princ "\n 右键响应成功!!!"))
((equal code '(2 13)) (setq loop nil))  
)
)
)
 楼主| 发表于 2019-3-6 19:24:26 | 显示全部楼层
start4444 发表于 2019-3-6 18:39
用cond 好点,获取图元那里写错了,ssadd 对象是图元名不是选集
(defun c:tt5( / ss)
(setq loop T)

嗯哪  谢谢  刚开始学  还不熟练:D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 01:13 , Processed in 0.177582 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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