tianao 发表于 2011-4-7 15:43:56

问:怎么获得当前视口显示的所有实体

用选择集,
获得窗口的四个角点的坐标
{
                AcGePoint3d g_leftLower,g_rightLower,g_rightHigh,g_leftHigh;//当前屏幕的4个角的点。
        AcGePoint3d scen;
        resbuf vctr,vsize,ssize;
        ads_getvar(_T( "VIEWCTR" ),&vctr);
        scen=asPnt3d(vctr.resval.rpoint);
        ads_getvar(_T( "VIEWSIZE" ),&vsize);
        double high=vsize.resval.rreal;
        g_dViewHeight = high;
        ads_getvar(_T( "SCREENSIZE" ),&ssize);
        double scale=ssize.resval.rpoint/ssize.resval.rpoint;
        double xoffset=high*scale/2,yoffset=high/2;
        AcGeVector3d mvec1(-xoffset,-yoffset,0),mvec2(xoffset,-yoffset,0),mvec3(xoffset,yoffset,0),mvec4(-xoffset,yoffset,0);
        g_leftLower = scen+mvec1;
        g_rightLower = scen+mvec2;
        g_rightHigh = scen+mvec3;
        g_leftHigh = scen+mvec4;

                ads_ssget(str,g_leftHigh, g_rightLower, entmask, ss);//获得当前视口显示的所有实体
}
在二维下没有问题,可以选择到当前视口的所有实体,但是在三维下就只能选到部分。
各位帮忙看一下,
cad有没有直接选择到当前视口的方法呀,(是当前视口中的实体,不要A选)
页: [1]
查看完整版本: 问:怎么获得当前视口显示的所有实体