纸淘城 发表于 2015-10-30 09:41:03

求助,如何实现文本批量替换?

本帖最后由 纸淘城 于 2015-10-30 14:09 编辑

求教各位朋友,本人想实现这样一个功能:已经排好位置的几个文字,现在想批量将其替换掉,但是这几个文字的位置不能动。大概的思路是这样:选择源文字后,程序根据其坐标分别按水平和竖向排好顺序,然后选择需要被替换的文字,接着出现一个选项,提示按竖向排列还是水平排列(记住上次选择),最后将文字批量替换。效果如图所示。请各位伸出援手

风流少年时 发表于 2015-10-31 16:50:29

菜鸟用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)
)

caifeng55 发表于 3 天前

风流少年时 发表于 2015-10-31 16:50
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...

好用,就是两边不等时会乱,要是能按顺序就好了

烟盒迷唇 发表于 2019-8-26 17:13:21

很不错啊,新的文字能够选择手动输入就更好了

286227370 发表于 2015-10-30 14:48:22

帮你顶一下,我也想知道

纸淘城 发表于 2015-10-30 20:39:06

有没有大神能解答啊

鱼与熊掌 发表于 2015-10-31 09:43:00

http://www.youyicad.com/Blog/20150809/146.html

xyp1964 发表于 2015-10-31 11:32:46



纸淘城 发表于 2015-10-31 15:17:14

xyp1964 发表于 2015-10-31 11:32 static/image/common/back.gif


命令: tt
; 错误: no function definition: XYP-START

多谢朋友的回复,但是在运行的时候怎么出现了这样的提示呢,还望解答

纸淘城 发表于 2015-10-31 17:21:00

风流少年时 发表于 2015-10-31 16:50 static/image/common/back.gif
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...

恩,效果挺不错的,多谢了哈

水吉空 发表于 2015-10-31 23:29:08

风流少年时 发表于 2015-10-31 16:50 static/image/common/back.gif
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...

赞!顶!赞!顶!赞!顶!赞!顶!

yoyoho 发表于 2015-11-1 07:50:55

感谢分享程序!
页: [1] 2
查看完整版本: 求助,如何实现文本批量替换?