UG8.0通过Block UI无法得到TaggedObject?是不是什么设置的问题?
我的获得TaggedObject的代码就是这样的
BlockStyler:ropertyList*bodySelectProps = bodySelect0->GetProperties();
std::vector<NXOpen::TaggedObject *> body01 = bodySelectProps->GetTaggedObjectVector("SelectedObjects");
int num = body01.size();
char str;
sprintf_s(str,"%d",num);
uc1601(str,1);
得到显示的值是0啊
关键是那个objects用这个方法无法得到啊,你选择完成后得到的数量为0,调试的时候,在上面两句话中就会显示有错误,什么无法计算表达式的值。现在我在想是不是8.0这个版本的Block UI Styler不太给力啊,谢谢您了! 你不要去抱怨任何东西,除了你自己的代码!
这个是选择前的,也就是taggedobjects 的个数
这个是转换完了的,
没有问题!!
代码加上,仅供参考!
std::vector<TaggedObject *> objects = this->bodySelect0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
std::stringstream ss;
ss << "选择的对象的个数是:"<< objects.size() <<endl;
theSession->ListingWindow()->Open();
theSession->ListingWindow()->WriteLine(ss.str());
char msg;
sprintf_s(msg,"选择的对象的个数是: %d",(int)objects.size() );
uc1601(msg,1);
std::vector<Body *> bodies;
for(int i = 0 ; i < objects.size() ; i ++)
{
Body *body = dynamic_cast<Body *>(objects);
bodies.push_back(body);
}
ss.clear();
ss.str("");
ss << "转化为body类型的个数是 : " << bodies.size()<<endl;
theSession->ListingWindow()->WriteLine(ss.str());
sprintf_s(msg,"转化为body类型的个数是 : %d",(int)bodies.size());
uc1601(msg,1);
选择的时候 也可以直接用这个 取值
std::vector<TaggedObject *> objects = this->bodySelect0->GetSelectedObjects(); 您好,我不知道您用的是9.0还是8.0,我在8.0上就是按您说的做的,但是就是不能得到想要的结果,不知道是否和设置有关系。我发现8.0上所有块的类型都是UIblock,而9.0上各个块都有自己的类,比如,体选择器他的类型是BodyCollector,而在8.0中他是UIBlock。这个怎么解决,还希望您能够指导,谢谢您! Bruce_Lee 发表于 2013-11-14 12:53
您好,我不知道您用的是9.0还是8.0,我在8.0上就是按您说的做的,但是就是不能得到想要的结果,不知道是否 ...
发现你对这方面可能很不了解,
6.0以后的版本 应该都是一样的, 你查查你的代码吧 Bruce_Lee 发表于 2013-11-14 12:53
您好,我不知道您用的是9.0还是8.0,我在8.0上就是按您说的做的,但是就是不能得到想要的结果,不知道是否 ...
再不行了,你用 select object 吧, 这个控件也可以
加个过滤就行了 说实话我确实刚接触NXOpen,因此我想尽一切办法来搞明白这个东西是什么玩意,所以我特意找了一个9.0看了看,两个生成的代码是有些不太一样,而且帮助文档里面,9.0的UIBlock类下面有各个控件自己的类,而8.0就只有几个,不是所有的都有。而且我发现我这边8.0上那些选择的控件都不好使,我把UGOPEN里面的例子拿出来使用,也不好使。不知道是我的代码写的问题还是什么问题,确实困扰了好久。在此我非常感谢您的指导和解释,希望能够再次得到您的指导,谢谢! 您好,还有我不知道UG二次开发是否和VS的版本有关系?希望您能够指导我,谢谢! admin 发表于 2013-11-15 12:39
再不行了,你用 select object 吧, 这个控件也可以
加个过滤就行了
说实话我确实刚接触NXOpen,因此我想尽一切办法来搞明白这个东西是什么玩意,所以我特意找了一个9.0看了看,两个生成的代码是有些不太一样,而且帮助文档里面,9.0的UIBlock类下面有各个控件自己的类,而8.0就只有几个,不是所有的都有。而且我发现我这边8.0上那些选择的控件都不好使,我把UGOPEN里面的例子拿出来使用,也不好使。不知道是我的代码写的问题还是什么问题,确实困扰了好久。在此我非常感谢您的指导和解释,希望能够再次得到您的指导,谢谢!
页:
[1]
2