明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1598|回复: 8

[资源] 与大家分享一个替换图中文字或字符的程序!(分享)

[复制链接]
发表于 2011-6-29 10:04 | 显示全部楼层 |阅读模式
本帖最后由 simon8001 于 2011-6-29 10:05 编辑

首先声明这段程序不是我写的,是我在其他论坛里看到的,首先感谢他!
这个不能对插入的块进行替换!!
你们一看程序就懂的!!


  1. (defun c:th()
  2. (setq oce (getvar "cmdecho"))
  3. (setvar "cmdecho" 0)
  4. (setq txtss (ssget "X" '((0 . "TEXT,MTEXT"))))
  5.   (setq  slen (- (sslength txtss) 1))
  6.   (setq  i 0)
  7.       (while  (<= i slen)
  8.           (setq txtn (ssname txtss i))
  9.           (setq txtdate (entget txtn))
  10.           (setq qz (cdr (assoc '1 txtdate)))
  11.           (SETQ QZ (REPL QZ "旧字符1" "新字符1"))
  12.           (SETQ QZ (REPL QZ "旧字符2" "新字符2"))
  13.           (SETQ QZ (REPL QZ "旧字符3" "新字符3"))
  14.           (SETQ QZ (REPL QZ "旧字符4" "新字符4"))
  15.                                     ;
  16.                                     ;
  17.                                     ;
  18.                                     ;
  19.                                     ;
  20.           (SETQ QZ (REPL QZ "旧字符n" "新字符n"))
  21.           (setq txtdate (subst (cons 1 qz) (assoc '1 txtdate) txtdate))
  22.           (setq txtdate (subst (cons 41 0.7) (assoc '41 txtdate)

  23. txtdate))
  24.           (entmod txtdate)   
  25.           (setq i (+ i 1))
  26.       )
  27. (COMMAND "QSAVE")               
  28. (setvar "cmdecho" oce)      
  29. (princ)
  30. )
  31. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  32. (defun repl (text_string       find_string     replace_string
  33.          /               pointer         text_string_length
  34.         )
  35.   (setq pointer 1)
  36.   (if
  37.     (<=
  38.       (strlen find_string)
  39.       (strlen text_string)
  40.     )
  41.      (progn
  42.        (setq text_string_length (strlen text_string))
  43.        (while
  44.      (<
  45.        pointer
  46.        (+ (- text_string_length (strlen find_string)) 2)
  47.      )
  48.       (if
  49.         (=
  50.           (strcase
  51.         (substr
  52.           text_string
  53.           pointer
  54.           (strlen find_string)
  55.         )
  56.           )
  57.           (strcase find_string)
  58.         )
  59.          (progn
  60.            (setq text_string
  61.                  (if (= pointer 1)
  62.                    (strcat
  63.                      replace_string
  64.                      (substr
  65.                        text_string
  66.                        (+ pointer (strlen find_string))
  67.                      )
  68.                    )
  69.                    (strcat
  70.                      (substr
  71.                        text_string
  72.                        1
  73.                        (- pointer 1)
  74.                      )
  75.                      replace_string
  76.                      (substr
  77.                        text_string
  78.                        (+ pointer (strlen find_string))
  79.                      )
  80.                    )
  81.                  )
  82.           )
  83.              (setq
  84.                pointer
  85.             (+ pointer (strlen replace_string))
  86.              )
  87.                  (setq
  88.                    text_string_length
  89.                     (strlen text_string)
  90.                  )
  91.            )
  92.            (setq pointer (1+ pointer))
  93.          )
  94.       )
  95.        )
  96.      )
  97. (SETQ text_string text_string)
  98.   )


     
发表于 2011-6-29 15:51 | 显示全部楼层
留着,,以后学习!哈哈,
 楼主| 发表于 2011-6-29 16:02 | 显示全部楼层
回复 oxygen_xy 的帖子

你一口气看回复了我3个帖子!!
发表于 2011-6-30 20:23 | 显示全部楼层
追随楼主的脚步
发表于 2011-7-1 17:01 | 显示全部楼层
这个程序可以开发为:中英文自动翻译程序。
国标-DIN标 自动转换程序。
发表于 2011-11-4 21:28 | 显示全部楼层
vb 好东西呀谢谢分享呀
发表于 2011-11-4 21:32 | 显示全部楼层
中英文自动翻译后文本位置会发生变化,怎样处理文字重叠才是最头疼的!
发表于 2012-5-23 21:36 | 显示全部楼层
谢谢楼主,代码很有参考意义
发表于 2013-3-6 10:40 | 显示全部楼层
程序真是好呀,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-13 22:04 , Processed in 0.152568 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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