lisp的一个奇怪问题,请教
hjjsemail
hjjsemail Lv.7
2011年02月24日 21:38:34
只看楼主

我编了一段LISP程序,有时候在天正环境中加载能运行正常,在纯CAD中却不正常,有时候是第一次运行正常,第二次就不正常了,为什么?最简单的一段程序,比如指定两点画了一条竖直线,然后把X坐标减去100,再画一条和原来一样长的竖直线,发现两条线居然重叠,而在第一象限(0,0)点附近画时能得到正确结果。跟踪变量,发现X坐标的确是少了100,可就是得不出正确结果。为什么?请高手指教。

我编了一段LISP程序,有时候在天正环境中加载能运行正常,在纯CAD中却不正常,有时候是第一次运行正常,第二次就不正常了,为什么?最简单的一段程序,比如指定两点画了一条竖直线,然后把X坐标减去100,再画一条和原来一样长的竖直线,发现两条线居然重叠,而在第一象限(0,0)点附近画时能得到正确结果。跟踪变量,发现X坐标的确是少了100,可就是得不出正确结果。为什么?请高手指教。
免费打赏
honker1981
2011年02月25日 21:34:57
2楼
两个点距离太近,需要先关闭捕捉
(setvar "osmode" 0) ;先关闭捕捉
(command ...) ;执行命令
(setvar "osmode" 4791) ;打开捕捉
回复
hjjsemail
2011年02月28日 20:57:50
3楼
谢谢楼上的兄弟。的确是这样的。我今天在网上找到原因了,网友给出的代码是:
(setq os (getvar "osmode"));保留原捕捉模式
(setvar "osmode" 0) ;先关闭捕捉
(command ...) ;执行命令
(setvar "osmode" os);恢复原捕捉模式
回复

相关推荐

APP内打开