http://www.xdcad.com/forum/showthread.php?goto=lastpost&s=&threadid=83454
http://www.xdcad.com/forum/showthread.php?s=&postid=725790#post725790 十分感谢 无痕 ;也许这样更完善
(defun c:sum ()<BR> (setq p1(getpoint "请选择字域的左上角点"))<BR> (setq p2(getpoint "请选择字域的右下角点"))<BR> <BR> (command "zoom" "w" p1 p2)<BR> (setq selct (ssget "w" p1 p2 '((0 . "text"))))<BR> <BR> (setq n 0<BR> sum 0<BR> )<BR> (repeat (sslength selct)<BR> (setq en (ssname selct n))<BR> (setq endata (entget en))<BR> (setq entxt (cdr (assoc 1 endata)))<BR> (setq entxt (atof entxt))<BR> (setq sum (+ sum entxt))<BR> (setq n (+ n 1))<BR> )<BR> <BR> (setq aa(entget en))<BR> (setq zg0(cdr (assoc 40 AA)))<BR> (setq p3 (polar p2 (/ pi 2) ( * zg0 2 ) ))<BR> (setq sum (fix (+ sum 0.5)))<BR> (command "text" "j" "mc" p3 zg0 0 sum )<BR>) 也有几个问题请各位老师帮忙解答:
①当数据含有单位时,如“80m”,如何将“m”去掉,让“80”参加统计;
②当TEXT字符全是非数字字符时,如“高度”,自动将这个字符去除,不参加统计;
③当选择集为“nil”,或没有一个合格的数据时,输出统计结果为“0”。 可以采用遍历数据库的方法(setq selct (ssget "X" '((0 . "text"))))将文字取出来,然后再取出在对角点为p1和 p2框内的文字. 按这种方法屏幕不会闪烁.<BR> 123abc发表于2005-1-22 11:37:00static/image/common/back.gif也有几个问题请各位老师帮忙解答:
①当数据含有单位时,如“80m”,如何将“m”去掉,让“80”参加统计;
②当TEXT字符全是非数字字符时,如“高度”,自...
<BR>急盼各位老师帮忙! <p>这个程序不能精确到小数,需要改进,怎么改进呢?</p><p></p>
页:
1
[2]