[求助]在AutoLISP程序中能用键盘上4个方向键吗?(UP Right Down Left)
好象不行. 我還沒有看過有提取這四個鍵特性的涵數呀. 转贴一个类似功能的函数;;; ----------------------------------------------------------------------------
;;; ----------------------= = = =主 函 数= = = =------------------------
;;; ----------------------------------------------------------------------------
;;; ( 通过键盘移动目标 )
;;; ----------------------------------------------------------------------------
(DEFUN C:MoveEnts (/ cmd loop SSet KeyList n step BasePoint0 BasePoint1 BasePoint2)
(SETQ cmd (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)
(SETQ loop 1)
(WHILE loop
(PROMPT "\n 选择对象 : ")
(SETQ SSet (SSGET))
(COND
((NULL SSet)(ALERT "没有选中对象!"))
(T (SETQ loop nil))
)
)
(PRINC "\n Press key:")
(PRINC "\n\t w --- UP")
(PRINC "\n\t s --- DOWN")
(PRINC "\n\t a --- LEFT")
(PRINC "\n\t d --- RIGHT")
(PRINC "\n 请按方向键 W S A D")
(TERPRI)
(SETQ KeyList '(119 115 97 100))
(SETQ n (CADR (GRREAD)))
(WHILE (/= n 13)
(WHILE (NOT (MEMBER n KeyList))
(SETQ n (CADR (GRREAD)))
)
(SETQ step 10)
(SETQ BasePoint0(LIST 0 0))
(SETQ BasePoint1 (LIST 0 step))
(SETQ BasePoint2 (LIST step 0))
(COND
((EQUAL n 119)(COMMAND "MOVE" SSet "" BasePoint0 BasePoint1)(PRINC "\r< 上 >"))
((EQUAL n 115)(COMMAND "MOVE" SSet "" BasePoint1 BasePoint0)(PRINC "\r< 下 >"))
((EQUAL n 97) (COMMAND "MOVE" SSet "" BasePoint2 BasePoint0)(PRINC "\r< 左 >"))
((EQUAL n 100)(COMMAND "MOVE" SSet "" BasePoint0 BasePoint2)(PRINC "\r< 右 >"))
)
(SETQ n (CADR (GRREAD)))
);WHILE
(SETVAR "CMDECHO" cmd)
(PRINC)
)
(PRINC "\n Type \"MOVEENTS\" to run this routine.") HQ_2003 发表于 2004-1-10 09:21 static/image/common/back.gif
转贴一个类似功能的函数
大神这个程序除了,ESC之外,如何退出呢?
页:
[1]