本帖最后由 纸淘城 于 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)
)网友答:
好用,就是两边不等时会乱,要是能按顺序就好了网友答:
缺少函数还收费,好意思吗?网友答: 帮你顶一下,我也想知道网友答: 有没有大神能解答啊网友答: http://www.youyicad.com/Blog/20150809/146.html网友答:
网友答:
命令: tt
; 错误: no function definition: XYP-START
多谢朋友的回复,但是在运行的时候怎么出现了这样的提示呢,还望解答网友答:
恩,效果挺不错的,多谢了哈网友答:
赞!顶!赞!顶!赞!顶!赞!顶!网友答: 感谢分享程序!
求教各位朋友,本人想实现这样一个功能:已经排好位置的几个文字,现在想批量将其替换掉,但是这几个文字的位置不能动。大概的思路是这样:选择源文字后,程序根据其坐标分别按水平和竖向排好顺序,然后选择需要被替换的文字,接着出现一个选项,提示按竖向排列还是水平排列(记住上次选择),最后将文字批量替换。效果如图所示。请各位伸出援手
网友答: 菜鸟用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( ...
好用,就是两边不等时会乱,要是能按顺序就好了网友答:
xyp1964 发表于 2015-10-31 11:32
缺少函数还收费,好意思吗?网友答: 帮你顶一下,我也想知道网友答: 有没有大神能解答啊网友答: http://www.youyicad.com/Blog/20150809/146.html网友答:
网友答:
xyp1964 发表于 2015-10-31 11:32
命令: tt
; 错误: no function definition: XYP-START
多谢朋友的回复,但是在运行的时候怎么出现了这样的提示呢,还望解答网友答:
风流少年时 发表于 2015-10-31 16:50
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...
恩,效果挺不错的,多谢了哈网友答:
风流少年时 发表于 2015-10-31 16:50
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...
赞!顶!赞!顶!赞!顶!赞!顶!网友答: 感谢分享程序!