Comming 发表于 2013-8-29 14:33:46

按键切换程式

修改下面这个程式在运行时按X键就一直画水平线,当需要画竖线时按V键就可以一直画竖线,可以反复切换,应该怎么写

(defun c:tv ()
(setvar "cmdecho" 0)
(PROMPT "\n按键 X-水平V-竖直:")
(setq key (cadr (grread)))
(setqi key)
(while key
    (cond ((or (= key 120) (= key 88))    (command "xline" "h" pause ""))
   ((or (= key 118) (= key 86))    (command "xline" "v" pause ""))
   (t (command "xline" "h" pause "")))
)
)

xiaobao02 发表于 2013-8-29 22:30:13

最近才编的(defun c:hv (/ aa)
(princ "\n***构造线加强***")
(while (= aa nil)
    (princ "\n水平(左键)/垂直(右键)/角度(空格)")
    (setq aa (grread))
    (cond
      ((= (car aa) 3)(c:hh)(setq aa nil))
      ((= (car aa) 25) (c:vv)(setq aa nil))
      ((= (cadr aa) 32) (c:xla)(setq aa nil))
      ((or (= (cadr aa) 88)(= (cadr aa) 120))(setq aa 1))
)
)
)


(defun c:hh ()
(command "xline" "h")
(while (not (zerop (getvar "CMDACTIVE")))
    (princ "\n指定通过点: ")
    (command pause)
)
(princ)
)

(defun c:vv ()
(command "xline" "v")
(while (not (zerop (getvar "CMDACTIVE")))
    (princ "\n指定通过点: ")
    (command pause)
)
(princ)
)


(defun c:xla ()
(command "xline" "a")
(princ "\n输入构造线的角度:")
(command pause)
(while (not (zerop (getvar "CMDACTIVE")))
    (princ "\n指定通过点: ")
    (command pause)
)
(princ)
)

长风(尚品) 发表于 2013-8-29 22:50:56

xiaobao02 发表于 2013-8-29 22:30 static/image/common/back.gif
最近才编的

hv右键选项不能用,是怎么回事?

ucuc2003 发表于 2013-8-29 23:08:23

本帖最后由 ucuc2003 于 2013-9-2 18:25 编辑

xiaobao02 发表于 2013-9-2 17:30 static/image/common/back.gif
最近才编的
高手!!!套用程序可以定制很多有趣的东西,哈哈,收藏了!

vvcd 发表于 2013-8-30 01:10:09

非常经典哈,谢谢分享,不错

ymcui 发表于 2013-8-30 08:07:14

谢谢分享               

vlisp2012 发表于 2013-8-30 11:16:18

很好的程序啊。

andyhua 发表于 2013-8-30 16:16:06

程序怎么退出呢?按ESC吗?

vlisp2012 发表于 2013-8-30 16:50:16

嗯,esc退出!

长风(尚品) 发表于 2013-8-30 21:26:17

长风(尚品) 发表于 2013-8-29 22:50 static/image/common/back.gif
hv右键选项不能用,是怎么回事?

我的返回值是12 替换后还是不行
页: [1] 2 3
查看完整版本: 按键切换程式