明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1654|回复: 0

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

[复制链接]
发表于 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[X]/ssize.resval.rpoint[Y];
        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选)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 10:43 , Processed in 0.161285 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表