GRREAD 左键取点用法疑问
[*]
以下两段代码,分别是普通取点getpoint和使用GRREAD 左键取点的不同用法
[*]如下列代码所示,第51行获取对角点p3出现异常,动画里面第6~8个矩形对角点,不是鼠标点选的位置,犹如打开了捕捉。哪位老师能够释疑解惑?
[*](defun c:xd2 ()
[*](command "undo" "be")
[*](setq os (getvar "osmode"))
[*](setvar "osmode" 0)
[*](setq is t)
[*](while is
[*] (initget "A B")
[*] (setq P1 (getpoint "\n第一点[或/A/B]<退出>: "))
[*] (cond
[*] ((null P1) (setq is nil))
[*] ((listp P1)
[*] (setq is nil)
[*] (if (setq p3 (getcorner P1 "\n指定对角点:"))
[*] (command "rectangle" P1 p3)
[*] )
[*] )
[*] ((= (strcase P1) "A") (princ "\n执行程序A"))
[*] ((= (strcase P1) "B") (princ "\n执行程序B"))
[*] )
[*])
[*](setvar "osmode" os)
[*](command "undo" "e")
[*](princ)
[*])
[*]
[*](defun c:xd3 ()
[*](command "undo" "be")
[*](setq os (getvar "osmode"))
[*](setvar "osmode" 0)
[*](setq is t)
[*](while is
[*] ;;(initget "A B")
[*] ;;(setq P1 (getpoint "\第一点[或/A/B]<退出>: "))
[*] (princ "\n第一点[或/A/B]<退出>: ")
[*] (setq mouse (grread nil 4 0));不追踪鼠标位置
[*] (setq g1 (car mouse)
[*] g2 (cadr mouse)
[*] )
[*] (cond
[*] ((or (equal mouse '(2 13));回车
[*] (equal mouse '(2 32));空格
[*] (equal mouse '(25 548));右键
[*] )
[*] (setq IS nil) ;_退出while
[*] )
[*] ((= g1 3)
[*] (setq is nil)
[*] (setq p1 g2) ;左键取点pt
[*] (if (setq p3 (getcorner P1 "\n指定对角点:"))
[*] (command "rectangle" P1 p3)
[*] )
[*] )
[*] ((MEMBER g2 '(65 97)) (princ "\n执行程序A"))
[*] ((MEMBER g2 '(66 98)) (princ "\n执行程序B"))
[*] )
[*])
[*](setvar "osmode" os)
[*](command "undo" "e")
[*](princ)
[*])
页:
[1]