替换文字并删除原文本
defun c:tt7 (/ e e1 en1 en2 n);被替换的文字
(setq en1 (car(entsel "\n 选择要被替换的文字:"))) ;取图元 ,下面的扩展
(setq e (entget en1)) ;取属性
(setq n (cdr(assoc 1 e))) ;取文字内容
;源文字
(setq en2 (car(entsel "\n 选择源文字:"))) ;取图元 ,下面的扩展
(setq e1 (entget en2)) ;取属性
(setq n (cdr(assoc 1 e1))) ;取文字内容
;替换
(setq e (subst(cons 1 n)(assoc 1 e) e))
;重绘
(entmod e)
(command "_.erase" en2 "")
(princ)
)
感谢分享,点赞。。。 (defun c:tt7 (/ e e1 e2 en1 en2 n )
;被替换的文字
(if (and(setqe1 (entsel "\n 选择要被替换的文字:"))
(setqe2 (entsel "\n 选择源文字:")))
(progn
(setq en1 (car e1)) ;取图元 ,下面的扩展
(setq e (entget en1)) ;取属性
(setq n (cdr(assoc 1 e))) ;取文字内容
;源文字
(setq en2 (car e2)) ;取图元 ,下面的扩展
(setq e1 (entget en2)) ;取属性
(setq n (cdr(assoc 1 e1))) ;取文字内容
;替换
(setq e (subst(cons 1 n)(assoc 1 e) e))
;重绘
(entmod e)
(entdel en2)
)
(princ "么有选的哇!")
)
(princ)
)给你改了下,加了判断更可靠。 最后删除的可以用entdel 尽量不要command 挺实用,感谢分享 请问一下,这个一般是用在什么样的情况呢? 谢谢楼主分享 jun353835273 发表于 2023-1-14 09:02
给你改了下,加了判断更可靠。 最后删除的可以用entdel 尽量不要command
多谢指教! 这个代码什么情况下会用,内容格式刷? 有时候需要删除Source对象,有时候需要删除Target对象,有时候需要Swap两个对象的Content...
可以继续改进这个代码,实现这些不同模式的过程中切换。
一个实用的功能,可以持续在工作的实践中不断改进和扩展。上次发现有几个程序,最初是1998年写的,到现在改了十多个版本了。
非常不错的代码,谢谢楼主分享啊。
页:
[1]