批量序号自动加1
<FONT face=宋体 size=2>一个图形文件中,某个图层有W1,W2,,,,,,W500,,,,,W1000,,,等(也可能为M1,M2,,,,M500,,,,,,M1000,,,),要求输入一个命令,选择一个编号(例如W401)。则要求W401以后其他编号的数字部分自动加1,即W402改成W403,W403改成W404,,,,,,W702改成W703</FONT><BR> <P>几个问题<BR>1.这些编号只改同一图层的?<BR>2.是否考虑中间有横杠的情况,比如W1-4,如果考虑,那么增加的是横杠前面的数字还是横杠后面的数字,比如是改成W1-5还是W2-4还是W2-5呢?</P> 只改同一图层的,考虑中间有横杠的情况 本帖最后由 作者 于 2006-11-12 21:06:35 编辑 <br /><br /> <P>OK</P> <P>试试</P><P>;;序号递增程序 V1.0 by sailorcwx (2006.11)<BR>(defun c:numadd ( / YH_ENTDATA YH_ENTLAYER YH_ENTLIST YH_INDEX YH_POSITION YH_REPEATTIMES YH_SNUM0 YH_SNUM01 YH_SNUM02 YH_SNUM1 YH_SNUM11 YH_SNUM12 YH_SNUMDATA YH_SSGETFILTER)<BR> (while<BR> (setq YH_entdata (entget (car (entsel "\n选择一个参考编号:")))<BR> YH_entlayer (assoc 8 YH_entdata)<BR> YH_snum0 (cdr (assoc 1 YH_entdata))<BR> )<BR> (princ "OK")<BR> (if (vl-string-search "-" YH_snum0) (setq YH_position (vl-string-search "-" YH_snum0)) (setq YH_position 0))<BR> (setq YH_snum01 (substr YH_snum0 1 (+ 1 YH_position))<BR> YH_snum02 (atoi (substr YH_snum0 (+ 2 YH_position)))<BR> YH_ssgetfilter (list YH_entlayer (cons 1 (strcat YH_snum01 "*")))<BR> )<BR> (setq YH_entlist (ssget YH_ssgetfilter)<BR> YH_index 0<BR> YH_repeattimes (sslength YH_entlist)<BR> )<BR> (repeat YH_repeattimes<BR> (setq YH_snumdata (entget (ssname YH_entlist YH_index))<BR> YH_snum1 (cdr (assoc 1 YH_snumdata))<BR> YH_snum11 (substr YH_snum1 1 (+ 1 YH_position))<BR> YH_snum12 (substr YH_snum1 (+ 2 YH_position))<BR> )<BR> (if (and (not (vl-string-search "-" YH_snum12)) (> (setq YH_snum12 (atoi YH_snum12)) YH_snum02))<BR> (progn<BR> (setq YH_snum12 (itoa (+ 1 YH_snum12))<BR> YH_snum1 (strcat YH_snum11 YH_snum12)<BR> YH_snumdata (subst (cons 1 YH_snum1) (assoc 1 YH_snumdata) YH_snumdata)<BR> )<BR> (entmod YH_snumdata)<BR> )<BR> )<BR> (setq YH_index (1+ YH_index))<BR> )<BR> )<BR> (princ)<BR> )</P> <p>多谢</p> 如果我一开始有200个001,001,001……,但现在想改下,从A050,A051,A052开始往下.而且先选择哪个数就先修哪个数,与实际放的顺序无关。谢谢 <p>这个不是CAD里面有批量图层的命令吗?难道还要编程啊!不过即使编写也不需要那么复杂的,千万别把简单的事情给复杂化了,这样不好,批量改图层不过是遍历图层,然后将序号增加一位</p><p>sub sfdsfdf()</p><p>dim pppplayer as acadlayer</p><p>for each pppplayer in thisdrawing.layers</p><p> pppplayer.name=pppplayer.name+"此处为所添加的东西"</p><p> pppplayer.update</p><p>next pppplayer</p><p></p><p>end sub</p> 不知道 怎么用那个参考编号输入没反映也不知道怎么输入 谢谢啦,我正需要一个可以批量上数字序列的程序,譬如添加阵列图纸的页码。不过还不知道怎么用呢,呵呵
页:
[1]
2