批量除一个数的lisp,请高手改成保留成设置小数位置。
zhouzq490701
2010年12月17日 13:36:35
只看楼主

我有一个在cad里批量除以一个数的LISP。其中《(setq newr (rtos (/ (atof old0) s0) 2 1))》的1就是决定小数点后保留1位的。请高手改一下,能否增加语句,能在cad里选择。现在,我是修改以后再加载,比较麻烦。lisp见下文。(加载命令:cy;自身除一个倍数(DEFUN C:cy() (setvar "cmdecho" 0) (PRINT "(Copyright- aningtang)")

我有一个在cad里批量除以一个数的LISP。其中《(setq newr (rtos (/ (atof old0) s0) 2 1))》的1就是决定小数点后保留1位的。请高手改一下,能否增加语句,能在cad里选择。现在,我是修改以后再加载,比较麻烦。lisp见下文。(加载命令:cy

;自身除一个倍数
(DEFUN C:cy()
(setvar "cmdecho" 0)
(PRINT "(Copyright- aningtang)")
(SETQ s0 (GETREAL "请输入被除数:"))
(PRINT "PLEASE SELECT THE object")
(SETQ S (SSGET ))
(SETQ N (SSLENGTH S))
(SETQ M 0)
(REPEAT N
(SETQ SN (SSNAME S M))
(SETQ e (ENTGET SN))
(IF (= (cdr (assoc 0 e)) "TEXT")
(PROGN
(setq oldr (assoc 1 e))
(setq old0 (cdr oldr))
(setq newr (rtos (/ (atof old0) s0) 2 1))
(setq e1 (subst (cons (car (assoc 1 e)) newr) (assoc 1 e) e))
(entmod e1)
)
)
(SETQ M (+ M 1))
)
)
免费打赏
maomao1127
2011年02月08日 22:22:06
2楼
主运行前先设置保留小数位数或者编个DCL来控制就可以了。
回复

相关推荐

APP内打开