//ads_point p11,p21;
acedCommand(RTSTR, "ZOOM", RTSTR, "W", RT3DPOINT, p11, RT3DPOINT, p21 ,0);
如果p11和p21两个点的坐标相同,上面的代码会使CAD死掉
今天就发现一个这样的问题,为什么会死掉呢?无效的缩放范围而已……
解决方法就是判断下两点是否相同是否相同,作下处理。代码如下:
//ads_point p11,p21;
if (((p11[X] - p21[X]) >= -EPSINON) && ((p11[X] - p21[X]) <= EPSINON))
{
p11[X] -= 50.0;
p21[X] += 50.0;
}
if (((p11[Y] - p21[Y]) >= -EPSINON) && ((p11[Y] - p21[Y]) <= EPSINON))
{
p11[Y] -= 50.0;
p21[Y] += 50.0;
}
acedCommand(RTSTR, "ZOOM", RTSTR, "W", RT3DPOINT, p11, RT3DPOINT, p21 ,0);