在dded中选择指定文本
我已经写了几个地方,我的画以下文本MDB/L7/Z1/M1/2L3
MDB/L7/Z1/M1/2L2
EMDB/L7/Z1/M1/2L3
EMDB/L7/Z1/M1/2L2
发射型计算机断层扫描仪。
我需要在下一张图纸中将这个L7改为L4。
在DDEDIT对话框中是否有工具或lisp代码可以立即选择此L7。
然后我可以输入L4代替L7。
我的vt.lsp和ct。lsp可以做到这一点,李·麦克也有大量的实用程序来完成这项工作。只需搜索此论坛。
gr.Rlx 这应该会更改选定文本中的第一个L7。
(defun c:Test (/ ss sn p st e )
;; Tharwat 29.9.2015 ;;
(if (setq ss (ssget "_:L" '((0 . "TEXT")(1 . "*L7*"))))
(while (setq sn (ssname ss 0))
(if (setq p (vl-string-search "L7" (setq st (cdr (assoc 1 (setq e (entget sn)))))))
(entmod (subst (cons 1 (strcat (substr st 1 p) "L4" (substr st (+ 3 p)))) (assoc 1 e) e))
)
(ssdel sn ss)
)
)
(princ)
)
这是指在其他封闭图纸中还是在同一图纸中? 谢谢以上代码比我预期的更符合我的要求。
我指的是另一张公开画。 所以我推荐你这个李·麦克的Lisp程序。
http://lee-mac.com/bfind.html 不客气。
好东西Tharwat-虽然是一个小建议,但由于您限制了原始选择,可以保证模式会出现,因此简单的vl字符串subst就足够了,例如:
(defun c:test ( / e i s x )
(if (setq s (ssget "_:L" '((0 . "TEXT") (1 . "*L7*"))))
(repeat (setq i (sslength s))
(setq e (entget (ssname s (setq i (1- i))))
x (assoc 1 e)
)
(entmod (subst (cons 1 (vl-string-subst "L4" "L7" (cdr x))) x e))
)
)
(princ)
)
非常感谢大家的推荐! 李,是的,你是对的。
老实说,当我编写这些简单的代码时,我就意识到了这一点,只要不造成伤害,我就不会删除模式上的检查。
谢谢
页:
[1]
2