gmmdinesh 发表于 2022-7-5 16:14:39

选择红色多行文字和纹理

大家好。。谁能告诉我,如何通过lisp从模型空间中选择所有红色文本和多行文字。
 
 
提前谢谢。

ronjonp 发表于 2022-7-5 16:20:12

(sssetfirst nil (ssget "_x" '((0 . "TEXT,MTEXT") (62 . 1))))

tmelancon 发表于 2022-7-5 16:24:49

(setq ss (ssget "X" '((0 . "text,mtext")(62 . 1))))

tmelancon 发表于 2022-7-5 16:29:51



(setq ss (ssget "X" (list (cons 0 "TEXT,MTEXT")(cons 62 1))))

gmmdinesh 发表于 2022-7-5 16:33:49

大家好,
谢谢你的快速回复。。需要更多帮助。。如何将选定文字和多行文字更改为粗体。

tmelancon 发表于 2022-7-5 16:41:58

快速搜索。从李大师那里找到了一些东西。希望有帮助。
 

gmmdinesh 发表于 2022-7-5 16:45:32

嗨,特梅拉康,
谢谢你的努力。。我试过这个。。但在这段代码中,我们必须手动选择对象。。我需要选择所有红色文字和多行文字,并更改为粗体。
你能修改lisp吗。

BIGAL 发表于 2022-7-5 16:47:02

在这里搜索修改多行文字有一些很好的编码示例,甚至可以找到一个红色的单词并改变其颜色等。编码使用直接修改多行文字中的隐藏代码。粗体是可以添加的项目。
 
标题
TextString=“{\\fArial | b0 | i0 | c0 | p34;HE\\fArial | b1 | i0 | c0 | p34;ADI\\fArial | b0 | i0 | c0 | p34;NG}”

tmelancon 发表于 2022-7-5 16:56:10

我唯一找到并编辑了一点的就是这个。我会坚持下去。我只是想选择所有的红色,多行文字,文字,但在VL。
 
(defun c:mtval( / ent objmtext stroldval strnewval)
(setq ent (car (entsel))
objMText (vlax-ename->vla-object ent)
strOldval (vlax-get-property objMText "TEXTSTRING")
strnewval (STRCAT "{\\fArial|b1|i0|c0|p34;" stroldval)
)
(if strnewval (vlax-put-property objmtext "TEXTSTRING" strnewval)
)
(vlax-release-object objmtext)
)

ronjonp 发表于 2022-7-5 17:00:15

添加这些硬编码值时要小心。。如果不检查是否存在:{\\fArial | b1 | i0 | c0 | p34;{\\fArial | b1 | i0 | c0 | p34;{\\fArial | b1 | i0 | c0 | p34;{\\fArial | b1 | i0 | c0 | p34;asdfsafsdfsfsaff“
 
也许可以这样使用:
(strcat "{\\fArial|b1|i0|c0|p34;"
                  (vl-string-left-trim
                  "{\\fArial|b1|i0|c0|p34;"
                  (vlax-get-property objmtext "TEXTSTRING")
                  )
          )
页: [1] 2
查看完整版本: 选择红色多行文字和纹理