明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: zhb236623

[提问] 求助 关于文字批量替换,数字递增问题

[复制链接]
 楼主| 发表于 2013-7-31 18:36 | 显示全部楼层
本帖最后由 zhb236623 于 2013-7-31 18:38 编辑
【KAIXIN】 发表于 2013-7-31 18:31
也不难的,这样的话,你就要提取文本,获取最后一个数字进行加一即可


要修改的文字不单都是001,只是求快复制的,可能为任意数,其实要实现的功能是把这些数字按坐标排序的顺序从小到大变成001,002 ,003.…………。

坐标排序用我发的那个函数可以,能掌握。但是排序后如何把这个坐标对匹配到原来要更更改的文字 目前不懂……所以无法更改文字。
发表于 2013-7-31 18:38 | 显示全部楼层
是复制吗?貌似只是递增啊
 楼主| 发表于 2013-7-31 18:40 | 显示全部楼层
本帖最后由 zhb236623 于 2013-7-31 18:52 编辑
【KAIXIN】 发表于 2013-7-31 18:31
也不难的,这样的话,你就要提取文本,获取最后一个数字进行加一即可

  1. (if (not (setq n1 (getint "\n请输入尾数起始顺序号 <0>: ")))
  2.     (setq n1 0)
  3.   )
  4. ;;地号最后三位数不够补0,例3=003,34=034,189=189
  5. (command ".style" "仿宋体" "仿宋_GB2312" wzstyle 1 0 "" "")

  6.   (setq slist nil)
  7.   (setq i 0)
  8. (setq ss (ssget '((0 . "text"))))
  9.     (repeat (sslength ss)
  10.     (setq en (ssname ss i))                                    ;(setq en (entget ssn))
  11.     (vla-getboundingbox        (vlax-ename->vla-object en)
  12.                         'minpoint
  13.                         'maxpoint
  14.     )
  15.     (setq pmax (vlax-safearray->list maxpoint)
  16.           pmin (vlax-safearray->list minpoint)
  17.     )
  18.     (setq xmin (car pmin))
  19.     (setq xmax (car pmax))
  20.     (setq ymin (cadr pmin))
  21.     (setq ymax (cadr pmax))
  22.     (setq xmid (/ (+ xmin xmax) 2))
  23.     ;;(setq ymid ( / ( + ymin ymax) 2))
  24.     (setq xmid_ymax (list xmid ymax))
  25.     (setq slist (cons xmid_ymax slist))
  26.     (setq i (1+ i))
  27.   )  
  28. ;;;关键就是这里了,排序,1e-6为容差,意思是1乘以10的负6次方。你可以自己改  
  29. ;;(setq tmp_slist (dh_zhy_sort_pt slist 1e-6))
  30.   (setq tmp_slist (dh_zhy_sort_pt slist 3))
  31.   (foreach insertp_mid tmp_slist
  32.     ;;(setq insertp_move (pmove insertp_mid 0 wz_insertp_move_down))   ;;;最后一位为向下移动距离
  33.                
  34. (cond
  35.     (  (< n1 10)
  36.      (setq wz_n  (strcat "00" (itoa n1)))
  37.                 )
  38.     ( (< 9 n1 100)
  39.            
  40.                                 (setq wz_n  (strcat "0" (itoa n1)))
  41.     )
  42.     ( (> n1 99)
  43.            
  44.                                 (setq wz_n (itoa n1))         
  45.     )
  46. )
  47.                
  48.             (setq Parameter_a5  "aa")   
  49.           (setq wz (strcat Parameter_a5 wz_n))          ;;;  
  50. ;;;就是要如何才能更改这个坐标点对应的文字呢?

  51. ;;直接生成文字可能还更容易……
  52. ;;(setq P_center_fz_nn_d1 (list 3 5))
  53. (entmake (list '(0 . "TEXT") (cons 1 "me") (cons 7  "仿宋体") (cons 10 insertp_mid ) (cons 40 0.5)(cons 41 0.8)(cons 71 1)(cons 72 1)(cons 73 1)(cons 8 "jj")))

  54.     (setq n1 (+ n1 1))
  55.   )
 楼主| 发表于 2013-7-31 18:45 | 显示全部楼层
【KAIXIN】 发表于 2013-7-31 18:38
是复制吗?貌似只是递增啊

相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。

点评

这样跟替换没什么区别,不能算是复制  发表于 2013-7-31 18:46
 楼主| 发表于 2013-7-31 18:47 | 显示全部楼层
zhb236623 发表于 2013-7-31 18:45
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。

文字批量替换,数字递增问题
 楼主| 发表于 2013-7-31 18:48 | 显示全部楼层
zhb236623 发表于 2013-7-31 18:45
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。

我说的复制是CAD里面的数字都为001是为了快速弄出来那些文字直接复制的。不是说这个问题是复制的问题
 楼主| 发表于 2013-7-31 18:53 | 显示全部楼层
zhb236623 发表于 2013-7-31 18:45
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。

;;;就是要如何才能更改这个坐标点对应的文字呢?color]
;;直接生成文字可能还更容易……
发表于 2015-1-28 16:55 | 显示全部楼层
做这个还是挺有难度的,学习一下
发表于 2015-3-23 14:23 | 显示全部楼层
期待完成稿
发表于 2017-8-22 12:51 | 显示全部楼层
这个搞好了吗,能发个源程序给我不,我的邮箱是yxl33168@163.com 谢谢你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 04:45 , Processed in 0.144417 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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