23 BodyCollector选择容器
本帖最后由 smthan 于 2014-6-1 10:09 编辑请教:
这几天在学习您的教程《23 BodyCollector选择容器》,跟着视频做,调试没有问题,执行的时候,总是后报错,还请您指点一下:
点击OK后,能输出正确的信息:
再之后,报错:
日志信息显示的错误:
主要代码:
int BodySelect::apply_cb()
{
int errorCode = 0;
try
{
PropertyList *pList = bodySelect0->GetProperties();
vector<TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
delete pList;
pList = NULL;
Body *body;
int allCount = 0 , iSolid = 0, iSheet = 0 ;
allCount = (int)vTags.size();
for (int i=0;i<allCount;i++)
{
body = dynamic_cast<Body *>(vTags);
if (body->IsSolidBody())
iSolid++;
else if(body->IsSheetBody())
iSheet++;
}
uc1601("Read select objects Finish!",1);
char chs="";
sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
uc1601(chs,1);
}
catch(exception& ex)
{
//---- Enter your exception handling code here -----
errorCode = 1;
BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
}
return errorCode;
}
不知道你有遇到过类似的情况吗??
问题是出在哪里呢??
也没有什么内存需要再释放的呀
body = dynamic_cast<Body *>(vTags);
body = dynamic_cast<Body *>(vTags);
本帖最后由 smthan 于 2014-6-2 14:04 编辑
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
{
int errorCode = 0;
try
{
PropertyList *pList = bodySelect0->GetProperties();
std::vector<NXOpen::TaggedObject *> vTags = pList->GetTaggedObjectVector("SelectedObjects");
delete pList;
pList = NULL;
Body *body;
int allCount = 0 , iSolid = 0, iSheet = 0 ;
allCount = (int)vTags.size();
for (int i=0;i<allCount;i++)
{
body = dynamic_cast<Body *>(vTags【i】);
if (body->IsSolidBody())
iSolid++;
else if(body->IsSheetBody())
iSheet++;
}
char chs="";
sprintf_s(chs,256,"选择了的对象的数量是:%d*实体的数量是:%d*片体的数量是:%d",allCount,iSolid,iSheet);
uc1601(chs,1);
}
catch(exception& ex)
{
//---- Enter your exception handling code here -----
errorCode = 1;
BodySelect::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
}
return errorCode;
}
有点不知所措了,请指点!!!
smthan 发表于 2014-6-2 05:14
谢谢您的回复,代码我修改了一下,可在循环处,好像还是会有溢出:int BodySelect :: ok_cb()
{
int er ...
你是 NX75 的吧
这个的确有问题 ,你用 选择对象 selection 代替吧
设置一个 mask
页:
[1]