明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3507|回复: 7

求教:怎样实现按一定对应法则对多种文字进行替换?

[复制链接]
发表于 2006-11-30 18:27:00 | 显示全部楼层 |阅读模式

cad中有find命令可进行字符替换,但每次都只能将A替换成B,有没有办法将A-B,C-D,。。。。。。形成一个对应法则,只执行一个命令就可以将图中的A,C自动替换成B,D呢?求高手指教。

发表于 2006-11-30 18:50:00 | 显示全部楼层

上面是不是你只是举例呀?

如果你要是简单的这么改的话,我建议你用两次find命令

要不编了程序也没有什么太大的作用呀,不会提高很多的工作量。

 楼主| 发表于 2006-12-1 08:17:00 | 显示全部楼层

修改个数少没什么价值,但要是很多的话就很有用了

比如说对各种型号的钢筋,更正各自的钢筋级别符号

或者,有人能提供find命令的源代码吗?

再或者,有没有办法将find 命令不以对话框的形式出现?

又或者,在lisp中使用command执行find,有没有在lisp中对command出现的对话框进行操作?

发表于 2006-12-1 09:08:00 | 显示全部楼层

find命令是不支持命令行形式的

有时间你可以找找本论坛的帖子

我记得好像有这样的帖子

我有时间的话,也帮你找找

 楼主| 发表于 2006-12-1 12:49:00 | 显示全部楼层
那先谢谢ls了
 楼主| 发表于 2006-12-5 18:37:00 | 显示全部楼层
搞定了,感谢BDYCAD的程序
发表于 2006-12-8 18:11:00 | 显示全部楼层

既然已经搞定了,何不传上来大家共享?

 楼主| 发表于 2006-12-9 13:03:00 | 显示全部楼层
  1. ;;;date: 2004-09-01
  2. ;;;by BDYCAD
  3. ;;;查找与替换
  4. ;;; (reptext <要找的文字> <替换成的文字>)
  5. ;;;应用举例:
  6. ;;;(SETQ char-A "DRAWING1" char-B "BDYCADCAD")
  7. ;;;(reptext char-A char-B)
  8. ;;;_______________________________________________________
  9. (defun reptext
  10.         (char-A   char-B    /      
  11.   index   ent     typeA     typeA-len char-Alen
  12.   char-Blen n     char-aa   newsize
  13.         )
  14.   (if ss
  15.     (progn
  16.       (setq index 0)
  17.       (repeat (sslength ss)
  18. (setq ent (entget (ssname ss index)))
  19. (setq index (+ 1 index))
  20. (setq typeA (cdr (assoc 1 ent))) ;选择的文字内容
  21. (setq typeA-len (strlen typeA)) ;选择的文字内容的长度
  22. (setq char-Alen (strlen char-A)) ;取得要找的文字的长度
  23. (setq char-Blen (strlen char-B)) ;取得替换文字的长度
  24. (setq n 1)
  25. (if (= char-A "")
  26.    (setq typeA-len 1)
  27. )
  28. (repeat typeA-len
  29.    (setq char-aa (substr typeA n char-Alen))
  30.      ;查找选择的文字内容里是否有要被替换的文字
  31.    (if (= char-aa char-A)
  32.      (progn   ;如果有
  33.        (setq typeA (vl-string-subst char-B char-A typeA))
  34.        (setq newsize (cons 1 typeA))
  35.        (setq ent (subst newsize (assoc 1 ent) ent))
  36.        (entmod ent)
  37.        (setq pc (1+ pc))
  38.      )
  39.      ;;End progn
  40.    )
  41.    ;;End if
  42.    (setq n (1+ n))
  43. )
  44. ;;End repeat
  45.       )
  46.       ;;End repeat
  47.     )
  48.     ;;End progn
  49.   )
  50.   ;;End if
  51. )
  52. ;;;_______________________________________________________
  53. (defun c:rein (/ cm char-A char-B ss)
  54.   (setq cm (getvar "cmdecho"))
  55.   (setvar "cmdecho" 0)
  56.   (setq pc 0)
  57.   (setq ss (ssget '((0 . "TEXT,MTEXT")))) ;选择文字
  58.   (reptext "[6" "]6")
  59.   (reptext "{6" "]6")
  60.   (reptext "}6" "]6")
  61.   (reptext "]8" "[8")
  62.   (reptext "{8" "[8")
  63.   (reptext "}8" "[8")
  64.   (reptext "[10" "]10")
  65.   (reptext "{10" "]10")
  66.   (reptext "}10" "]10")
  67.   (reptext "[12" "]12")
  68.   (reptext "{12" "]12")
  69.   (reptext "}12" "]12")
  70.   (reptext "[14" "]14")
  71.   (reptext "{14" "]14")
  72.   (reptext "}14" "]14")
  73.   (reptext "[16" "}16")
  74.   (reptext "]16" "}16")
  75.   (reptext "{16" "}16")
  76.   (reptext "[18" "}18")
  77.   (reptext "]18" "}18")
  78.   (reptext "{18" "}18")
  79.   (reptext "[20" "}20")
  80.   (reptext "]20" "}20")
  81.   (reptext "{20" "}20")
  82.   (reptext "[22" "}22")
  83.   (reptext "]22" "}22")
  84.   (reptext "{22" "}22")
  85.   (reptext "[25" "}25")
  86.   (reptext "]25" "}25")
  87.   (reptext "{25" "}25")
  88.   (reptext "%%1306" "%%1316")
  89.   (reptext "{6" "%%1316")
  90.   (reptext "\%%1326" "%%1316")
  91.   (reptext "%%1318" "%%1308")
  92.   (reptext "{8" "%%1308")
  93.   (reptext "\%%1328" "%%1308")
  94.   (reptext "%%13010" "%%13110")
  95.   (reptext "{10" "%%13110")
  96.   (reptext "\%%13210" "%%13110")
  97.   (reptext "%%13012" "%%13112")
  98.   (reptext "{12" "%%13112")
  99.   (reptext "\%%13212" "%%13112")
  100.   (reptext "%%13014" "%%13114")
  101.   (reptext "{14" "%%13114")
  102.   (reptext "\%%13214" "%%13114")
  103.   (reptext "%%13016" "\%%13216")
  104.   (reptext "%%13116" "\%%13216")
  105.   (reptext "{16" "\%%13216")
  106.   (reptext "%%13018" "\%%13218")
  107.   (reptext "%%13118" "\%%13218")
  108.   (reptext "{18" "\%%13218")
  109.   (reptext "%%13020" "\%%13220")
  110.   (reptext "%%13120" "\%%13220")
  111.   (reptext "{20" "\%%13220")
  112.   (reptext "%%13022" "\%%13222")
  113.   (reptext "%%13122" "\%%13222")
  114.   (reptext "{22" "\%%13222")
  115.   (reptext "%%13025" "\%%13225")
  116.   (reptext "%%13125" "\%%13225")
  117.   (reptext "{25" "\%%13225")
  118.   (princ (strcat "\n替换了" (rtos pc) "个."))
  119.   (princ)
  120. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-23 12:54 , Processed in 0.201309 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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