明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3872|回复: 19

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

[复制链接]
发表于 2013-7-30 18:18:33 | 显示全部楼层 |阅读模式
本帖最后由 zhb236623 于 2013-7-31 18:33 编辑

如图,或者下载CAD图里面有我想要达到的效果……想要把数字批量替换,然后数字递增,批量替换数字的时候按从左到右,从上到下的顺序替换……。应该用得着下面的程序,但是自己能力有限,写不出来。盼高手赐教。 ;;;;取得点集行数,将每行的y坐标列表,lst为点坐标表,rc为容差

  1. (defun y_lst (lst rc / it lst2)
  2.   (while (setq lst2 (cons (setq it (cadr (car lst))) lst2)
  3.                lst  (vl-remove-if '(lambda (x) (equal it (cadr x) rc)) lst)
  4.          )
  5.   )
  6.   (vl-sort lst2 (function (lambda (e1 e2) (> e1 e2))))
  7. )
  8. ;;;将点集按从上到下,从左到右的顺序排序。pt_lst为点坐标表,rc为容差
  9. (defun dh_zhy_sort_pt (pt_lst rc /        pt_y lst1 pt_lst_new n1        n2 m1 m2 pt_y_a        pt_lst_a lst2)
  10.   (setq pt_y (y_lst pt_lst rc))
  11.   (setq pt_lst_new '())
  12.   (setq lst1 '())
  13.   (setq m1 0)
  14.   (setq n1 (length pt_y))
  15.   (setq n2 (length pt_lst))
  16.   (while (/= m1 n1)
  17.     (setq pt_y_a (nth m1 pt_y))
  18.     (setq m2 0)
  19.     (while (/= m2 n2)
  20.       (setq pt_lst_a (nth m2 pt_lst))
  21.       (if (equal pt_y_a (cadr pt_lst_a) rc)
  22.         (setq lst1 (cons pt_lst_a lst1))
  23.       )
  24.       (setq m2 (1+ m2))
  25.     )
  26.     (if        (/= (length lst1) 1)
  27.       (setq lst1 (vl-sort lst1
  28.                           (function (lambda (e1 e2) (< (car e1) (car e2))))
  29.                  )
  30.       )
  31.     )
  32.     (setq pt_lst_new (cons lst1 pt_lst_new))
  33.     (setq lst1 '())
  34.     (setq m1 (1+ m1))
  35.   )
  36.   (setq pt_lst_new (reverse pt_lst_new))
  37.   (setq n1 (length pt_lst_new))
  38.   (setq m1 0)
  39.   (setq lst2 '())
  40.   (while (/= m1 n1)
  41.     (setq lst1 (nth m1 pt_lst_new))
  42.     (setq n2 (length lst1))
  43.     (setq m2 0)
  44.     (while (/= m2 n2)
  45.       (setq lst (nth m2 lst1))
  46.       (setq lst2 (cons lst lst2))
  47.       (setq m2 (1+ m2))
  48.     )
  49.     (setq m1 (1+ m1))
  50.   )
  51.   (reverse lst2)
  52. )

本帖子中包含更多资源

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

x
发表于 2017-8-22 12:51:50 | 显示全部楼层
这个搞好了吗,能发个源程序给我不,我的邮箱是yxl33168@163.com 谢谢你
发表于 2013-7-30 18:23:07 | 显示全部楼层
虽然不会帮给顶一下!
发表于 2013-7-30 21:25:37 | 显示全部楼层
langjs的递增刷,看他的帖子
发表于 2013-7-31 07:43:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-7-31 10:57:01 | 显示全部楼层
帮不了忙,顶起来!
发表于 2013-7-31 12:05:03 | 显示全部楼层
我用的1 选择集根据点坐标排序http://bbs.mjtd.com/thread-96090-1-1.html
         2 未尾数字增加http://bbs.mjtd.com/thread-102143-1-1.html 7楼
仅供参考
发表于 2013-7-31 18:22:18 | 显示全部楼层
提供思路 :
就以上情况而言,可以用排序加1的方法直接写入文字
 楼主| 发表于 2013-7-31 18:22:44 | 显示全部楼层
自贡黄明儒 发表于 2013-7-31 12:05
我用的1 选择集根据点坐标排序http://bbs.mjtd.com/thread-96090-1-1.html
         2 未尾数字增加http:/ ...

谢谢,这几天有空把你的两个帖子消化下再看看能不能写得出来。
 楼主| 发表于 2013-7-31 18:29:18 | 显示全部楼层
【KAIXIN】 发表于 2013-7-31 18:22
提供思路 :
就以上情况而言,可以用排序加1的方法直接写入文字


直接写入文字实现起来是相对比较容易,然后把旧的直接删除,因为文字样式,对中方式,大小都是一样的,只要设定统一的不用针对每个文字更改。如果要根据旧的文字只更改内容感觉会比较难。
发表于 2013-7-31 18:31:13 | 显示全部楼层
zhb236623 发表于 2013-7-31 18:29
直接写入文字实现起来是相对比较容易,然后把旧的直接删除,因为文字样式,对中方式,大小都是一样的, ...

也不难的,这样的话,你就要提取文本,获取最后一个数字进行加一即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:11 , Processed in 0.218217 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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