明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1135|回复: 1

SelectByPolygon的FilterType怎样设置

[复制链接]
发表于 2011-6-15 16:20:55 | 显示全部楼层 |阅读模式
小弟最近接触ObjectARX编程

遇到一个难题,需求如下

用SelectByPolygon选择某一个框内的图元,但是要把BB和BB1图层上的图元过滤掉.

当FilterType和FilterData没有值的时候,可以全部都选择到,但是当我设置了FilterType时,就什么也选择不到了,代码如下.

VARIANT filterType;
VARIANT filterData;
SAFEARRAYBOUND mSAB1[1];
mSAB1[0].lLbound = 0;
mSAB1[0].cElements = 5;
SAFEARRAYBOUND mSAB2[1];
mSAB2[0].lLbound = 0;
mSAB2[0].cElements = 5;
VariantInit(&filterType);
filterType.vt = VT_ARRAY | VT_R8;
filterType.parray = SafeArrayCreate(VT_R8, 1, mSAB1);
VariantInit(&filterData);
filterData.vt = VT_ARRAY | VT_BSTR;
filterData.parray = SafeArrayCreate(VT_R8, 1, mSAB2);
short ft[5];
CString fd[5];
ft[0] = -4;
fd[0] = _T("<NOT");
ft[1] = 8;
fd[1] = _T("BB1");
ft[2] = 8;
fd[2] = _T("BB");
ft[3] = 8;
fd[3] = _T("轴线尺寸");
ft[4] = -4;
fd[4] = _T("NOT>");
i = 0;
for(i = 0; i < mSAB1[0].cElements; i++)
{   
  SafeArrayPutElement(filterType.parray, &i, &ft[i]);
}
i = 0;
for(i = 0; i < mSAB2[0].cElements; i++)
{   
  SafeArrayPutElement(filterData.parray, &i, &fd[i]);
}
acadSelSet->SelectByPolygon(acSelectionSetWindowPolygon, VAR, filterType, filterData);

不知道我这么写到底对不对,请各位大大指点

 楼主| 发表于 2011-6-18 13:47:59 | 显示全部楼层
找到办法了,用acdeSSGet,然后再通过document接口获取活动选择集
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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