据我所知,实现这一点的唯一方法是创建一个函数来模拟getcorner函数的行为,使用grread函数来监视光标位置。
例如:
- ;; Get Corner - Lee Mac
- ;; A grread substitution for the getcorner function
- ;; pt - A point to be used as the base point.
- ;; msg - A string to be displayed to prompt the user.
- ;; Returns: Selected UCS point, else nil
- (defun LM:GetCorner ( pt msg / gr pl )
- (if msg (princ msg))
- (while (= 5 (car (setq gr (grread t 13 0))))
- (redraw)
- (setq gr (cadr gr)
- pl (list pt (list (car gr) (cadr pt))
- gr (list (car pt) (cadr gr))
- )
- )
- (mapcar 'grdraw pl (cons (last pl) pl) '(-1 -1 -1 -1))
- )
- (redraw)
- (if (listp (cadr gr)) (cadr gr))
- )
- (if (setq p1 (getpoint "\nFirst Point: "))
- (LM:GetCorner p1 "\nNext Point: ")
- )
|