请问我这段代码为什么只能响应左键,点右键和回车就会报参数错误?
(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)
)
)
)
)
补充一下,左键右键回车三个键只能响应最开始点的那个键,再点其他的键就会报参数错误,比如点完左键再点右键或回车就报错了;不加获取图元的那行代码就没问题,加上就不行了。
用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))
)
)
) start4444 发表于 2019-3-6 18:39
用cond 好点,获取图元那里写错了,ssadd 对象是图元名不是选集
(defun c:tt5( / ss)
(setq loop T)
嗯哪谢谢刚开始学还不熟练:D
页:
[1]