- UID
- 162335
- 积分
- 69
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-7-31
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2007-10-23 11:07:22
|
显示全部楼层
ACHAR ly=NULL;
ACHAR* nwz=NULL;
ACHAR* rwz=NULL;//snm.存储在第一次选择后的文字内容
struct resbuf *rb1;//snm.存储选择实体的条件
ads_name srcSS;//用于存储选择集的名组
ads_name ssEnt;//snm.单个实体
ads_name wzSS;//存储最后的选择集
long lenSS;//第一次选择的实体个数
AcDbObjectId entId;//snm.实体的ID;
AcDbText* pObj;
acutPrintf(_T("\nlsm提示:根据文字的内容批量选目标[不能超过15个文字]!"));
// char tts[]="\n指定图层:";
// ts=ts.Format("%s",tts);
int cr=acedGetString(true,_T("\n指定图层:"),&ly);//运行到这就不行了
if(cr != RTNORM)
{
acutPrintf(_T("\n图层输入失败!"));
return;
}
else acutPrintf(_T("\n图层为:%s"),&ly);
cr=acedGetString(true,_T("\n请输入需选择的文字内容:"),nwz);//snm.输入文字
if(cr != RTNORM)
{
acutPrintf(_T("\n文字内容输入失败!"));
return;
}
else acutPrintf(_T("\n需要选择的文字是:%s"),nwz);
rb1=acutBuildList(-4,"<and",8,ly,RTDXF0,"TEXT",-4,"and>",RTNONE);//表示同时并列满足两个条件的时候选择实体
int rct = acedSSGet(_T("X"), NULL, NULL, rb1, srcSS);
if(rct != RTNORM)
{
acutPrintf(_T("\n没有指定图层or图中没有文字"));
return;
}
acutRelRb(rb1);
cr = acedSSLength(srcSS, &lenSS);//snm.获取选择的实体个数哈,并存储在变量lenSS中
if(cr != RTNORM)
{
acutPrintf(_T("\n选择到0个实体!"));
return;
}
else acutPrintf(_T("\n选择到%d个文字实体!"),lenSS);
//存储最后的选择集
cr=acedSSAdd(NULL,NULL,wzSS);
if(cr!=RTNORM)
{
return;
}
//snm.逐一的排查实体,实现第二次选择
for(long i = 0; i<lenSS; i++)//snm.遍历选择集中的所有实体
{
cr = acedSSName(srcSS, i, ssEnt);//snm.获取选择集中的当前位置的实体的名称
if(cr != RTNORM)
{
break;
}
acdbGetObjectId(entId, ssEnt);
acdbOpenObject(pObj, entId, AcDb::kForRead);
// strcpy(rwz,pObj->textString());
rwz=pObj->textString();
acutPrintf(_T("\n当前图中包括文字:%s!"),rwz);
if(nwz==rwz)//snm.字符比较长度
{
cr=acedSSAdd(ssEnt,wzSS,wzSS);//snm.向前面刚创建的选择集中添加实体
if(cr!=RTNORM)
{
// acutPrintf("\n选择到0个实体!");
break;
}
}//end if
}//end for
cr=acedCommand(RTSTR,"SELECT",RTPICKS,wzSS,RTNONE);//snm.重要哦,转换为cad中的选择标示
if(cr != RTNORM)
{
acutPrintf(_T("\n没有指定文字!"));
return;
}
acedSSFree(srcSS);//snm.释放选择集
acedSSFree(wzSS);//snm.释放选择集
}
帮我看看吧
int rb1=acutBuildList(-4,"<and",8,ly,RTDXF0,"TEXT",4,"and>",RTNONE);这个list函数的使用行吗
ly为存储层名的字符串变量。
发现所做的条件选择实体没有实现预期目的 |
|