xinxinzhl 发表于 2010-12-10 15:12:12

文本内容格式刷增强版,可刷单多行文字和天正文字

本帖最后由 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>>***********************************


guankuiwu 发表于 2022-8-26 17:48:46

天正多行文字不行吧

669423907 发表于 2011-4-6 23:17:44

顶啦!好程序!

raimo 发表于 2011-4-7 00:43:35

试过发现,标题有些误导
这个不是刷文字格式的格式刷,其实就是把各种不同格式的文本对象全部刷为同一文本内容的程序...

adc 发表于 2011-4-18 14:12:48

天正多行文字不能使用

zhengchuan 发表于 2011-4-29 01:33:44

顶啦!好程序!

jjie1970 发表于 2011-5-26 18:06:52

谢谢,好程序。

wudechao 发表于 2011-6-7 02:28:38

添加(if
(= entype "TCH_MTEXT")
      (sametext en1_data en_data)
    )
天正多行文字就能使用

yxh1202 发表于 2011-6-11 17:55:12

好东西,可以方便的改文字了。

T_T 发表于 2011-7-25 03:11:19

好东西,谢谢楼主.

gbhsu 发表于 2011-7-25 07:46:49

再增加属性文字与块内属性文字内容刷
再将尺寸文字加进去
同时可刷圆的大小!
页: [1] 2 3
查看完整版本: 文本内容格式刷增强版,可刷单多行文字和天正文字