批量属性块的值自动修改
<FONT face=宋体 size=2>一个图形中的某个图层有很多带属性的块,同一个属性块有两个属性名,属性名分别为LX(类型),BH(编号),LX的值只有几个,如:M,J,W,Y,T,D等,而BH的值有很多,如LX值为W时,其编号可以为,W1,W2,W3,,,,,,,W500,,,,W10000。等,要求输入一个命令,能把图中所有属性值LX相同(例如都是W)而BH不同,的值按设计人员要求,在某个值(如W25)以后的其他值自动将其中的数字部分加一,(即W26改成W27,改成W28,,,,,W500改成W501,,,)等,要改的属性块入图</FONT><BR> 有个问题,你所指的属性块是否同一属性块,也就是他们的块名是否相同? <P>相同,我记得你,你好象帮我编过程,谢谢你</P> ;;带序号属性块修改 v1.0 by sailorcwx (2006.11)<BR>(defun c:cblock( / YH_BDATA YH_BH YH_BH1 YH_BH2 YH_BHDATA YH_BLIST YH_BNAME YH_BNAME0 YH_FLASH YH_INDEX YH_LX YH_RBDATA YH_RBH YH_RBLAYER YH_RBLOCKNAME YH_RBNAME YH_RLX YH_TIMES)<BR> (setq YH_rbname (car (entsel "\n选择参考块:"))<BR> YH_rbdata (entget YH_rbname)<BR> YH_rblayer (assoc 8 YH_rbdata)<BR> YH_rblockname (assoc 2 YH_rbdata)<BR> YH_flash T<BR> )<BR> (while (and (setq YH_rbname (entnext YH_rbname)) YH_flash)<BR> (setq YH_rbdata (entget YH_rbname))<BR> (if (= (cdr (assoc 0 YH_rbdata)) "ATTRIB")<BR> (progn<BR> (if (= (cdr (assoc 2 YH_rbdata)) "LX")<BR> (setq YH_RLX (cdr (assoc 1 YH_rbdata)))<BR> )<BR> (if (= (cdr (assoc 2 YH_rbdata)) "BH")<BR> (setq YH_RBH (cdr (assoc 1 YH_rbdata)))<BR> )<BR> )<BR> (setq YH_flash nil)<BR> )<BR> )<BR> (setq YH_blist (ssget (list '(0 . "INSERT") YH_rblayer YH_rblockname))<BR> YH_index 0<BR> YH_flash T<BR> YH_times (sslength YH_blist)<BR> )<BR> (repeat YH_times<BR> (setq YH_bname (ssname YH_blist YH_index)<BR> YH_bname0 YH_bname<BR> )<BR> (while (and (setq YH_bname (entnext YH_bname)) YH_flash)<BR> (setq YH_bdata (entget YH_bname))<BR> (if (= (cdr (assoc 0 YH_bdata)) "ATTRIB")<BR> (progn<BR> (if (= (cdr (assoc 2 YH_bdata)) "LX")<BR> (setq YH_LX (cdr (assoc 1 YH_bdata)))<BR> )<BR> (if (= (cdr (assoc 2 YH_bdata)) "BH")<BR> (setq YH_BH (cdr (assoc 1 YH_bdata))<BR> YH_BHdata YH_bdata)<BR> )<BR> )<BR> (setq YH_flash nil)<BR> )<BR> )<BR> (if (and (= YH_LX YH_RLX) (> (setq YH_BH1 (atoi (substr YH_BH 2))) (atoi (substr YH_RBH 2))))<BR> (progn<BR> (setq YH_BH2 (cons 1 (strcat YH_LX (itoa (+ 1 YH_BH1))))<BR> YH_BHdata (subst YH_BH2 (assoc 1 YH_BHdata) YH_BHdata)<BR> )<BR> (entmod YH_BHdata)<BR> )<BR> )<BR> (entupd YH_bname0)<BR> (setq YH_index (+ 1 YH_index)<BR> YH_flash T<BR> )<BR> )<BR> (princ)<BR> ) <P>成功了,非常感谢你,希望能认识你,请加我QQ,明经气氛都没有原来那么热烈了,</P> <p>我还没弄明白啊,是不是有两个属性值的属性块,且属性名非要LX和BH才能用这个程序啊,如果只有一个属性值,且属性值是带字母前缀或后缀的编号能用这个程序吗?</p> <p>4楼大哥</p><p> 怎么我运行你的程序出现:参数类型错误: stringp nil</p><p> 这个程序很好,能帮我解决吗</p> tanle2020发表于2009-1-14 16:47:00static/image/common/back.gif4楼大哥 怎么我运行你的程序出现:参数类型错误: stringp nil 这个程序很好,能帮我解决吗<p>对啊,我用了怎么也出现相同的错误提示</p> 看不懂
页:
[1]
2