找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1485|回复: 12

[求助] 有没有大佬可以让这个批量递增前缀编号每次点击+1

[复制链接]
发表于 2021-1-31 18:20:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×

如何可以每次点击 让编号+1

如何可以每次点击 让编号+1

如何可以让它每次点击后在输入的这个起始编号的基础上+1,比如点第一个文本是Q1***,点第二个就是Q2***,点第三个就是Q3***,依次类推,请大佬指点完善,论坛搜了一圈都没搜到有这个功能的插件,特来求助,为方便各位阅读,我把代码也粘贴出来,如下:
  1. (defun c:tt4 (/ ent k loop2 obj return# ss str1)
  2. ;;;;图形界面设置
  3.   (vl-load-com)
  4.   (setq @dclfiledame (vl-filename-mktemp nil nil ".dcl"))
  5.   (setq @dclfiled (open @dclfiledame "w"))
  6.   (write-line "dzmjjsbdc:dialog {" @dclfiled)
  7.   (write-line "label = "文本加前后缀" ;" @dclfiled)
  8.   (write-line ":row {" @dclfiled)
  9.   (write-line ":edit_box {" @dclfiled)
  10.   (write-line "key = "textaddstring1" ;" @dclfiled)
  11.   (write-line "label = "前缀" ;" @dclfiled)
  12.   (write-line "width = 10  ;" @dclfiled)
  13.   (write-line "        }" @dclfiled)
  14.   (write-line ":edit_box {" @dclfiled)
  15.   (write-line "key = "textaddstring2" ;" @dclfiled)
  16.   (write-line "label = "后缀" ;" @dclfiled)
  17.   (write-line "width = 10  ;" @dclfiled)
  18.   (write-line "        }" @dclfiled)
  19. ;;;;;;;;;;;;;;;;;
  20.   (write-line ":edit_box {" @dclfiled)
  21.   (write-line "key = "textaddstring3" ;" @dclfiled)
  22.   (write-line "label = "起始序号" ;" @dclfiled)
  23.   (write-line "width = 10  ;" @dclfiled)
  24.   (write-line "        }" @dclfiled)
  25. ;;;;;;;;;;;;;;;;;  
  26.   (write-line "    }" @dclfiled)
  27.   (write-line "        ok_cancel;" @dclfiled)
  28.   (write-line "}" @dclfiled)
  29.   (close @dclfiled)
  30.   ;;以下根据情况处理
  31.   (setq @dclid (load_dialog @dclfiledame))
  32.   (new_dialog "dzmjjsbdc" @dclid)
  33.   ;;设置控件默认值
  34.   (if (and (/= textaddstring1_1 "") (/= textaddstring1_1 nil))
  35.     (set_tile "textaddstring1" textaddstring1_1)
  36.   )
  37.   (if (and (/= textaddstring2_1 "") (/= textaddstring2_1 nil))
  38.     (set_tile "textaddstring2" textaddstring2_1)
  39.   )
  40.   (if (and (/= textaddstring3_1 "") (/= textaddstring3_1 nil))
  41.     (set_tile "textaddstring3" textaddstring3_1)
  42.   )  
  43.   (action_tile "accept" "(get_dzmjjsbdc_main)(done_dialog 1)")
  44. ;;;确定
  45.   (setq return# (start_dialog))
  46.   (cond
  47.     ((= return# 1)
  48.      (setq loop2 t)
  49.      (while loop2
  50.        (princ "\n 选择文本<退出>")
  51.        (setq ss (vl-catch-all-apply 'ssget (list ":S" '((0 . "TEXT")))))
  52.        (if (vl-catch-all-error-p ss)
  53.          (progn
  54.            (princ (strcat "**VL-CATCH-ALL-ERROR-P提示有错:** "
  55.                           (vl-catch-all-error-message ss)
  56.                   )
  57.            )
  58.            (setq loop2 nil)
  59.            (princ)
  60.          )
  61.          (progn
  62.            (if ss
  63.              (repeat (setq k (sslength ss))
  64.                (setq ent (ssname ss (setq k (1- k))))
  65.                (setq obj (vlax-ename->vla-object ent))
  66.                (setq str1 (vla-get-textstring obj))      
  67.                (vla-put-textstring
  68.                  obj
  69.                  (strcat textaddstring1_1 textaddstring3_1 str1 textaddstring2_1)
  70.                )      
  71.              )
  72.            )
  73.          )
  74.        )
  75.      )
  76.     )
  77.   )
  78.   (unload_dialog @dclid)
  79.   (vl-file-delete @dclfiledame)
  80.   (princ)
  81. )
  82. ;;;;;获得对话框值
  83. (defun get_dzmjjsbdc_main ()
  84.   (setq textaddstring1_1 (get_tile "textaddstring1"))
  85.   (setq textaddstring2_1 (get_tile "textaddstring2"))
  86.   (setq textaddstring3_1 (get_tile "textaddstring3"))
  87. )
不太懂代码,所以可能看着各种蹩脚,有大神可以修改完善精简最好,跪谢!

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:加减前后缀[tt4].lsp 
下载次数:12  文件大小:2.91 KB 
下载权限: 不限 以上  [免费赚D豆]


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 511个

财富等级: 财运亨通

发表于 2021-2-1 16:32:25 | 显示全部楼层
  1. (defun c:tt4  (/ *error* @dclfiled @dclfiledame @dclid ent errorsave k loop mod1 mod2 mod3 mod4
  2.                num num_ obj return# ss str1 str textaddstring1_1 textaddstring2_1 textaddstring3_1)
  3.   (vl-load-com)
  4.   (setq errorsave *error*)
  5.   (defun *error*  (msg)
  6.     (unload_dialog @dclid)
  7.     (vl-file-delete @dclfiledame)
  8.     (setq *error* errorsave))
  9.   (defun get_dzmjjsbdc_main  ()
  10.     (setq textaddstring1_1 (get_tile "textaddstring1")
  11.           textaddstring2_1 (get_tile "textaddstring2")
  12.           textaddstring3_1 (get_tile "textaddstring3")
  13.           mod1             (get_tile "x1")
  14.           mod2             (get_tile "x2")
  15.           mod3             (get_tile "x3")
  16.           mod4             (get_tile "x4")))
  17.   (setq @dclfiledame (vl-filename-mktemp nil nil ".dcl")
  18.         @dclfiled (open @dclfiledame "w"))
  19.   (write-line
  20.     "dzmjjsbdc:dialog { label = \"文本加前后缀\" ;
  21.                             :row {:edit_box {key=\"textaddstring1\";label=\"前缀\";width=10;}
  22.                                     :edit_box {key=\"textaddstring2\";label=\"后缀\";width=10;}
  23.                                     :edit_box {key=\"textaddstring3\";label=\"起始序号\";width=10;value=1;}
  24.                                    }
  25.                               :spacer{hight=10;} :spacer{hight=10;}
  26.                               :boxed_radio_column
  27.                              {label=\"排序方式\";
  28.                                 :radio_button{label=\"序号 前缀 文字 后缀\";key=\"x1\";value=1;}
  29.                                 :radio_button{label=\"前缀 序号 文字 后缀\";key=\"x2\";value=0;}
  30.                                 :radio_button{label=\"前缀 文字 序号 后缀\";key=\"x3\";value=0;}
  31.                                 :radio_button{label=\"前缀 文字 后缀 序号\";key=\"x4\";value=0;}
  32.                              }ok_cancel;}"
  33.     @dclfiled)
  34.   (close @dclfiled)
  35.   (setq @dclid (load_dialog @dclfiledame))
  36.   (new_dialog "dzmjjsbdc" @dclid)
  37.   (action_tile "accept" "(get_dzmjjsbdc_main)(done_dialog 1)")
  38.   (setq return# (start_dialog))
  39.   (list mod1 mod2 mod3 mod4)
  40.   (cond ((= return# 1)
  41.          (if (setq num (vl-remove nil (mapcar '(lambda(x) (if (< 47 x 59) x nil)) (vl-string->list textaddstring3_1))))           (setq num (atoi (apply 'strcat (mapcar 'chr num)))))
  42.          (setq loop t)
  43.          (while loop
  44.            (princ "\n选择文本<退出>")
  45.            (cond ((setq ss (ssget ":s" '((0 . "text"))))
  46.                   (repeat (setq k (sslength ss))
  47.                     (setq ent (ssname ss (setq k (1- k)))
  48.                           obj (vlax-ename->vla-object ent)
  49.                           str1 (vla-get-textstring obj)
  50.                           num_ (if num (rtos num 2 0) "")
  51.                           str (cond ((= mod1 "1") (list num_ textaddstring1_1 str1 textaddstring2_1))
  52.                                     ((= mod2 "1") (list textaddstring1_1 num_ str1 textaddstring2_1))
  53.                                     ((= mod3 "1") (list textaddstring1_1 str1 num_ textaddstring2_1))
  54.                                     ((= mod4 "1") (list textaddstring1_1 str1 textaddstring2_1 num_))))
  55.                     (vla-put-textstring obj (apply 'strcat str))
  56.                     (if num
  57.                       (setq num (1+ num)))))
  58.                  (t (setq loop nil))))))
  59.   (unload_dialog @dclid)
  60.   (vl-file-delete @dclfiledame)
  61.   (princ))



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

发表于 2021-2-1 07:56:50 | 显示全部楼层
zhendeshihenbuduoe xiezi
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-2-1 08:03:37 | 显示全部楼层
增强的拷贝+1(第三版)
175 个回复 - 6187 次查看
支持曲线阵列的第二版发布,见:http://bbs.xdcad.net/thread-716036-1-1.html 第三版加入了多选+1功能,+1依据多选的文字里面数字最大的开始编号,拷贝数量为多选的文字个数。点右上角演示放大观看。 ...
2018-7-16 18:28 - newer - 每日插件

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-1 12:34:11 | 显示全部楼层
Lisphk 发表于 2021-2-1 08:03
增强的拷贝+1(第三版)175 个回复 - 6187 次查看支持曲线阵列的第二版发布,见:http://bbs.xdcad.net/thr ...

不一样啊,这是拷贝递增前缀,我这个是对现有的多个单行文字逐个加前缀递增,我尝试着让其每次点击一个单行文字后编号+1,但是,总是报错,提示的大概意思是字符串无法进行+1的计算操作,所以特来请教各位大佬

点评

简单改一下就可以啊 (itoa int) 将整型数转换成字符串 (atoi string)将字符串转换成整型数  详情 回复 发表于 2021-2-1 16:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 7个

财富等级: 恭喜发财

发表于 2021-2-1 16:10:15 | 显示全部楼层
twolzhao 发表于 2021-2-1 12:34
不一样啊,这是拷贝递增前缀,我这个是对现有的多个单行文字逐个加前缀递增,我尝试着让其每次点击一个单 ...

简单改一下就可以啊
(itoa int) 将整型数转换成字符串
(atoi string)将字符串转换成整型数


  1. (defun c:tt4 (/ ent k loop2 obj return# ss str1)
  2. ;;;;图形界面设置
  3.   (vl-load-com)
  4.   (setq @dclfiledame (vl-filename-mktemp nil nil ".dcl"))
  5.   (setq @dclfiled (open @dclfiledame "w"))
  6.   (write-line "dzmjjsbdc:dialog {" @dclfiled)
  7.   (write-line "label = \"文本加前后缀\" ;" @dclfiled)
  8.   (write-line ":row {" @dclfiled)
  9.   (write-line ":edit_box {" @dclfiled)
  10.   (write-line "key = \"textaddstring1\" ;" @dclfiled)
  11.   (write-line "label = \"前缀\" ;" @dclfiled)
  12.   (write-line "width = 10  ;" @dclfiled)
  13.   (write-line "        }" @dclfiled)
  14.   (write-line ":edit_box {" @dclfiled)
  15.   (write-line "key = \"textaddstring2\" ;" @dclfiled)
  16.   (write-line "label = \"后缀\" ;" @dclfiled)
  17.   (write-line "width = 10  ;" @dclfiled)
  18.   (write-line "        }" @dclfiled)
  19. ;;;;;;;;;;;;;;;;;
  20.   (write-line ":edit_box {" @dclfiled)
  21.   (write-line "key = \"textaddstring3\" ;" @dclfiled)
  22.   (write-line "label = \"起始序号\" ;" @dclfiled)
  23.   (write-line "width = 10  ;" @dclfiled)
  24.   (write-line "        }" @dclfiled)
  25. ;;;;;;;;;;;;;;;;;  
  26.   (write-line "    }" @dclfiled)
  27.   (write-line "        ok_cancel;" @dclfiled)
  28.   (write-line "}" @dclfiled)
  29.   (close @dclfiled)
  30.   ;;以下根据情况处理
  31.   (setq @dclid (load_dialog @dclfiledame))
  32.   (new_dialog "dzmjjsbdc" @dclid)
  33.   ;;设置控件默认值
  34.   (if (and (/= textaddstring1_1 "") (/= textaddstring1_1 nil))
  35.     (set_tile "textaddstring1" textaddstring1_1)
  36.   )
  37.   (if (and (/= textaddstring2_1 "") (/= textaddstring2_1 nil))
  38.     (set_tile "textaddstring2" textaddstring2_1)
  39.   )
  40.   (if (and (/= textaddstring3_1 "") (/= textaddstring3_1 nil))
  41.     (set_tile "textaddstring3" textaddstring3_1)
  42.   )  
  43.   (action_tile "accept" "(get_dzmjjsbdc_main)(done_dialog 1)")
  44. ;;;确定
  45.   (setq return# (start_dialog))
  46.   (cond
  47.     ((= return# 1)
  48.      (setq loop2 t)
  49.      (setq strint 0)
  50.      (while loop2
  51.        (princ "\n 选择文本<退出>")
  52.        (setq ss (vl-catch-all-apply 'ssget (list ":S" '((0 . "TEXT")))))
  53.        (if (vl-catch-all-error-p ss)
  54.          (progn
  55.            (princ (strcat "**VL-CATCH-ALL-ERROR-P提示有错:** "
  56.                           (vl-catch-all-error-message ss)
  57.                   )
  58.            )
  59.            (setq loop2 nil)
  60.            (princ)
  61.          )
  62.          (progn
  63.            (if ss
  64.              (repeat (setq k (sslength ss))
  65.                (setq ent (ssname ss (setq k (1- k))))
  66.                (setq obj (vlax-ename->vla-object ent))
  67.                (setq str1 (vla-get-textstring obj))
  68.                (if (= strint 0)
  69.                  (progn
  70.                    (setq textaddstring3_1 (itoa (+ strint (atoi textaddstring3_1))))
  71.                    (setq strint (atoi textaddstring3_1))
  72.                    )
  73.                  (progn
  74.                    (setq textaddstring3_1 (itoa strint))
  75.                    )
  76.                  )
  77.                (vla-put-textstring
  78.                  obj
  79.                  (strcat textaddstring1_1 textaddstring3_1 str1 textaddstring2_1)
  80.                )                         
  81.              )
  82.            )
  83.            (setq strint (+ strint 1))
  84.          )
  85.        )
  86.      )
  87.     )
  88.   )
  89.   (unload_dialog @dclid)
  90.   (vl-file-delete @dclfiledame)
  91.   (princ)
  92. )
  93. ;;;;;获得对话框值
  94. (defun get_dzmjjsbdc_main ()
  95.   (setq textaddstring1_1 (get_tile "textaddstring1"))
  96.   (setq textaddstring2_1 (get_tile "textaddstring2"))
  97.   (setq textaddstring3_1 (get_tile "textaddstring3"))
  98. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-1 18:02:54 | 显示全部楼层
pxr201419 发表于 2021-2-1 16:32
(defun c:tt4  (/ *error* @dclfiled @dclfiledame @dclid ent errorsave k loop mod1 mod2 mod3 mod4
    ...

大佬厉害 膜拜大佬,不但满足了我原先的需求还丰富了功能,太感谢了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-1 18:05:41 | 显示全部楼层
qq2222081387 发表于 2021-2-1 16:10
简单改一下就可以啊
(itoa int) 将整型数转换成字符串
(atoi string)将字符串转换成整型数

感谢大佬指点
楼下大佬直接给出了完整的方案
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2021-3-3 10:15:20 | 显示全部楼层
学习学习,谢谢楼主
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2021-5-31 12:44:17 | 显示全部楼层

学习学习,感谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 756个

财富等级: 财运亨通

发表于 2021-5-31 17:30:55 | 显示全部楼层
学习学习,感谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2023-3-23 01:25:08 | 显示全部楼层
这个可以,收下大神修改好的,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2023-4-7 00:12:21 | 显示全部楼层
本帖最后由 pxr201419 于 2021-2-1 16:57 编辑


(defun c:tt4  (/ *error* @dclfiled @dclfiledame @dclid ent errorsave k loop mod1 mod2 mod3 mod4

求大神帮忙修改成:字符串+序号+字符串+文字 然后增加记忆功能,以免退出后要重新输入
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-25 15:37 , Processed in 0.483294 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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