masterfal 发表于 2022-7-5 17:07:03

修改文字样式

大家好,
 
想知道是否可以通过lisp将所选文本更改为我选择的文本样式?例如,如果我有一个名为“title”的样式,最好能够选择文本,键入title,然后将其更改为“title”文本样式。
浏览了一下,但找不到任何可以让我仅使用命令行将文本样式更改为其他样式的内容。。认为可能/应该可能

Tharwat 发表于 2022-7-5 17:29:12

你好
 
如果屏幕上出现工具栏“样式”,只需选择所需的文本对象,然后从文本样式的下拉菜单中选择所需的文本样式即可。
 
虽然很容易为你想要的东西编写一个例程,但令人困扰的问题是,如果你想要将文本移动到的文本样式具有长名称。

masterfal 发表于 2022-7-5 17:35:35

嗨,塔瓦,
 
不确定为什么长文本样式名称会有所不同?难道你不需要一开始就在例程中指定名称,然后再也不用担心名称了吗?
但无论如何,我可以根据自己的需要命名文字样式。如果需要的话,可以改成1个字符。。哈哈
我想设置快捷方式而不是使用下拉菜单的主要原因是它允许我将其分配给我的一个额外鼠标按钮
我发现我经常改变文字风格,所以我认为这会大大加快速度

Tharwat 发表于 2022-7-5 17:50:07

所以试试这个;

(defun c:2ts ( / ts ss sn)
;; Tharwat - 14.10.16 ;;
(setq ts "title")
(if (tblsearch "STYLE" ts)
   (if (and (princ (strcat "\nSelect texts to move to Text Style <" ts ">:"))
            (setq ss (ssget "_:L" (list '(0 . "TEXT,MTEXT") '(-4 . "<NOT") (cons 7 ts)
                                        '(-4 . "NOT>"))))
            )
   (while (setq sn (ssname ss 0))
       (entmod (append (entget sn) (list (cons 7 ts))))
       (ssdel sn ss)
       )
   )
   (princ (strcat "\nText Style <" ts "> is not found!"))
   )
(princ)
)

masterfal 发表于 2022-7-5 18:05:16

绝对完美!

Tharwat 发表于 2022-7-5 18:14:26

 
享受它。
页: [1]
查看完整版本: 修改文字样式