错误:错误的参数类型-Sum
您好,我正在构建一个lisp,以根据用户给定的标准距离添加新文本。lisp是:但是当它要求输入文本时,我键入了它,但出现了以下错误。
错误:参数类型错误
(+PP距离)
(SETQ X(+PP DIST))
我认为这是dist和pp的类型,因为一个是getint,另一个是getpoint。 作为一种快速修复方法,可能需要更改:
(setq x (+ pp dist))
收件人:
(setq x(+ x dist))
(setq pp (cons x (cdr pp))) 非常感谢。成功了! 我稍微修改了你的代码,添加了一些错误捕捉,但不会太多,因此你可以理解更改(代码仍然可以改进,以考虑UCS等)。
关于上述内容的几点注释:
[列表]
[*]当提示用户输入时,请检查输入是否为空,否则代码中期望此输入的其他部分可能会失败。如果用户未能提供输入,则所有getXXX(getstring除外)都将返回nil,因此您可以使用简单的if语句来检查此输入。
[/列表]
[列表]
[*]避免在LISP中使用“text”命令,此命令的提示可能因使用的文本样式而异,因此不可靠。相反,请考虑使用entmake创建文本,如上面的代码所示。此处可以找到所用DXF代码的参考。
[/列表]
[列表]
[*]始终本地化变量!为了理解这一点的重要性,请阅读本简短教程。
[/列表] 这将始终使用标准文本样式并放置在层0上-无论当前是什么。
我还建议对文本使用vla方法(或者在某些情况下修改高度)。。。由于文字样式可能是注释性的。或者,可以通过将1/CAnnoScaleValue与当前样式的图纸空间高度相乘来忽略/计算所需的文字高度。
这是一种既不在这里也不在那里的情况:vla在使用unicode字符时又出现了一些问题,所以没有完美的答案。下面是一个与当前样式/图层/annoscale一起使用的修改:
4 Irne,我不想压倒初学者。。。 哎呀!对不起,那我就这么做
页:
[1]