谁能帮我看看是怎么回事,关于(> (abs (- (cadadr pt) (cadadr pto))) ds)
我从论坛里下载的源码,其中里边有一句是(> (abs (- (cadadr pt) (cadadr pto))) ds)
我不知道是怎么个意思,所以就自己编了段代码
(defun c:sss ()
(setq pto (grread t 15 0))
(setq pt (grread pto))
(while (/= (car pt) 3)
(setq a (abs (- (cadadr pt) (cadadr pto)))
)
)
)
想看看
(abs (- (cadadr pt) (cadadr pto))得出的是一个什么样的值
但是程序执行的时候,就卡了,光标不动,貌似是无限循环崩溃呢
莫非是我while写的不对?
(defun c:sss ()
(setq pto (grread t 15 0))
(while (= 5 (car (setq pt (grread pto))))
(setq a (abs (- (cadadr pt) (cadadr pto)))
)
)
)
搞明白了。 如果在图面直接点击,cadadr是获取你点击位置坐标的Y值。。。你的代码干嘛用我看不懂。。。 q3_2006 发表于 2013-11-22 12:33 static/image/common/back.gif
如果在图面直接点击,cadadr是获取你点击位置坐标的Y值。。。你的代码干嘛用我看不懂。。。
就是从明经里下的代码,自动增减数字的,我弄明白了,谢谢了!我看的就是下面的代码。
;;;use Alan method
;;;to easy to control add method devided by viewsize .
;;;Writed by chlh_jd
(defun c:test (/ en ent str ds pto pt)
(if (and (setq en (car (entsel "Select Integer Number Text :")))
(setq ent (entget en))
(setq str (cdr (assoc 1 ent)))
(numberp (eval (read str)))
(equal (atoi str) (atof str))
(setq ds (/ (getvar "viewsize") 100.));_here can be changed cond to your need
(setq pto (grread t 15 0))
)
(while (and (setq pt (grread pto))
(not (and (= 2 (car pt))
(or (= 13 (cadr pt)) (= 32 (cadr pt)))
)
) ;_Enter Space
(not (or (= (car pt) 11) (= (car pt) 25))) ;_Right button
)
(if (and (= (car pt) 5)
(> (abs (- (cadadr pt) (cadadr pto))) ds)
)
(cond
((> (- (cadadr pt) (cadadr pto)) 0);_Y+ move
(setq str (rtos (1+ (atoi str)) 2 0))
(entmod (list (cons 1 str) (cons -1 en)))
(setq pto pt)
)
((< (- (cadadr pt) (cadadr pto)) 0);_Y- move
(setq str (rtos (1- (atoi str)) 2 0))
(entmod (list (cons 1 str) (cons -1 en)))
(setq pto pt)
)
)
(princ)
)
)
(princ)
)
(princ)
)
q3_2006 发表于 2013-11-22 12:33 static/image/common/back.gif
如果在图面直接点击,cadadr是获取你点击位置坐标的Y值。。。你的代码干嘛用我看不懂。。。
现在执行到
(setq str (cdr (assoc 1 ent)))
就不动了,不知道咋回事 倔强的蚂蚁 发表于 2013-11-22 12:51 static/image/common/back.gif
现在执行到
(setq str (cdr (assoc 1 ent)))
就不动了,不知道咋回事
没啥问题呀。。我运行正常! q3_2006 发表于 2013-11-22 14:44 static/image/common/back.gif
没啥问题呀。。我运行正常!
如果我输入单行文本,运行就正常
若数字是多行文本输入的,就得打散一下。
后来我给改了改,在entmod里,加了subst,然后就运行正常了。
页:
[1]