明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1480|回复: 5

[提问] 如何用这个TXT替换表在CAD中全字批量替换?

[复制链接]
发表于 2016-6-24 08:57 | 显示全部楼层 |阅读模式
如何利用已有的替换表(txt格式),在CAD中进行批量全字匹配替换呢?替换换表如下所示,用左列的数据替换成右列的数据,并且是全字匹配替换,不然会出错。请大神赐教一二
95,97
94,96
91,95
90,94
84,93
83,92
82,91
81,90
80,89
79,88
78,87
77,86
76,85
。。。。。。



发表于 2016-6-24 09:44 | 显示全部楼层
赐教什么呢?算法?就是遍历所有文字,然后遍历列表,满足需要就替换;代码?lisp不会,不过论坛中已有很多文本替换的例子,足够参考了。另外考虑清楚替换列表的逻辑性,是找到一个就结束还是继续找到结束,比如82替换为91,接着又被替换为95,再继续被替换为97?
 楼主| 发表于 2016-6-24 14:26 | 显示全部楼层
mikewolf2k 发表于 2016-6-24 09:44
赐教什么呢?算法?就是遍历所有文字,然后遍历列表,满足需要就替换;代码?lisp不会,不过论坛中已有很多 ...

我有个程序但是不能够实现全字匹配替换,会出错,不知道怎么改,大神指导一下吧

本帖子中包含更多资源

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

x
发表于 2016-6-24 15:07 | 显示全部楼层
LISP不会,只会VBA。等别的高人吧。
发表于 2016-6-25 06:38 | 显示全部楼层
  1. ;批量换字高 明经 ZZXXQQ 2016-6-25
  2. (defun c:tt ( / oldlst newlst)
  3. (setq fn (if (/= (type fn) 'STR) "" fn))
  4. (setq fn (getfiled "请选择替换字高的文件" fn "txt" 2))
  5. (setq fp (open fn "r"))
  6. (while (setq data (read-line fp))
  7.   (setq num (vl-string-position (ascii ",") data))
  8.   (setq oldlst (cons(atoi(substr data 1 num)) oldlst))
  9.   (setq newlst (cons(atoi(substr data (+ num 2))) newlst))
  10. )
  11. (close fp)
  12. (setq chlst (mapcar 'cons (reverse oldlst) (reverse newlst)))
  13. (if (setq ss (ssget '((0 . "TEXT"))))
  14.   (repeat (setq i (sslength ss))
  15.    (setq ent (entget(ssname ss (setq i (1- i)))))
  16.    (setq h (fix(cdr(assoc 40 ent))))
  17.    (if (setq oldh (assoc h chlst))
  18.     (entmod (subst (cons 40 (cdr oldh)) (assoc 40 ent) ent))
  19.    )
  20.   )
  21. )
  22. (princ)
  23. )
发表于 2016-6-27 09:10 | 显示全部楼层
楼主试试以前版本的天正试试,比如天正结构8.2,还是8.5,可以把你要替换的文字全部选中,然后双击弹出编辑框,把txt中的文字复制过去,就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 08:26 , Processed in 0.903485 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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