明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 555|回复: 2

[讨论] 如何替换,已经预设的内容?

[复制链接]
发表于 2019-7-31 20:46:51 | 显示全部楼层 |阅读模式
例如:我要查找A,然后替换成B。查找C,替换成D。这样的程序论坛里应该很多。那如何,查找A,查找B,然后对对应的替换成C,D呢?



 楼主| 发表于 2019-8-6 21:39:40 | 显示全部楼层
  1. (defun c:tt (/ ff data num txtcontent txtcontent2 txtlst ss i ssn endata)
  2. ;**********读取txt文件
  3. ;;;(setq data_file (getfiled "请选择字符替换的文本" "d:\\test1" "txt" 2))
  4. (SETQ data0 '(
  5. "Q235-A,Q235-B"             
  6. "T1,TA"
  7. "T2,TB"
  8. "T3,TC"
  9. "T4,TD"
  10. "T5,TE"
  11. "T6,TF"
  12. )
  13.       ii 0
  14.       )
  15. ;;;(setq ff (open data_file "r"));打开文件
  16. ;;;(setq data (read-line ff)) ;读取一行
  17.   (SETQ DATA (NTH ii data0))
  18. (while data
  19.   (setq ii (1+ ii))
  20. (setq num (vl-string-position (ascii ",") data))
  21. ;***********拾取替换文本
  22. (setq txtcontent (substr data 1 num))
  23. (setq txtcontent2 (substr data (+ num 2)))
  24. (setq txtlst (list '(0 . "TEXT,MTEXT") (cons 1 txtcontent)))
  25. (setq ss (ssget "X" txtlst)) ;;全匹配
  26. ;;;(setq ss (ssget txtlst))
  27.   (if ss (progn
  28. (setq i 0)
  29.   (repeat (sslength ss)
  30.     (setq ssn (ssname ss i))
  31.     (setq endata (entget ssn))
  32.     (setq endata (subst (cons 1 txtcontent2) (assoc 1 endata) endata))
  33.     (entmod endata) ;;界面刷新
  34.     (setq i (1+ i))
  35.   )
  36. )
  37. ;***********完成替换
  38. (SETQ DATA (NTH ii data0))
  39. )
  40.   )
  41. )
 楼主| 发表于 2019-8-6 21:42:03 | 显示全部楼层
以上程序,参考与:http://bbs.mjtd.com/thread-96756-1-1.html
在单位老师傅的指点下,做了一定的修改。
现在遇到二个问题:
(1)属性块中的文字,无法修改。
(2)程序执行后,多行文字(mtext)不能立马改成功,需要再实行一次。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-18 15:28 , Processed in 0.158792 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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