ajs 发表于 2022-7-6 15:06:54

可以在t中更改颜色

我画的右上角有一根绳子。字符串包含两个变量。
 
打印文本的位置取决于加载的图形类型。
 
我想知道是否有可能(通过合理的努力)将颜色开关仅打开字符串的可变部分。
 
这是字符串:
 
(setq PRINT_区域(strcat“B区域:“B区域”s.f.T区域:“T区域”s.f.))
 
我希望B_区域和T_区域的颜色与设置为“颜色随层”(color ByLayer)的字符串的其余部分不同
 
 
下面是打印字符串的代码:
 
 
 
(命令“layer”“SET”“VARTEXT\u 1”)
 
(If(或(=LBN\u TR“1”)(=ALLN\u TR“1”)(=RBN\u TR“1”)(命令“TEXT”79.5842,96.8110“2.25”0(princ PRINT\u AREA)))
 
(If(=BN\u TR“1”)(命令“TEXT”91.2543,96.8110“2.25”0(princ PRINT\u区域)))
 
(If(=IS\u TR“1”)(命令“TEXT”124.0738101.7847“2.25”0(princ PRINT\u区域)))
 
提前感谢您的建议
 
---AJS公司

Lee Mac 发表于 2022-7-6 15:45:29

这可能会帮助您解决问题:
 

(defun c:test(/ B_AREA T_AREA BN_TR col1 col2 PRINT_AREA)
(setq B_AREA "TEST1" T_AREA "TEST2" BN_TR "1")
(setq col1 (itoa (acad_colordlg 0 T))
   col2 (itoa (acad_colordlg 0 T)))
(setq PRINT_AREA (strcat "B Area: \{\\C" col1 ";" B_AREA "\} s.f. T Area: \{\\C" col2 ";" T_AREA "\} s.f."))
(command "layer" "SET" "VARTEXT_1" "")
(if (or (= LBN_TR "1") (= ALLN_TR "1") (= RBN_TR "1"))
   (command "-MTEXT" "79.5842,96.8110" "H" "2.25" "R" "0" "@50,-50" PRINT_AREA ""))
(if (= BN_TR "1")
   (command "-MTEXT" "91.2543,96.8110" "H" "2.25" "R" "0" "@50,-50" PRINT_AREA ""))
(if (= IS_TR "1")
   (command "-MTEXT" "124.0738,101.7847" "H" "2.25" "R" "0" "@50,-50" PRINT_AREA ""))
(princ))

ajs 发表于 2022-7-6 15:51:50

感谢您如此彻底地发布代码。我要研究一下,这样我才能理解这些原则是什么。
 
非常感谢。
 
 
---AJS公司

Lee Mac 发表于 2022-7-6 16:22:34

不用担心AJS,
 
您只能使用多行文字来实现此目标,因为单行文字(DTEXT)不允许此功能。
 
您必须处理输入字符串以更改文本颜色,使用括号中的术语,使用花括号“{”将彩色文本括起来。
页: [1]
查看完整版本: 可以在t中更改颜色