优化程序 亲爱的ZZZ版 看过来
这是以前ZZ版帮忙写的一个程序一直以来都是很好用的请ZZ版帮忙修改下
不要Q- E+ 了 改成直接输入数字这个数字要有记忆功能(我所说的记忆就是在不退出当前CAD ,再用这个程序还是上次输入的那个数字)(defun c:tt(/ GR SS ds str)
(setvar 'cmdecho 0)
(setq ds 4.0)
(setq str "按W S A D 移动Q-,E+,空格回车左\右键退出:")
(if (setq ss(ssget)) (progn
(princ (strcat "\n" str "距离" (rtos ds 2)))
(while (and (/= (car (setq gr(grread t 15 0)))3)
(not(equal gr '(2 32)))
(not(equal gr '(2 13)))
(not(equal gr '(11 0)))
(not(equal gr '(25 0))))
(cond
((or (equal gr '(2 119))(equal gr '(2 87))) ;wW
(vl-cmdf "_.move" ss "" '(0 0) (polar '(0 0) (* pi 0.5) ds))
(prompt (strcat "\r" str "向上移动"))
)
((or (equal gr '(2 83))(equal gr '(2 115))) ;Ss
(vl-cmdf "_.move" ss "" '(0 0) (polar '(0 0) (* pi 1.5) ds))
(prompt (strcat "\r" str "向下移动"))
)
((or (equal gr '(2 65))(equal gr '(2 97))) ;Aa
(vl-cmdf "_.move" ss "" '(0 0) (polar '(0 0) pi ds))
(prompt (strcat "\r" str "向左移动"))
)
((or (equal gr '(2 68))(equal gr '(2 100))) ;Dd
(vl-cmdf "_.move" ss "" '(0 0) (polar '(0 0) 0 ds))
(prompt (strcat "\r" str "向右移动"))
)
((or (equal gr '(2 81))(equal gr '(2 113))) ;Qq
(setq ds (- ds 4) ds (if (< ds 0) 0 ds))
(prompt (strcat "\r" str "距离" (rtos ds 2)))
)
((or (equal gr '(2 69))(equal gr '(2 101))) ;Ee
(setq ds (+ ds 4))
(prompt (strcat "\r" str "距离" (rtos ds 2)))
)
)
)
))
(setvar 'cmdecho 1)
(princ)
) (defun c:tt (/ _getreal gr ss str)
(defun _getreal (msg default / ret)
(setq ret (getreal (strcat msg " <" (rtos default) ">:")))
(if (null ret)
default
ret
)
)
(setvar 'cmdecho 0)
(if (null *grmovedis*)
(setq *grmovedis* 4.0)
)
(setq str "\n按W S A D 移动, Q 设置步长, 空格回车或左\右键退出:")
(princ (strcat "\n步长 = " (rtos *grmovedis* 2) ""))
(if (setq ss (ssget))
(progn (princ str)
(while (and (/= (car (setq gr (grread t 15 0))) 3)
(not (equal gr '(2 32)))
(not (equal gr '(2 13)))
(not (equal gr '(11 0)))
(not (equal gr '(25 0)))
)
(cond ((or (equal gr '(2 119)) (equal gr '(2 87))) ;wW
(vl-cmdf "_.move" ss "" '(0 0) (polar '(0 0) (* pi 0.5) *grmovedis*))
)
((or (equal gr '(2 83)) (equal gr '(2 115))) ;Ss
(vl-cmdf "_.move" ss "" '(0 0) (polar '(0 0) (* pi 1.5) *grmovedis*))
)
((or (equal gr '(2 65)) (equal gr '(2 97))) ;Aa
(vl-cmdf "_.move" ss "" '(0 0) (polar '(0 0) pi *grmovedis*))
)
((or (equal gr '(2 68)) (equal gr '(2 100))) ;Dd
(vl-cmdf "_.move" ss "" '(0 0) (polar '(0 0) 0 *grmovedis*))
)
((or (equal gr '(2 81)) (equal gr '(2 113))) ;Qq
(setq *grmovedis* (_getreal "\n输入每次移动的步长" *grmovedis*))
(princ str)
)
)
)
)
)
(setvar 'cmdecho 1)
(princ)
) 将
(setq ds 4.0)
改成
(setq ds (if (numberp ds) ds 4.0))
即可 ZZXXQQ 发表于 2014-11-16 08:40 static/image/common/back.gif
将
(setq ds 4.0)
改成
zz版按照你说的改了 没效果啊 还是跟以前一样麻烦Z版改下 写入注册表或者文本记忆 vectra 发表于 2014-11-16 10:22 static/image/common/back.gif
谢谢大神 真服 顶一下,谢谢楼主及评论区的大神,请问这个是什么作用呀 不错,好方法
页:
[1]