发布于:2010-12-17 13:36:17
来自:建筑设计/建筑资料库
[复制转发]
我有一个在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))
)
)
全部回复(1 )
只看楼主 我来说两句 抢板凳回复 举报