明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3226|回复: 16

[已解答] 求助,如何实现文本批量替换?

[复制链接]
发表于 2015-10-30 09:41:03 | 显示全部楼层 |阅读模式
本帖最后由 纸淘城 于 2015-10-30 14:09 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

上dwg文件  发表于 2015-10-31 10:04
发表于 2019-8-26 17:13:21 | 显示全部楼层
很不错啊,新的文字能够选择手动输入就更好了
发表于 2022-11-5 10:14:43 | 显示全部楼层
为什么顺序会错乱
发表于 2015-10-30 14:48:22 | 显示全部楼层
帮你顶一下,我也想知道
 楼主| 发表于 2015-10-30 20:39:06 | 显示全部楼层
有没有大神能解答啊
发表于 2015-10-31 09:43:00 | 显示全部楼层
发表于 2015-10-31 11:32:46 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2015-10-31 15:17:14 | 显示全部楼层
xyp1964 发表于 2015-10-31 11:32

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

多谢朋友的回复,但是在运行的时候怎么出现了这样的提示呢,还望解答
发表于 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)
)

评分

参与人数 1金钱 +10 收起 理由
纸淘城 + 10

查看全部评分

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

恩,效果挺不错的,多谢了哈
发表于 2015-10-31 23:29:08 | 显示全部楼层
风流少年时 发表于 2015-10-31 16:50
菜鸟用lisp写了一个,没有院长他们的代码简洁,你试试看行不。
;;文本替换 by AA2015.10.31
(defun c:tt( ...

赞!顶!赞!顶!赞!顶!赞!顶!
发表于 2015-11-1 07:50:55 | 显示全部楼层
感谢分享程序!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 00:43 , Processed in 0.212863 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表