求助,如何实现文本批量替换?
本帖最后由 纸淘城 于 2015-10-30 14:09 编辑求教各位朋友,本人想实现这样一个功能:已经排好位置的几个文字,现在想批量将其替换掉,但是这几个文字的位置不能动。大概的思路是这样:选择源文字后,程序根据其坐标分别按水平和竖向排好顺序,然后选择需要被替换的文字,接着出现一个选项,提示按竖向排列还是水平排列(记住上次选择),最后将文字批量替换。效果如图所示。请各位伸出援手
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt(/ I II LST1 LST2 SS1 EN0 ENT TEXT1 SSN1 SS2 EN1 ENT1 TEXT2 TEXT3 NTXT ENTS)
(setvar "CMDECHO" 0)
(setq i 0 ii 0 lst1 '() lst2 '())
(setq ss1 (ssget '((0 . "TEXT")))) ;第一次选择的表
(repeat (sslength ss1)
(setq en0 (ssname ss1 i))
(setq ent (entget en0))
(setq text1 (cdr(assoc 1 ent))) ;获得文字内容
(setq lst1 (cons text1 lst1))
(setq i (1+ i))
)
(setq ssn1 (reverse lst1))
(setq ss2 (ssget '((0 . "TEXT")))) ;第二次选择的表
(repeat (sslength ss2)
(setq en1 (ssname ss2 ii))
(setq ent1 (entget en1))
(setq text2 (assoc 1 ent1)) ;获得文字内容
(setq text3 (nth ii ssn1))
(setq ntxt (cons 1 text3))
(setq ents (subst ntxt text2 ent1))
(entmod ents)
(setq ii (1+ ii))
)
(princ)
) 风流少年时 发表于 2015-10-31 16:50
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...
好用,就是两边不等时会乱,要是能按顺序就好了 很不错啊,新的文字能够选择手动输入就更好了 帮你顶一下,我也想知道 有没有大神能解答啊 http://www.youyicad.com/Blog/20150809/146.html
xyp1964 发表于 2015-10-31 11:32 static/image/common/back.gif
命令: tt
; 错误: no function definition: XYP-START
多谢朋友的回复,但是在运行的时候怎么出现了这样的提示呢,还望解答 风流少年时 发表于 2015-10-31 16:50 static/image/common/back.gif
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...
恩,效果挺不错的,多谢了哈 风流少年时 发表于 2015-10-31 16:50 static/image/common/back.gif
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...
赞!顶!赞!顶!赞!顶!赞!顶! 感谢分享程序!
页:
[1]
2