请大家帮忙编一个程序
帮我做一个程序,把相同的导线型号的数量相加,如BLV-35/38,BLV-35/120,把二全本、相加,得158,请大家帮忙了,在下感激不尽 这些线有什么特征?就线的本身 下面的程序已测试通过,供参考:
(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> (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>)<BR> <BR>下面是运行结果:<BR>Command: dxcd
统计结果<BR>-----------------------<BR>导线型号 导线长度<BR>-----------------------<BR>LGJ-95 690.5<BR>BLV-35 2873<BR>BLV-50 1482.5<BR>BLV-70 252<BR>LGJ-70 125<BR>LGJ-120 92<BR>-----------------------<BR> 多谢多谢,可我不懂怎么用?能教我使用否?OICQ:52001189 該程序檔案命名 ***.lsp ***為自定
command:下輸入appload 或 ap
載入檔案,執行dxcd 可我执行得下面的数字,和楼上的不一样
命令: dxcd<BR>统计结果<BR>-----------------------<BR>导线型号 导线长度<BR>-----------------------<BR>LGJ-95 52.5<BR>BLV-35 47.5<BR>BLV-50 21<BR>BLV-70 11.5<BR>LGJ-70 38<BR>LGJ-120 48<BR>----------------------- 是程序的第21行没有写全,下面已改过。对不起。<BR>(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>)<BR> 谢谢,我试试看 可以了谢谢 还有一个问题想请教,假如把“/”换成“\”程序如何改动?还有在图纸当中统计如“方框4”中各个方框数字的总和?
页:
[1]