OMEGA-ThundeR 发表于 2022-7-5 17:17:09

可以粘贴产生此错误的完整lisp例程吗?
 
现在还不知道“u”是做什么的,它是lisp的命令还是在AutoCAD中使用标准的“undo”(u)命令时会出现此错误?
 
可能lisp的编码有问题。我使用了许多lisp例程,但从未出现过这种错误。
 
编辑:看起来您正试图使用lisp例程“撤消”操作,但希望常规的撤消命令能够撤消lisp例程中的撤消操作。
实际上,尝试重做已撤消的操作,但AutoCAD中的“重做”命令甚至不起作用,因此lisp可能无法修复该问题。。。

MJLM 发表于 2022-7-5 17:22:48

我认为我们有点脱离主题。没有错误。我只想抑制在Autocad命令提示符下重复(Lisp表达式)得到的反馈。
 
我的嘴唇程序并没有撤销任何东西,它的主要动作是完全不同的。它基本上改变了属性为Nr.1的数百个块的颜色。它还可以通过单击删除所有具有此属性的块,还可以更改属性编号。如果错误,等等。
 
现在让我们假设我错误地删除了错误的块组,或者我错误地给了属性错误的编号。我希望在不重新插入块或重新选择它们的情况下撤消此操作(给出错误的数字意味着可能会与现有索引的其他索引混合)。如果我在第一篇文章中没有使用这两个“undo”命令,我将不得不手动撤销lisp例程中的所有步骤(u enter、u enter等等)。如果我们讨论一个删除了300个块的循环,那么这永远不会起作用,因此我在第一篇文章中提出了undo命令的解决方案。
 
如果有更好的方法可以一次撤销最后一次执行,而不需要(commad“undo”…并返回消息,请随时与我们分享。

guran 发表于 2022-7-5 17:28:31

奇怪的是,我以前从未注意到这条消息,但经过一些测试后,我似乎每次点击屏幕以响应提示时都会收到一条消息。

Lee Mac 发表于 2022-7-5 17:30:55

据我所知,无法避免(Lisp表达式)输出。
 
这些语句由内置的AutoCAD撤消机制生成,这是LISP API无法实现的。在撤消过程中是否显示语句将取决于正在撤消的操作-由AutoLISP程序调用的撤消命令调用通常会产生此输出,因此如果要避免这些消息,可能需要重写程序以执行所需的操作,而不调用标准AutoCAD命令。

MJLM 发表于 2022-7-5 17:37:18

李,谢谢你的评论。它帮助我理解了为什么我会得到这个输出。起初我认为这(Lisp表达式)只是典型的Lisp行为。我从代码中删除了所有“命令”调用,现在我只收到一次可以接受的消息。毕竟,用户知道他正在运行lisp例程。
 
有趣的是,当我从例程中删除所有“命令”调用并在执行后撤消一个步骤时,我得到了“(Lisp表达式)组”。当我刚离开
 
(command "_.undo" "_BE")
在一开始和
 
(command "_.undo" "_E")
最后,没有其他对“command”的调用,我只得到了对我更有利的“Group”。奇怪的是,我似乎终究不会完全摆脱“命令”。
页: 1 [2]
查看完整版本: 如何摆脱烦恼