seegs 发表于 2022-7-6 09:09:37

Autolisp初学者

大家好,
 
我现在已经编写了一些基本的autolisp程序,以测试我到目前为止学到的知识。我最新的一个是绘制房子的轮廓,用户输入房子的宽度和屋顶的斜度。
问题是,对于这个程序和我编写的其他程序,当我运行它时,它偶尔会出错。例如,有时它会错过绘制一些线,或者它们将位于错误的位置。
如果每次都发生这种情况,那么显然程序中存在问题。但随机发生是我无法理解的。
这对初学者来说很常见吗?
 
谢谢

BIGAL 发表于 2022-7-6 09:37:14

听起来你需要自己编写一份用户程序手册,记录正在使用的变量在哪里并保持一致。让一个变量在一个程序中成为字符串,在另一个程序中成为实数并不太好。它会崩溃,与选择集一样,如果你试图再次使用相同的命名变量,它会出错。
 
您需要找出哪些步骤组合会导致崩溃。有时,这是一个真正的错误,可能是当时绘图的缩放因子,这是一个拉毛问题,但一旦你知道了,你可以解决它。

Tharwat 发表于 2022-7-6 10:09:19

 
您应该在例程中的命令“_.line”或“_.polyline”之前关闭osnap。
 
例如

(setq os (getvar 'osmode))
(setvar 'osmode 0)
.....
... your commnads and codes here
.....
..
then we reset the osmode as it was before
(setvar 'osmode os)

 
如果使用entmake(x)而不是命令调用,则可以避免osmode设置:眨眼:
 
塔瓦特

seegs 发表于 2022-7-6 10:27:28

谢谢你们的快速回复。
我确实知道OSNAP会影响线的放置,我很确定我在打开和关闭OSNAP时会遇到这个问题。但我只是一次又一次地测试我的程序,每次我用osnaps在线运行时都会出错,反之亦然
 
干杯
页: [1]
查看完整版本: Autolisp初学者