[求助]:有没有自动求和的Lisp程序
哪位可以提供自动求和的Lisp工具,即选取一组数据后自动求出他们的和!谢谢! 小弟俺提供一个。这个不是俺写的。功能更多点,还可以乘。免得以后再找。
俺自己也写了几个数值相关的程序。有时用在求几个柱子的合力,还有可以自动求重心。批量将建筑标高减去一个值等。 最初由 它山之石 发布
小弟俺提供一个。这个不是俺写的。功能更多点,还可以乘。免得以后再找。
俺自己也写了几个数值相关的程序。有时用在求几个柱子的合力,还有可以自动求重心。批量将建筑标高减去一个值等。
哈哈,
不好意思,得寸进尺,有没有用于AutoCAad R14的?? 好,我也在找。 老哥,怎么还在用R14。现在都2006了。
俺的程序基本放弃支持R14了(精力有限)。
随便找了个R14下能用的。
写的很简单,没有进行任何容错处理,
你必须保证选择的都是实体类型为“TEXT”的数字才能有正确结果,
如果不是也不会提示你,但结果不可预料。
程序中有两个命令,一个是用于求积的,命令名是:CHENG。
一个是用于求和的,命令名是:JIA。
程序将求出的结果显示在命令行中,没有写入图中。
程序是源码。你也可以自己进行定制。 感谢大牛分享 (defun c:CAA (/ all endno aa bb cc wz tha tsum i)
(progn
(if (null xzz)
(setq xzz 0)
)
(setq ALL (ssget (list (cons 0 "text"))))
(if all
(SETQ nn (SSLENGTH ALL))
)
(setq endno 0)
(setq tsum 0
i 0
)
(WHILE (and (< endno nn) all)
(setq aa (ssname all endno))
(setq bb (entget aa))
(setq cc (cdr (assoc 1 bb)))
(setq wz (rdata cc))
(setq tha (substr cc (+ wz 1) (- (strlen cc) wz -1)))
(if (= tha "")
(setq tha "0")
)
(setq tsum (+ tsum (atof tha)))
(setq i (1+ i))
(print (strcat (itoa i) ":文本 <" cc ">---数字 <" tha ">"))
(setq endno (+ endno 1))
)
(print (strcat "共" (itoa i) "个文本,和=" (rtos tsum)))
(print)
(COMMAND "LAYER" "M" "text" "C" "6" "" "")
(COMMAND "clayer" "text")
(setq pt (getpoint "\n请选择放置文字的位置点:"))
(setq old_hh (getvar "textsize"))
(setq str_hh (strcat "\n当前文字高度<"
(rtos old_hh)
">"
"或点第二点自定义方字高度"
)
)
(setq hh (getdist pt str_hh))
(if (null hh)
(setq hh old_hh)
)
;
(command "text"
pt
hh
"0"
(strcat "合计:"
(rtos tsum 2 2)
)
)
)
)
;;;
(defun rdata (str / len i aa)
(if (> (strlen str) 0)
(progn
(setq i (strlen str))
(setq aa (substr str (strlen str) 1))
(while (and (or (and (>= aa "0") (<= aa "9"))
(= aa ".")
)
(>= i 1)
)
(setq i (1- i))
(if (>= i 1)
(setq aa (substr str i 1))
)
)
)
)
(setq i i)
)
不错,谢谢分享!!!!!
页:
[1]