明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6792|回复: 10

批量序号自动加1

[复制链接]
发表于 2006-11-11 21:33:00 | 显示全部楼层 |阅读模式
一个图形文件中,某个图层有W1,W2,,,,,,W500,,,,,W1000,,,等(也可能为M1,M2,,,,M500,,,,,,M1000,,,),要求输入一个命令,选择一个编号(例如W401)。则要求W401以后其他编号的数字部分自动加1,即W402改成W403,W403改成W404,,,,,,W702改成W703

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2006-11-12 14:51:00 | 显示全部楼层

几个问题
1.这些编号只改同一图层的?
2.是否考虑中间有横杠的情况,比如W1-4,如果考虑,那么增加的是横杠前面的数字还是横杠后面的数字,比如是改成W1-5还是W2-4还是W2-5呢?

 楼主| 发表于 2006-11-12 15:55:00 | 显示全部楼层
只改同一图层的,考虑中间有横杠的情况
发表于 2006-11-12 20:34:00 | 显示全部楼层
本帖最后由 作者 于 2006-11-12 21:06:35 编辑

OK

发表于 2006-11-12 22:22:00 | 显示全部楼层

试试

;;序号递增程序 V1.0 by sailorcwx (2006.11)
(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)
  (while
    (setq YH_entdata (entget (car (entsel "\n选择一个参考编号:")))
   YH_entlayer (assoc 8 YH_entdata)
   YH_snum0 (cdr (assoc 1 YH_entdata))
   )
    (princ "OK")
    (if (vl-string-search "-" YH_snum0) (setq YH_position (vl-string-search "-" YH_snum0)) (setq YH_position 0))
    (setq YH_snum01 (substr YH_snum0 1 (+ 1 YH_position))
   YH_snum02 (atoi (substr YH_snum0 (+ 2 YH_position)))
   YH_ssgetfilter (list YH_entlayer (cons 1 (strcat YH_snum01 "*")))
   )
    (setq YH_entlist (ssget YH_ssgetfilter)
   YH_index 0
   YH_repeattimes (sslength YH_entlist)
   )
    (repeat YH_repeattimes
      (setq YH_snumdata (entget (ssname YH_entlist YH_index))
     YH_snum1 (cdr (assoc 1 YH_snumdata))
     YH_snum11 (substr YH_snum1 1 (+ 1 YH_position))
     YH_snum12 (substr YH_snum1 (+ 2 YH_position))
     )
      (if (and (not (vl-string-search "-" YH_snum12)) (> (setq YH_snum12 (atoi YH_snum12)) YH_snum02))
 (progn
   (setq YH_snum12 (itoa (+ 1 YH_snum12))
  YH_snum1 (strcat YH_snum11 YH_snum12)
         YH_snumdata (subst (cons 1 YH_snum1) (assoc 1 YH_snumdata) YH_snumdata)
  )
   (entmod YH_snumdata)
   )
 )
      (setq YH_index (1+ YH_index))
      )
    )
  (princ)
  )

发表于 2007-4-5 15:37:00 | 显示全部楼层

多谢

发表于 2007-7-2 22:43:00 | 显示全部楼层
如果我一开始有200个001,001,001……,但现在想改下,从A050,A051,A052开始往下.而且先选择哪个数就先修哪个数,与实际放的顺序无关。谢谢
发表于 2007-8-14 16:50:00 | 显示全部楼层

这个不是CAD里面有批量图层的命令吗?难道还要编程啊!不过即使编写也不需要那么复杂的,千万别把简单的事情给复杂化了,这样不好,批量改图层不过是遍历图层,然后将序号增加一位

sub sfdsfdf()

dim pppplayer as acadlayer

for each pppplayer in thisdrawing.layers

  pppplayer.name=pppplayer.name+"此处为所添加的东西"

  pppplayer.update

next  pppplayer

end sub

发表于 2008-2-23 18:53:00 | 显示全部楼层
不知道 怎么用  那个参考编号输入没反映  也不知道怎么输入
发表于 2008-4-30 10:48:00 | 显示全部楼层
谢谢啦,我正需要一个可以批量上数字序列的程序,譬如添加阵列图纸的页码。不过还不知道怎么用呢,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-27 20:01 , Processed in 0.207404 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表