进来看一下
如图里面所示,如方框内的数字,我想统计整张图的方框里面的数据,程序如何写?一些如BLV-25/36之类的数据程序已做好如下:
(defun c:dxcd(/ )<BR> (setq ss(ssget "x" '((0 . "MTEXT"))))<BR> (setq sn(sslength ss))<BR> (setq dxtab nil i 0)<BR> <BR> (while(< i sn)<BR> (setq si(ssname ss i)<BR> str(cdr(assoc 1 (entget si)))<BR> )<BR> (setq pos nil)<BR> (if(< (strlen str) 15)<BR> (setq pos(vl-string-position (ascii "/") str))<BR> )<BR> (if pos<BR> (progn<BR> (setq xx(substr str 1 pos) cd(substr str (+ pos 2)) cd(atof cd))<BR> (setq dxlst(assoc xx dxtab))<BR> (if dxlst<BR> (progn<BR> (setq cd(+ (cdr dxlst) cd))<BR> (setq dxtab(subst (cons xx cd) dxlst dxtab))<BR> )<BR> (setq dxtab(append dxtab (list(cons xx cd))))<BR> )<BR> )<BR> )<BR> (setq i(1+ i))<BR> )<BR> (princ "\n统计结果")<BR> (princ "\n-----------------------")<BR> (princ "\n导线型号 导线长度")<BR> (princ "\n-----------------------")<BR> <BR> (setq i 0)<BR> (while(< i (length dxtab))<BR> (setq dxlst(nth i dxtab))<BR> (princ (strcat "\n" (car dxlst) " " (rtos (cdr dxlst) 2 2)))<BR> (setq i(1+ i))<BR> )<BR> (princ "\n-----------------------")<BR> (princ) <BR>)
假如我把BLV-25/36,改成BLV-36\36,即“/”改成“\”如何改动,望指教!在下不胜感激。 (ascii "/")->(ascii "\\") 谢谢班竹,如想统计方框里的数据又如何编写?即总和
页:
[1]