woodman78 发表于 2022-7-6 11:25:47

更改属性

有人能帮我吗?我有一个具有属性的块。该属性包含一个单词,并设置为居中对齐。我希望能够更改块属性,但新属性将包含更多的文本,我希望能够设置文本将在2或3行上运行。当我向lisp中添加新的att定义时,可以在lisp中进行设置。

Lee Mac 发表于 2022-7-6 11:29:09

对于多行,您必须使用多行属性-您的所有块都使用这些属性吗?

BearDyugin 发表于 2022-7-6 11:34:39

同样,很容易纠正,如果Vla得到MTextAttribute:Vla false,那么Vla就把MTextAttribute:Vla true

woodman78 发表于 2022-7-6 11:37:47

我想创建一个lisp和对话框,允许用户从对话框中选择一个选项,并将其放入属性中。根据长度,它将被分成若干行。这可能需要在lisp中设置,或者是否有方法限制多行属性的宽度,使其运行到下一行。
 
我将非常感谢您的帮助。

alanjt 发表于 2022-7-6 11:41:23

。。。。。。。。。。。。。。。。。。

Lee Mac 发表于 2022-7-6 11:44:51

这取决于你想如何处理它-
 
你可以使用列表框、弹出列表等。。。想想你想让对话看起来怎么样。
 
它会用于替换属性中的现有文本吗?或者输入正在插入的块(在这种情况下,您甚至可以使用反应器)。。。
 
您甚至可以从文本文件中读取属性信息,以便编辑。。
 
只是提几点建议,
 

woodman78 发表于 2022-7-6 11:47:30

我想用一个弹出列表来完成它,我真的很喜欢使用txt文件来存储数据的想法。块名为“project_names”。

Lee Mac 发表于 2022-7-6 11:50:21

好的,现在你可以一步一步地思考LISP是如何工作的。。。称之为伪代码。
 
我会这样想:
[列表]
[*]提示用户选择要更新的属性。代码可以设置为直接获取属性(可能使用nentsel),或选择块并提示用户更新哪个标记。。。代码需要检查用户是否选择了正确的对象,或者是否选择了任何对象。
[/列表]
[列表]
[*]如果读取数据的txt文件的位置未知,则提示选择该文件。(想想如何存储此文件的位置-可以将其硬编码到LISP中,将其作为全局变量存储[在这种情况下,它只能在一个图形中持续时间],甚至可以将配置文件写入支持路径,存储数据文件的位置。或者可以编写一个存储信息的注册表项。
[/列表]
[列表]
[*]加载对话框,用从txt文件读取的字符串填充popup_列表(也许想想数据将如何存储在txt文件中的格式,将使用什么来分隔每个数据项,你将如何表示新行应该在哪里等。此外,项目是否需要缩短以适应弹出式菜单列表,如果需要,缩短多少?此外,列表框是否可能更清晰,因为所有选项都打开供用户查看。。。
[/列表]
[列表]
[*]选择项目后,从这里开始很容易,代码只需要替换新项目的文本字符串-代码还需要注意尝试将多行数据放入仅允许单行的属性中-因此可能需要转换属性-是否允许?因为它违背了块表中的块定义,所以可以用单个“attsync”覆盖该动作。。。
这些只是一些需要考虑的事情——在考虑编写这样一个函数时需要考虑的基本内容。
 

woodman78 发表于 2022-7-6 11:53:43

谢谢你,李,我试试看。

woodman78 发表于 2022-7-6 11:55:56

 
李,我想把用户选择从lisp中完全去掉。这只会增加另一层混乱,这意味着小伙子们有更多的时间来问我问题。我希望对lisp进行编码,以选择该块中具有特定名称和特定属性的块。没有选择。
 
 
 
我再次考虑将文本文件的位置写入lisp,而不是与其他选项混淆。
 
 
我认为数据将存储在每行的文本文件中。每个条目将位于新行。项目需要缩短以适应popup_列表,因为它们可能相当长。我更喜欢popup_列表,因为这个列表会不断增长,所以列表框会变得太大。它不是每天都会被使用很多次的东西,所以我不认为弹出列表会带来太多不便。
 
 
我看到块是在之前创建的,而不是在运行中,因此可以如上所述为具有宽度集的多行设置attirbute,这样应该可以处理这个问题吗???
页: [1] 2
查看完整版本: 更改属性