救命,我的口齿不清R
我希望能得到一些帮助来解释为什么我的LISP不起作用,我有一堆文字说29.999、27.999等,我需要改成30.00、28.00等。我正在尝试使用以下内容,但无法使其工作。见下面的lisp
;ROUND TO 5
(defun c:Rnd5(/ a n index b d c num newnum d1 b1 len last)
(graphscr)
(prompt "Select numbers to be rounded") (terpri)
(setq a(ssget))
(setq n (sslength a))
(setq index 0)
(repeat n
(setq na (ssname a index))
(setq b (entget na))
(setq d (assoc 1 b))
(setq c (cdr d)) ; text item
(setq num (atof c));converts it to number
(setq num (* 2 num));doubles it
(setq num (rtos num 2 2));rounds off to 2 places
(setq num (atof num));converts it to number
(setq num (/ num 2));divides by 2
(setq newnum (rtos num 2 3));rounds off
(setq len (strlen newnum))
(setq last (substr newnum len))
(if (= last "0") (setq newnum (rtos num 2 2)))
(setq d1 (cons(car d)newnum))
(setq b1(subst d1 d b))
(entmod b1)
(setq index (+ 1 index))
(print)
)
(defun round (num near)
(* (fix (/ (+ num (/ near 2.0)) near)) near)
)
(fix (+ num 0.5))
gr.R。
https://www.theswamp.org/index.php?topic=44487.0
也可以看李大师的总结功能。。
页:
[1]