DCL action\u tile string太
我对我制作的DCL对话框的lisp代码有问题。似乎我的字符串对于action\u tile“accept”来说太长了,我得到了错误“错误的参数类型:lselsetp nil”。问题是,显然,我有太多的输入值,这使得它很长。如果我删除一行或两行,它可以工作,但我需要将它们全部放入,存储它们并进行验证检查。有没有办法让它像吐字符串一样工作,或者更好地重写它来缓解问题?
如有任何建议,我们将不胜感激。
这是我要说的部分。
如果您愿意,可以使用:
在每个图块中调用的误差函数可以如下所示:
当然,您必须设置误差函数以满足您的需要。
默认情况下,“accept”退出值为1,“cancel”退出值为0,但将操作分配给这些互动程序并没有错。
我更愿意使用此模式:
(action_tile "lfm" "(setq lfm_ $value) (err $key $value)")
(action_tile "lfv" "(setq lfv_ $value) (err $key $value)")
.
. @Grrr,
谢谢你们,你们的第一个建议非常有效,它帮助我理解了如何稍微整合我的代码。然而,你的第二个建议,我更喜欢,似乎不起作用。我替换了vl排序块,但我就是无法使其工作。
@斯特凡,
非常感谢。您的方法的实现似乎更容易,但当我尝试这样做时,在使用atof转换为REAL时,我的变量出现了错误。
编辑:好的,我设法解决了这个问题,现在一切正常。 另一个未经测试的:
4 上帝啊有那么一刻,我以为你只是为了好玩而胡言乱语。
谢谢李。我也会试试你的方法。 我使用此DCL的主要问题是,在visual lisp编辑器中执行时无法遵循这些步骤。当我运行代码时,程序不会出错,我不知道出了什么问题。我是做错什么了还是DCL太差劲了? @MJLM,
李的建议管用吗?
@李,
我知道您通常使用if函数,但请注意
5
可以稍微缩短为:
6
虽然这个建议很棒,但如果MJLM确认它有效,我会保留它。 我试图实现Lee的方法,但我认为模式(“*[~0-9]*,*`.*.'.'*[~0-9]*”)有问题。几乎所有的盒子都有“无效输入”。 模式检查十进制格式的数字输入。你的评论表明你正在以帝国主义的方式工作。 不,不是真的。我只研究实数和整数的度量。
页:
[1]
2