zhkingl 发表于 2005-6-1 08:31:37

[求助]:有没有自动求和的Lisp程序

哪位可以提供自动求和的Lisp工具,即选取一组数据后自动求出他们的和!
谢谢!

它山之石 发表于 2005-6-2 11:36:32

  小弟俺提供一个。这个不是俺写的。功能更多点,还可以乘。免得以后再找。
  俺自己也写了几个数值相关的程序。有时用在求几个柱子的合力,还有可以自动求重心。批量将建筑标高减去一个值等。

zhkingl 发表于 2005-6-2 12:37:19

最初由 它山之石 发布
  小弟俺提供一个。这个不是俺写的。功能更多点,还可以乘。免得以后再找。
  俺自己也写了几个数值相关的程序。有时用在求几个柱子的合力,还有可以自动求重心。批量将建筑标高减去一个值等。

哈哈,
不好意思,得寸进尺,有没有用于AutoCAad R14的??

czad 发表于 2005-6-2 23:28:29

好,我也在找。

它山之石 发表于 2005-6-3 12:15:37

老哥,怎么还在用R14。现在都2006了。
俺的程序基本放弃支持R14了(精力有限)。
随便找了个R14下能用的。
写的很简单,没有进行任何容错处理,
你必须保证选择的都是实体类型为“TEXT”的数字才能有正确结果,
如果不是也不会提示你,但结果不可预料。
程序中有两个命令,一个是用于求积的,命令名是:CHENG。
一个是用于求和的,命令名是:JIA。
程序将求出的结果显示在命令行中,没有写入图中。

程序是源码。你也可以自己进行定制。

天涯行者 发表于 2018-5-4 09:21:51

感谢大牛分享

flfcegu168 发表于 2018-11-14 11:23:29

(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)
)

kmliro_2017 发表于 3 天前

不错,谢谢分享!!!!!
页: [1]
查看完整版本: [求助]:有没有自动求和的Lisp程序