修改程序:修改文字内容,带记忆多选
本帖最后由 yunfengning 于 2015-9-8 10:33 编辑(defun C:qm ()
(while (and
(setq ent (entsel "\n请选择源文字:"))
(setq ent (entget (car ent)))
(wcmatch (cdr(assoc 0 ent)) "*TEXT")
(setq newtxt (getstring "\n输入新的文字内容\n"))
(setq newtxt (strcat "(" newtxt ")")) ;;;给改文字的内容加上括号
)
(entmod (subst (cons 1 newtxt) (assoc 1 ent) ent))
)
(princ)
)
请大侠帮忙修改以上LSP,实现以下功能
1、先输入要修改成的内容,再选择要修改的文字。
2、能多选。
3、能记忆上次输入的修改内容。
4、文字修改后,首尾要加上括号。
上次提的要求表达不清,深表歉意。 1:没明白你说的什么意思,不觉明厉!
2、3:(defun c:qm()
(while (setq ss (ssget '((0 . "*TEXT"))))
(setq i 0)
(if (and newtxt_1 (/= newtext_1 ""))
(progn
(setq newtxt (getstring (strcat "\n输入新的文字内容" "<" newtxt_1 ">" ":")))
(if (= newtxt "")
(setq newtxt newtxt_1)
)
)
(setq newtxt (getstring "\n输入新的文字内容:"))
)
(repeat (sslength ss)
(setq ent (entget (ssname ss i)))
(entmod (subst (cons 1 newtxt) (assoc 1 ent) ent))
(setq i (1+ i))
)
(setq newtxt_1 newtxt)
)
) (defun c:qm ()
(setq str (USTR 1 "新文字内容" str NIL)
tx(strcat "(" str ")")
)
(while (setq ss (ssget '((0 . "*text"))))
(xyp-SubUpd ss 1 tx)
)
(princ)
) xyp1964 发表于 2015-9-8 08:29 static/image/common/back.gif
ustr是个什么鬼? (defun c:qm( / ent i newtext_1 newtxt newtxt_1 ss)
(while T
(if (and newtxt_1 (/= newtext_1 ""))
(progn
(setq newtxt (getstring (strcat "\n输入新的文字内容" "<" newtxt_1 ">" ":")))
(if (= newtxt "")
(setq newtxt newtxt_1)
)
)
(setq newtxt (getstring "\n输入新的文字内容:"))
)
(setq ss (ssget '((0 . "*TEXT"))))
(setq i 0)
(repeat (sslength ss)
(setq ent (entget (ssname ss i)))
(entmod (subst (cons 1 (strcat "(" newtxt ")")) (assoc 1 ent) ent))
(setq i (1+ i))
)
(setq newtxt_1 newtxt)
)
) 谢谢哥们儿。 重慶崽兒 发表于 2015-9-8 20:50
你好,大佬。你这个能帮忙改下吗?保留现有的文字,增加的在后面 A 变成A(2x) 不明觉厉~~支持一下
页:
[1]