Little-E 发表于 2013-1-15 14:53:29

请教一个grread问题

本段代码已经实现了动态随光标输出,但是当鼠标静止时无法停止动态. . .操作性差,求高手改进
代码如下:
(defun bz(bz-point / view-size bz-text-height mouse-get-value new-view-size mouse-get-point now-distance) ;bz(Biao Zhu)实时标注
       (vl-load-com)
       (setq view-size (getvar "viewsize"))
       (setq bz-text-height (/ view-size 30))
       (setq before-mouse-get-value mouse-get-value)
       (if (= xl-alter-flag nil) (setq xl-alter-flag 0))
       (if (= count nil) (setq count 0))
       (command "text" bz-point bz-text-height 0 (vl-prin1-to-string (strcat "已画长度" (itoa count))) "")
       (command "point" bz-point)
       (command "point" bz-point)
       (while (= (car (setq mouse-get-value (grread t 1))) 5)
            (if (/= view-size (setq new-view-size (getvar "viewsize")))
                  (progn
                        (setq bz-text-height (/ new-view-size 30))
                        (setq view-size new-view-size)
                  )
            )
            (setq mouse-get-point (cadr mouse-get-value))
            (setq now-distance (fix (* (distance mouse-get-point bz-point) 2)))
            (if (= begin-point-flag 0)
                  (progn (setq xl-alter-length (fix (* Alter-Length 0.5)))
                         (setq xl-alter-flag 1)
                  )
                  (setq xl-alter-length Alter-Length)
            )
            (setq now-distance (+ now-distance xl-alter-length))
            (if (> now-distance (/ bz-text-height 30))
                  (progn
                        (entdel (entlast))
                        (entdel (entlast))
                        (command "line" bz-point mouse-get-point "")
                        (command "text" mouse-get-point bz-text-height 0 (vl-prin1-to-string (strcat "点选长度" (itoa now-distance))) "")
                   )
               )
      )
      (setq count (+ count now-distance))
      (setq length-point mouse-get-point)
    (setq d2d-mouse-get-point mouse-get-point)
      (entdel (entlast))
      (entdel (entlast))
      (entdel (entlast))
)

tth02 发表于 2013-1-16 18:00:59

记录本步的鼠标位置,和上一步的作差,如果大于某值才进行某种操作。

xiabin68 发表于 2013-1-16 18:19:53

都看不懂呢?????好长的代码

Gu_xl 发表于 2013-1-16 21:48:00

while循环内加上一句:
(command "Zoom" "1x")
即可!
页: [1]
查看完整版本: 请教一个grread问题