明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 543|回复: 4

[提问] 递增复制如何避免A01 变A2?

[复制链接]
发表于 2020-4-15 16:56 | 显示全部楼层 |阅读模式
下面是论坛上的递增复制 原作者忘了是谁了  如何修改让递增复制时避免A01变A2?
  1. ;;递增复制
  2. (defun C:tt (/ en pt1 ptnext eny ss ssx eno)
  3.   (princ "\n选择要复制的文字")
  4.   (setq ss (ssget '((0 . "*TEXT"))))
  5.   (setq pt1 (getpoint "\n指定复制角点"))
  6.   (setq ptnext (getpoint pt1 "\n指定插入点"))
  7.   (while ptnext
  8.     (setq eno (entlast) ssx (ssadd))
  9.     (command ".copy" ss "" "m" pt1 ptnext "")
  10.     (while (setq en (entnext eno)) (setq ssx (ssadd en ssx) eno en))
  11.     (setq n 0)
  12.     (repeat (sslength ssx)
  13.       (setq en (ssname ssx n))
  14.       (setq eny (ttg (vla-get-textstring (Vlax-Ename->Vla-Object en))))
  15.       (Vlax-Put-Property (Vlax-Ename->Vla-Object en) 'TextString eny)
  16.       (setq n (1+ n))
  17.     );end repeat
  18.     (setq ss ssx)
  19.     (setq pt1 ptnext)
  20.     (setq ptnext (getpoint pt1  "\n指定插入点"))
  21.   )
  22.   (princ "\n**********完成操作************")
  23.   (prin1)
  24. );end
  25. (prin1)
  26. (defun ttg (txd / tth tthh )
  27.   (setq tth (ttm txd) tthh (rtos (1+ tth) 2 0))
  28.   (setq regex (vlax-create-object "Vbscript.RegExp")) ;引用正则表达式控件
  29.   (vlax-put-property regex "IgnoreCase" 0) ;不忽略大小写
  30.   (vlax-put-property regex "Global" 1) ;匹配方式,全文字匹配
  31.   (vlax-put-property regex "Multiline" 1) ;多行模式
  32.   txd
  33.   (vlax-put-property regex "Pattern" "[0-9]+(?=[^0-9]*$)")
  34.   (setq enX (vlax-invoke-method  regex "Replace" txd tthh))
  35.   (vlax-release-object regex)
  36.   enx
  37. )
  38. (prin1)
  39. ;取得文字
  40. (defun ttq (x / )
  41.   (setq xs (vla-get-TextString (vlax-ename->vla-object x)))
  42. )
  43. (prin1)
  44. ;提取出字符串中的数字,是直接从字串里面得到数值
  45. (defun ttm (en / regex S tmp str1)
  46.   (setq regex (vlax-create-object "Vbscript.RegExp")) ;引用正则表达式控件
  47.   (vlax-put-property regex "IgnoreCase" 0) ;不忽略大小写
  48.   (vlax-put-property regex "Global" 1) ;匹配方式,全文字匹配
  49.   (vlax-put-property regex "Multiline" 1) ;多行模式
  50.   (vlax-put-property regex "Pattern" "[0-9]+(?=[^0-9]*$)")
  51.   (setq s (vlax-invoke-method regex "Execute" en))
  52.   ;;将规则运用到STR字符,得到提取出的文字内容
  53.   (setq ent (VLAX-FOR tmp s (vlax-get-property tmp "value")))
  54.   (vlax-release-object regex)
  55.   (setq ent (atoi ent))
  56.   ent
  57. )
  58. (prin1)

发表于 2020-4-15 20:18 | 显示全部楼层
发表于 2020-4-16 07:27 | 显示全部楼层
 楼主| 发表于 2020-4-16 08:39 | 显示全部楼层
Andyhon 发表于 2020-4-15 20:18
http://gyh060707.blog.sohu.com/153977613.html

谢谢                                    
 楼主| 发表于 2020-4-16 08:39 | 显示全部楼层
xj6019 发表于 2020-4-16 07:27
http://bbs.mjtd.com/thread-181181-1-1.html

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

本版积分规则

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

GMT+8, 2024-6-14 04:56 , Processed in 0.148795 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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