lxb9721 发表于 2019-3-22 10:22:21

各位大神,求一个cad的lisp:求封闭线框内多个数值的平均值

https://gss0.baidu.com/-4o3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/b8389b504fc2d562a1a3b303eb1190ef77c66cb0.jpg
各位大神,求一个cad的lisp:求封闭线框内多个数值的平均值

start4444 发表于 2019-3-22 12:40:26

论坛搜一下数字求和的代码一大把

1291500406 发表于 2019-3-23 22:50:40

本帖最后由 1291500406 于 2019-3-23 22:53 编辑

(defun C:bb (/ lss en enlist)(setvar "cmdecho" 0)(setq en (car (entsel"\n必强提示:选择多段线\n")))
(if en(command "pedit" "M" en "" "C" ""))(setq enlist (entget en))(setq lss (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) enlist)))
(Setq bbsssetfirst (ssget "WP" lss '((0 . "TEXT")(1 . "~*[~`--9]*"))) )(sssetfirst nil bbsssetfirst)(bbaverage))
(defun bbaverage ()(setq ss (ssget '((0 . "TEXT")))i -1 j 0 m 0)
(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))

xyp1964 发表于 2019-3-24 17:38:44

(defun c:tt ()
(if (and (setq s1 (car (entsel "\n选择多段线: ")))
           (xyp-Etype s1 "*polyline")
      )
    (progn
      (Setq ptn        (xyp-Vertexs s1 0)
          ss        (ssget "WP" ptn '((0 . "TEXT") (1 . "~*[~`--9]*")))
          lst        (mapcar        '(lambda (x) (distof (xyp-DXF 1 x)))
                        (xyp-Ss2List ss)
                )
          vv        (/ (apply '+ lst) (length lst) 1.)
      )
      (princ "\n平均值 = ")
      (princ vv)
      (sssetfirst nil ss)
    )
)
(princ)
)
页: [1]
查看完整版本: 各位大神,求一个cad的lisp:求封闭线框内多个数值的平均值