明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1476|回复: 6

[求助]带字符的数字按选择顺序编号

[复制链接]
发表于 2007-12-5 17:17 | 显示全部楼层 |阅读模式

能否搞个根据选择顺序的先后,对带字符的数字如:WL11,WL21,WL31(WL-1)

对这些数字重新编号,变成WL1,WL2,WL3……

从那个数字开始递增及其递增多少由用户自己设置。

望高手支招。 (已搜索多日无有类似程序)                                                          

                                                                                             谢谢

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-12-5 20:11 | 显示全部楼层

“同是土木人”里面有个土木在线的版主别晨,他和其它一些高手编了一个“梁重新编号”

可以去找找。。好用哦

 楼主| 发表于 2007-12-5 21:42 | 显示全部楼层

那个程序太复杂!没搞懂! 而且是结构用的! 里面的KL之类的无法修改!仍然谢谢提醒

发表于 2007-12-5 22:52 | 显示全部楼层

我想应该就是一个排序的问题,根据所选实体在选择集中的顺序,改写并更新实体吧?

 楼主| 发表于 2007-12-6 00:01 | 显示全部楼层

恩!楼上说的基本差不多!希望高手赐教

发表于 2007-12-9 22:21 | 显示全部楼层

怎么来确保实体在选择集中的顺序呢?用entsel一个一个点选吗? 

发表于 2007-12-9 23:49 | 显示全部楼层

你可以根据下面程序修改一下

(defun c:fbbb (/ x y os cmd ds clay m int n b p1 r a aa ss temp t1 tt t2
        t3)
  (setq os (getvar "osmode"))
  (setq cmd (getvar "cmdecho"))
  (setq ds (getvar "dimscale"))
  (setq clay (getvar "clayer"))  ;保存旧参数
  (setvar "osmode" 0)
  (setq m   0
 int 0
 n   0
 b   nil
 p1  nil
  )     ;设定新参数
  (setq r (/ ds 5))
  (setq a (getstring "\n请输入要插入的第一个序号"))
  (setq a (strcase a))
  (setq int (getint "\n请输入要插入的序号个数"))
  (setq ent1 (entsel "\n请选择图层"))
  (setq LAY (cdr (assoc 8 (entget (car ent1)))))
  (setq ss (ssget (list (cons 0 "TEXT") (CONS 8 LAY))))
  (setq bwt (atoi a))
  (repeat (sslength ss)
    (setq temp (ssname ss m))
    (setq t1 (entget temp))
    (setq tt (atoi (cdr (assoc 1 t1))))
    (if (= tt 0)
      (progn
 (setq strs (cdr (assoc 1 t1)))
 (setq n (strlen strs))
 (setq strs4 (substr a 1 1))
 (setq as5 (ascii strs4))
 (setq hh (substr strs 2 4))
 (if (and (>= as5 65) (<= as5 90))
  (progn
 (if (= n 1)
   (progn
     (setq as1 (ascii strs))
     (setq as2 (+ as1 int))
     (setq stradd (chr as2))
     (setq t1 (subst (cons 1 stradd) (assoc 1 t1) t1))
     (setq t2 (cdr (assoc 1 t1)))
     (setq t3 (strlen t2))
     (if (/= t3 1)
       (setq t1
       (subst (cons 41 (- 0.9 (* t3 0.1))) (assoc 41 t1) t1)
       )
     )
     (entmod t1)
   )
 )))
 
 

      )
      (progn

 (if (>= tt bwt)
   (progn
     (setq t1 (subst (cons 1 (itoa (+ tt int))) (assoc 1 t1) t1))
     (setq t2 (atoi (cdr (assoc 1 t1))))
     (setq t3 (strlen (itoa t2)))
     (if (/= t3 1)
       (setq t1
       (subst (cons 41 (- 0.9 (* t3 0.1))) (assoc 41 t1) t1)
       )
     )
     (entmod t1)
   )
 )
      )
    )
    (setq m (+ m 1))
  )
  (setvar "osmode" os)
  (setvar "cmdecho" cmd)
  (setvar "clayer" clay)
 
  (princ)
)

评分

参与人数 1金钱 +50 收起 理由
wowan1314 + 50

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 19:28 , Processed in 0.170845 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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