明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: langjs

文本递增刷源码,我刷我刷我刷刷刷!(更新支持属性块)

    [复制链接]
发表于 2012-2-23 09:02:13 | 显示全部楼层
非常好用的程式!!!
為工作帶來很大方便
发表于 2012-2-23 14:37:36 | 显示全部楼层
langjs 真是个好同志,有大侠风范
发表于 2012-2-23 14:49:31 | 显示全部楼层
本帖最后由 raimo 于 2012-2-23 14:50 编辑

langjs的作品都很不错,一定要支持
以前也常麻烦 langjs 帮忙解决问题,表示感谢
发表于 2012-2-23 14:50:25 | 显示全部楼层
老大,能不能改下支持末位是01 02 03格式的- - -
发表于 2012-2-23 16:09:50 | 显示全部楼层
本帖最后由 raimo 于 2012-2-23 16:16 编辑

试过了。。块内文字和多行单行都支持得很好!

从使用者的角度,还想提两点改进意见,请 langjs 考虑

1. 支持 01 02 03 ..格式,如果起始数字是两位数的情况,后面的数字也自动识别,10以内的自动添0,这样方便对齐美观

2. 支持框选,如果能够框选批量递增文字(可以根据从左到右,从上到下的顺序递增),那么遇上大批编号就可以省去很多下点击了。。

点评

有难度,弄不起来  发表于 2012-2-23 23:44
发表于 2012-2-23 19:02:07 | 显示全部楼层
本帖最后由 cj52000 于 2012-2-23 19:02 编辑

langjs的作品一定要顶,私底下帮我解决了很多问题,表示感谢!
发表于 2012-2-23 22:25:57 | 显示全部楼层
本帖最后由 xieyanghui 于 2012-2-23 22:26 编辑
raimo 发表于 2012-2-23 16:09
试过了。。块内文字和多行单行都支持得很好!

从使用者的角度,还想提两点改进意见,请 langjs 考虑
1. 支持 01 02 03 ..格式,如果起始数字是两位数的情况,后面的数字也自动识别,10以内的自动添0,这样方便对齐美观

2. 支持框选,如果能够框选批量递增文字(可以根据从左到右,从上到下的顺序递增),那么遇上大批编号就可以省去很多下点击了。。

非常支持你的想法,非常期待!!
 楼主| 发表于 2012-2-23 23:28:42 | 显示全部楼层
xieyanghui 发表于 2012-2-23 22:25
1. 支持 01 02 03 ..格式,如果起始数字是两位数的情况,后面的数字也自动识别,10以内的自动添0,这样方便 ...

这个小程序是我为单位电气设计员修改线号量身制作的程序,其它领域没多想。大家的想法我看到了,但是逻辑上存在一些问题,比如起始文字为“SB01”,刷到“SB09”,下一步按道理应该是“SB10”了,程序会认为是“SB010”,即使强制刷成“SB010”,那接着往下刷,刷到“SB99”下一步怎么办?总之,期间涉及到的进位、换算、替换等太复杂了。

点评

01的问题,或许可以参考我的文本递增  发表于 2012-2-23 23:52

评分

参与人数 1明经币 +1 收起 理由
raimo + 1 赞一个! 你肯定可以做到的

查看全部评分

发表于 2012-2-24 07:54:05 | 显示全部楼层
本帖最后由 raimo 于 2012-2-24 07:54 编辑
langjs 发表于 2012-2-23 23:28
这个小程序是我为单位电气设计员修改线号量身制作的程序,其它领域没多想。大家的想法我看到了,但是逻辑 ...

相信你肯定可以做到的,数位问题不太难

下面这个是我在netbee 的复制递增程序中自己添加的补位判断语句,
我也是新手可能写得不好,供你参考。

;;;1.01 修改 by netbee 2007.06.18
(defun c:c1 (/ origent origentdata origtext numtext prefixlen prefix num
           cmd addn pt1 pt2 newdata txt
        )
  (setq copyincolderrorfunc *error*)
  (setq *error* copyincerrorfunc)
  (command "_.undo" "_Group")
  (setq cmd (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (while (= origent nil)
    (setq origent (entsel "\n选择文本: "))
  )
  (setq txt (car origent))
  (setq origentdata (cdr (entget (car origent))))
  (if (/= (cdr (assoc 0 origentdata)) "TEXT")
    (princ "未选择文本.")
    (progn
      (setq origtext (cdr (assoc 1 origentdata)))
      (setq numtext (getsuffixdigits origtext))
      (if (= numtext "")
    (princ "此文本不是以数字结尾")
    (progn
      (setq prefixlen (- (strlen origtext) (strlen numtext)))
      (if (= prefixlen 0)
        (setq prefix "")
        (setq prefix (substr origtext 1 prefixlen))
      )
      (setq num (atoi numtext))
      (setq addn (getint "\n请输入递增<1>: "))
      (if (= addn nil)
        (setq addn 1)
      )
      (setq pt1 (getpoint "\n请选择基点:"))
      (setq pt2 0)
      (while (progn
           (initget 128)
           (setq pt2 (getpoint pt1 "\n请选择下一点: "))
         )
        (if (/= pt2 nil)
          (progn
        (setq num (+ num addn))

        ;(setq num (itoa num))

        ;增加数字判断0~9之间的数字自动加0补位
         (if (and
                   (< num 10)
                   (>= num 0)
              )
           (setq num (itoa num)
                 num (strcat "0" num))
           (setq num (itoa num))
         )

        (setq newdata (strcat prefix num))
        (command "copy" txt "" pt1 pt2)
        (command "change" (entlast) "" "" "" "" "" "" newdata)
        (setq num (atoi num))
          )
        )
      )
    )
      )
    )
  )
  (setq *error* copyincolderrorfunc)
  (princ)
  (setvar "cmdecho" cmd)
  (command "_.undo" "_end")
)

(defun getsuffixdigits (origstr / digits prefixlen char)
  (setq digits "")
  (setq prefixlen (strlen origstr))
  (while (> prefixlen 0)
    (setq char (substr origstr prefixlen 1))
    (if (wcmatch char "#")
      (progn
    (setq digits (strcat char digits))
    (setq prefixlen (1- prefixlen))
      )
      (setq prefixlen 0)
    )
  )
  (setq digits digits)
)
(setq copyincolderrorfunc nil)
(defun copyincerrorfunc (msg)
  (if (= msg "function cancelled")
    (princ " ")
    (if (= msg "quit / exit abort")
      (princ " ")
      (princ (strcat "\nerror: " msg))
    )
  )
  (setq *error* copyincolderrorfunc)
  (princ)
)
 楼主| 发表于 2012-2-24 08:33:10 | 显示全部楼层
框选没办法框选选择到合适的块内的文字,属性块内的文字……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 04:07 , Processed in 0.172565 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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