sunfox 发表于 2003-8-9 16:54:00

[紧急求助]请帮忙编一段小程序

由于本人对AutoCAD及AutoLISP均只懂皮毛,但有同学求助,所以想让各位大侠帮忙编一段AutoLISP程序。在此先谢过!!
求平均值:在图中选取数字(实数),求它们的平均值,选中几个就求几个的平均值(一般不超过5个数字)

sunfox 发表于 2003-8-9 17:01:00

还有,VLX格式的用什么打开,怎么在CAD中使用呢?

最好请您给我一段txt中写出来的.lsp程序:)

myfreemind 发表于 2003-8-10 00:17:00

试试下面这段程序!

(defun c:aver()

(setq s (ssget))
(setq n (sslength s))
(setq wbs n)
(setq n (- n 1))
(setq az 0)
(while (>= n 0)
    (setq n1 (ssname s n))
    (setq z (cdr (assoc 1 (entget n1))))
    (setq z (distof z 1))
    (setq az (+ az z))
    (setq n (- n 1))
    )
(setq pjz ( rtos (/ az wbs)))

(print (strcat "平均值为:" pjz ))
(princ)
)

sunfox 发表于 2003-8-10 15:46:00

谢谢,俺去试试~~~

janice 发表于 2003-12-3 17:16:00

这挺简单的啊

meflying 发表于 2003-12-3 17:47:00

janice发表于2003-12-3 17:16:00static/image/common/back.gif这挺简单的啊



那你也来一个啊,或许有更简便的方法。。。

chamous 发表于 2005-11-3 16:45:00

<P>谢谢meflying!小弟受用了.</P>

xyp1964 发表于 2005-11-16 22:37:00

(defun c:aver ()
(setq ss (ssget '((0 . "TEXT")))
i-1 j0 m0
)
(while (setq s1 (ssname ss (setq i (1+ i))))
    (setq z (cdr (assoc 1 (entget s1))))
    (if (setq z (distof z))
      (progn
(setq j (1+ j)
       m (+ m z)
))))
(princ "\n平均值 = ")
(princ (/ m j 1.0))
(princ)
)
页: [1]
查看完整版本: [紧急求助]请帮忙编一段小程序