jremiro 发表于 2022-7-6 08:51:16

插入的块在结束时开始

我有一个lisp程序,我们已经使用了好几年。该例程获取一条pline,根据用户定义的间距将其偏移到任意一侧,然后插入一个预制块来表示道路。块根据用户定义的间距隔开。例如,可以按所需次数以“道路”宽度的2倍插入块,以表示偏移柱脚的整个长度。希望这有意义!这个lisp例程本身工作得很好。但是,一旦插入宏,它将在pline的末尾开始块插入,仅插入一个块。这在我们从2004年到2011年使用的所有版本的AutoCAD中都会发生。lisp例程中是否有应重置或清除的setvar?如有任何建议,我们将不胜感激。谢谢

ketxu 发表于 2022-7-6 09:03:32

你的代码^^在哪里?你用你的马可时传达了什么信息?(可以按F2键读取)

jremiro 发表于 2022-7-6 09:18:21

这是几年前编写的AutoLisp例程,在AutoCAD的多个版本中幸存下来。该例程以及包括块名称在内的特定用户输入已放入下拉菜单组。当从菜单组中选择时,我遇到了这个问题(在行尾插入块)。当我从命令行启动这个lisp例程时,它会在pline的开始处插入第一个块,并沿着根据用户输入隔开的线插入块的其他副本。今天早上,我发现只有先从命令行运行例程时才会发生这种情况。如果我首先从下拉菜单中选择,则在这两种情况下,它都将默认为pline的末尾。我没有收到任何错误消息。再次感谢。

Lee Mac 发表于 2022-7-6 09:34:43

是否已将所有局部变量声明为函数的局部变量?听起来像是一个变量保持着它的值,因此程序从它停止的地方开始。

ketxu 发表于 2022-7-6 09:46:38

你菜单上的马可密码是什么?也许你的命令行版本和指定的菜单下拉列表有些不同

jremiro 发表于 2022-7-6 09:52:28

谢谢你的回复。虽然我在LISP代码方面相当弱,但我认为所有变量都是局部变量。我还没有想出一个解决方案,所以将继续感谢所有的答复。再次感谢。
页: [1]
查看完整版本: 插入的块在结束时开始