- 积分
- 11473
- 明经币
- 个
- 注册时间
- 2007-1-4
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2014-8-26 22:06:04
|
显示全部楼层
本帖最后由 77077 于 2014-8-26 22:13 编辑
你不要急我好不好,(ssget “WP"pt_list (list (cons 0 "TEXT") (cons 8 "M,Pb") (cons 1 "~*[~`--9]*")))这句话里面"wp"外面的引号打错了,你纠正下就行了嘛~~~
(defun c:xx( / ptlst sslst numlst num)
(defun ss->EnLst (ss / retu)
(setq retu (apply 'append (ssnamex ss)))
(setq retu (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) retu))
)
(setq ptlst (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget(car(entsel "\n 选择多边形:"))))))
(setq sslst (ss->EnLst (ssget "wp" ptlst (list (cons 0 "TEXT") (cons 8 "M,Pb") (cons 1 "~*[~`--9]*")))))
(setq numlst (mapcar '(lambda(x) (atof (cdr (assoc 1 (entget x))))) sslst))
(setq num (/ (apply '+ numlst) (length numlst)))
(princ num)
(princ)
)
不过貌似我理解错楼主的意思了,可能真的是像院长那样才是正确的!
那你何不做成属性块呢,你那样如果点重叠在一起(或很接近) 的话很容易出错. |
|