文本内容格式刷增强版,可刷单多行文字和天正文字
本帖最后由 xinxinzhl 于 2010-12-10 15:31 编辑看到有人编写了文本内容格式刷的lsp代码,试了下,发现只对于单行文字有用,本人完善了下,使其可以对单行文字和多行文字及天正文字都可以使用。望大家提出可以更进一步完善的建议。;;;;***********************************<<C:ALLSAME>>***********************************
;;;;此程序是实现文本内容格式刷
(defun c:allsame (/ en en_data en1 en1_data ss k entype old_text new_text_data)
;;;准备及用户输入阶段
(setvar "cmdecho" 0)
(setq en (entsel "\n请选择源文字:"))
(setq en_data (entget (car en)))
(prompt "\n请选择要修改内容的文字:")
(setq ss (ssget))
(setq k 0)
(repeat (sslength ss)
(setq en1 (ssname ss k))
(setq en1_data (entget en1))
(setq entype (cdr (assoc 0 en1_data)))
;;;单行文字的内容格式刷
(if
(= entype "TEXT")
(sametext en1_data en_data)
)
;;;天正文字的内容格式刷
(if
(= entype "TCH_TEXT")
(sametext en1_data en_data)
)
;;;多行文字的内容格式刷
(if
(= entype "MTEXT")
(sametext en1_data en_data)
)
(setq k (1+ k))
)
(prin1)
)
;end of c:allsame
(prompt
"\n **********<<ALLSAME>>**********实现文本内容格式刷**********"
)
(prin1)
;;;实现文本内容格式刷的子程序
(defun sametext
(en1_data en_data)
;;;取得数据源的内容
(setq old_text (cdr (assoc 1 en_data)))
;;;复制数据源的内容
(setq new_text_data (cons 1 old_text))
(setq en1_data (subst new_text_data (assoc 1 en1_data) en1_data))
(entmod en1_data)
);end ofsametext
;;;***********************************<<C:ALLSAME>>***********************************
天正多行文字不行吧 顶啦!好程序! 试过发现,标题有些误导
这个不是刷文字格式的格式刷,其实就是把各种不同格式的文本对象全部刷为同一文本内容的程序... 天正多行文字不能使用 顶啦!好程序!
谢谢,好程序。 添加(if
(= entype "TCH_MTEXT")
(sametext en1_data en_data)
)
天正多行文字就能使用 好东西,可以方便的改文字了。 好东西,谢谢楼主. 再增加属性文字与块内属性文字内容刷
再将尺寸文字加进去
同时可刷圆的大小!