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

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

用选择集,
获得窗口的四个角点的坐标
{
                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]
查看完整版本: 问:怎么获得当前视口显示的所有实体