|
|
各位大神们,初学二次开发,碰到问题,恳请大家指导。谢谢。
使用C++,NX2506(NX2412也试过了),使用UI创建了个面选择器对话框,编译后,调用dll的时候,
明明已经选择了一个面(UI也显示1了),可是代码返回的对象的size的大小是0,请大家指导一下。
我在initialize_cb()中给面选择器执行了
face_select00->SetLabelString("Glass surface");
在update_cb()中,
showInfo("Info", label_string);
NX也能弹出窗口显示 Glass surface 字段,
可GetSelectedObjects()返回的就是size = 0,
我用GetTaggedObjectVector("SelectedObjects"),返回的也是0,
然后NX紧接着就抛异常,
- int Code::update_cb(NXOpen::BlockStyler::UIBlock* block) {
- try {
- if (block == face_select00) {
- //---------Enter your code here-----------
- showInfo("Info", "update by faceSelect_00");
- auto label_string = face_select00->LabelString();
- showInfo("Info", label_string);
- std::vector<NXOpen::TaggedObject*> tagged_objects = face_select00->GetSelectedObjects();
- showInfo("info", std::to_string(tagged_objects.size()).c_str());
- NXOpen::BlockStyler::PropertyList* property_list = face_select00->GetProperties();
- std::vector<NXOpen::TaggedObject*> tagged_object_vector = property_list->GetTaggedObjectVector("SelectedObjects");
- }
- else {
- showInfo("update_cb()", "else!!!");
- }
- }
- catch
- (exception& ex) {
- logger->error("Error in update_cb(), {}", ex.what());
- showError("update_cb()", ex.what());
- }
- return 0;
- }
复制代码 选择
选择
异常
异常
|
|