fixo 发表于 2022-7-6 09:02:19

 
艾伦,再次感谢
 
当做
 
奥列格

CAB 发表于 2022-7-6 09:07:03

你最初的帖子让我们相信你想要处理许多图纸。
 
要替换当前图形中的纯文本,您只需执行以下操作:
注意,它不处理多行文字或属性。为此你需要这个
 
(defun C:RT (/ adoc Old$ New$)
(vl-load-com)
(setq Old$ "D.F."
       New$ "DF")
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lt (vla-get-layouts adoc)
   (vlax-for obj (vla-get-block lt)
   (if (eq "AcDbText" (vla-get-objectname obj))
       (while (vl-string-search Old$ (vla-get-textstring obj))
         (vla-put-textstring obj
         (vl-string-subst New$ Old$ (vla-get-textstring obj)))
       )
   )
   )
)
(princ)
)

y49sides 发表于 2022-7-6 09:07:39

驾驶室,
谢谢最后一个很好用。我感谢所有人的帮助。

Galantic 发表于 2022-7-6 09:13:18

你好
 
谢谢你的代码,它非常有用。
 
我也有同样的问题,但我需要替换不止一个单词。
你能帮助我吗?
 
例子:
D、 F.-->测向

MOI-->JOI
 
 
 
-Galantic公司

CAB 发表于 2022-7-6 09:16:13

试试这个,列表由对组成,根据需要添加
(defun C:RT (/ adoc List$)
(vl-load-com)
(setq $List '(("D.F." "DF") ("MOI" "JOI"))); (Old$ New$)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lt (vla-get-layouts adoc)
   (vlax-for obj (vla-get-block lt)
   (if (eq "AcDbText" (vla-get-objectname obj))
      (mapcar '(lambda(x)
       (while (vl-string-search (car x) (vla-get-textstring obj))
         (vla-put-textstring obj
         (vl-string-subst (cadr x) (car x) (vla-get-textstring obj)))
       )
       ) $List)
   )
   )
)
(princ)
)

dznytoy 发表于 2022-7-6 09:18:55

我需要一些类似的东西,但我希望它能像你展示的原始代码一样同时处理多个图形,但我需要处理多行文字。我试过了你给的链接,但它似乎不想为我运行。
 
我真正想做的就是扫描文件夹中的所有图纸并删除“明矾”来自多行文字中的所有引用。
 
Dznytoy公司

BlackBox 发表于 2022-7-6 09:23:14

李的批量查找和替换文本例程是我的最爱之一。

Least 发表于 2022-7-6 09:24:54

很漂亮的出租车。是否可以修改它,使其仅替换整个单词?
例如:
 
电缆槽CPS=图形中的文本字符串
 
(“E”“Eaves”)=查找替换设置
 
结果=CABLEavesTROUGH CPS
 
然而我希望这一点被忽略。
 
干杯
P

BlackBox 发表于 2022-7-6 09:28:04

 
*咳嗽*试试这个*咳嗽*
页: 1 [2]
查看完整版本: 查找并替换不带