RyanAtNelco 发表于 2022-7-6 11:50:28

编辑多文本样式字体

你好
 
有人能帮我用一个lisp将图形中所有文本样式中的所有字体更改为“Arial”吗?
 
谢谢

SteveK 发表于 2022-7-6 11:54:09

嗨,你说的“帮助”是指你自己写的吗?如果是这样,我建议您需要:
-用于查找所有文本的ssget函数:例如
循环遍历每个文本:例如
和一个修改每个文本的函数(使用entmod和subst):例如
完成的代码:
不包括错误捕捉&如果你想包括块内,那么这会变得有点复杂。

rkmcswain 发表于 2022-7-6 11:58:03

 
这会更改每个文本和多行文字实体的样式,但OP希望更改与每个样式相关的字体。
 
----------------------------
 
下面的代码将每个样式的字体更改为ARIAL。
 
4

SteveK 发表于 2022-7-6 12:02:55

对,我被纠正了。

RyanAtNelco 发表于 2022-7-6 12:03:34

太棒了,谢谢大家!!!这正是我要找的。史蒂夫-我很喜欢你对代码的解释。这对处于lisp初级阶段的人很有帮助。

rkmcswain 发表于 2022-7-6 12:06:44

 
我也应该这么做…:眨眼:
 
5

RyanAtNelco 发表于 2022-7-6 12:12:20

rkmcswain,
 
我不太确定如何让你的代码工作。它似乎不像键入它那样简单,而且比简单地在其中添加“defun C:”要复杂得多。你能帮我解决我缺少的东西吗?谢谢

rkmcswain 发表于 2022-7-6 12:15:02

 
如果您将原始代码复制到VLIDE中,并按下run按钮,它将执行。
 
如果您将代码保存到文件中,并加载该文件,它将执行。
如果文件不在支持文件搜索路径中,可以使用APPLOAD命令加载文件,也可以使用命令行中的(load)函数加载文件,如下所示:(load“myfile”)-或-(load“c:\\lispcode\\myfile”)。
 
如果要创建一个要加载到内存中的函数,以便以后执行,则必须添加(defun)包装器,如下所示:
 
6
 
如果使用上述代码,仍然可以通过将代码复制(或打开文件)到VLIDE并按“运行”按钮将代码加载到AutoCAD中。您也可以使用(load)函数如上所述加载文件。不同之处在于,如果您添加(defun)包装器,那么代码在加载时不会执行,它只会将代码加载到内存中。此时,您必须在AutoCAD内部运行命令(此时名为FOO)

RyanAtNelco 发表于 2022-7-6 12:15:55

由于某种原因,我只能让函数返回“nil”

rkmcswain 发表于 2022-7-6 12:19:53

因此,您加载了函数,然后在命令提示符下键入函数名,它返回nil,并且不会更改样式中的字体?
 
它在所有图形中都做相同的事情吗,即使是一个新的空图形?
页: [1] 2
查看完整版本: 编辑多文本样式字体