[求助]跪求!关于DISTANCE计算距离莫名错误问题
<p>(setq osmode (getvar "osmode"))</p><p>(setq o(getpoint "\n指定基点:"))</p><p>(setvar "osmode" 4);捕捉目标点时只开圆心</p><p>(setq b(getpoint "\n指定目标点:"))<br/>(setvar "osmode" 0) <br/>(command "point" b)</p><p>(setvar "osmode" osmode)<br/> (setq c(angle o b));A</p><p> (setq dist(distance o b));B<br/> <br/> 这是我的一个LISP程序中一个循环的一部分,目的是连续计算从图中捕捉到的点坐标到一个固定基点的距离和方向,</p><p>然而突然发现在批量计算时,结果出现错误!并不是经常出现,而是极偶然的,我核对后发现,出错时总是代入 A和B行的目标点坐标值并不是现捕捉到的坐标值,而是前面捕捉过的某个点的坐标值的X值与现捕捉到的点坐标的Y值组成的一个非特征点的坐标,于是出现错误!!!这有点类似用LSP作图时的对象捕捉干扰,可是DISTANCE函数只是根据捕捉到的坐标进行计算,经观察捕捉到的点坐标是正确的,就是当DISTANCE函数对坐标进行距离计算时结果错误!并且是有时错有时对!从没听说过对象捕捉还能影响LSP程序内部计算的!</p><p>请问,这是怎么回事?应该不是锁点干扰吧,我已经关闭了对象捕捉!只是在计算前开启对象捕捉了,没道理导致计算混乱吧???而且出现这种情况的机会很少!请高手指点迷津!给出确切解释及处理办法,不胜感激!!! 请高手指点</p> 1、最好将OSMODE变量名大写;<br/>2、将A、B两行放到COMMAND行后试试。如果不出错就是捕捉的原因了。
页:
[1]