• 单选和多选及过滤


     1 char         sCue[] = "选择";
     2     char         sTitle[] = "功能测试";
     3     int             iScope = UF_UI_SEL_SCOPE_NO_CHANGE;
     4     int             iResponse;
     5     tag_t     tObject;
     6     tag_t    viewTag = NULL_TAG;
     7     double  cursor[3];
     8     double min_corner[3] = { 0.0,0.0,0.0 };
     9     double directions[3][3];
    10     double distances[3];
    11     UF_UI_select_with_single_dialog(sCue, sTitle, iScope, init_face, NULL, &iResponse, &tObject, cursor, &viewTag);

    单选
    1     char sCue[] = "象选择对话框";
    2     char sTitle[] = "象选择对话框";
    3     int iScope = UF_UI_SEL_SCOPE_NO_CHANGE;
    4     int iResponse;
    5     tag_t *tObject;
    6     int count = 0;
    7     UF_UI_select_with_class_dialog(sCue, sTitle, iScope, init_proc, NULL, &iResponse, &count, &tObject);
    8 
    多选
     1 static int select_filter_proc_fn(tag_t object, int type[1], void* user_data, UF_UI_selection_p_t select)
     2 {
     3     if (object == NULL)
     4     {
     5         return UF_UI_SEL_REJECT;
     6     }
     7     else
     8     {
     9         return UF_UI_SEL_ACCEPT;
    10     }
    11 }
    12

    static int init_proc_body(UF_UI_selection_p_t select, void* user_data)
    {
    int errorCode = 0;
    int num_triples = 1;
    UF_UI_mask_t mask_triples[] = { UF_solid_type,UF_solid_face_subtype, UF_UI_SEL_FEATURE_CYLINDRICAL_FACE };
    errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC, num_triples, mask_triples);
    if ((UF_UI_set_sel_procs(select, select_filter_proc_fn, NULL, user_data)) == 0)
    {
    return UF_UI_SEL_SUCCESS;
    }
    else
    {
    return UF_UI_SEL_FAILURE;
    }
    }



    过滤
     1 //selection控件设置过滤类型
     2 void  SetSelectionType(NXOpen::BlockStyler::SelectObject* selectionID)
     3 {
     4 //设置过滤
     5 Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
     6 std::vector<Selection::MaskTriple> maskArray;
     7 //maskArray.push_back(Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, UF_UI_SEL_FEATURE_SOLID_BODY )); // 实体
     8 //maskArray.push_back(Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE)); //
     9 maskArray.push_back(Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_PLANAR_FACE)); //平面
    10 //maskArray.push_back(Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE)); //11 //maskArray.push_back(Selection::MaskTriple( UF_component_type, 0, 0));  //组件
    12 //maskArray.push_back(Selection::MaskTriple( UF_point_type, 0, 0 ));  
    13 //maskArray.push_back(Selection::MaskTriple( UF_line_type, 0, 0 ));  // 线
    14 //maskArray.push_back(Selection::MaskTriple( UF_circle_type, 0, 0 ));  //圆弧
    15 //maskArray.push_back(Selection::MaskTriple( UF_spline_type, 0, 0 ));  
    16 //maskArray.push_back(Selection::MaskTriple( UF_coordinate_system_type, 0, 0 ));  
    17 //maskArray.push_back(Selection::MaskTriple( UF_datum_axis_type, 0, 0 ));  
    18 //maskArray.push_back(Selection::MaskTriple( UF_datum_plane_type, 0, 0 ));  
    19 //maskArray.push_back(Selection::MaskTriple( UF_plane_type, 0, 0 ));  
    20 //maskArray.push_back(Selection::MaskTriple( UF_axis_type, 0, 0 ));      
    21 //maskArray.push_back(Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ));   // 制图对象
    22 selectionID->GetProperties()->SetSelectionFilter("SelectionFilter", action, maskArray);
    23 }

     NXOpen控件过滤

     1 std::vector<NXOpen::Selection::MaskTriple> selectionfilter(1);
     2         NXOpen::Selection::MaskTriple  maskTriple1 ;
     3         maskTriple1.Type = UF_solid_type;
     4         maskTriple1.Subtype = UF_solid_face_subtype;
     5         maskTriple1.SolidBodySubtype = UF_UI_SEL_FEATURE_ANY_FACE;
     6         selectionfilter.push_back(maskTriple1);
     7 
     8         PropertyList *selectionToolFaceProps = selectionToolFace->GetProperties();
     9         selectionToolFaceProps->SetSelectionFilter("SelectionFilter", NXOpen::Selection::SelectionAction::SelectionActionClearAndEnableSpecific, selectionfilter);
    10         delete selectionToolFaceProps;
    11         selectionToolFaceProps = NULL;

     控件不过滤

    1             PropertyList* selectionObjProps = selectionObj->GetProperties();
    2             std::vector<TaggedObject*> selObjs;
    3             selObjs = selectionObjProps->GetTaggedObjectVector("SelectedObjects");
    4             delete selectionObjProps;
    5             selectionObjProps = NULL;
  • 相关阅读:
    linux 网络编程比较好的文章
    linux 命令
    感冒了
    aa
    111
    仿京东(我的商城)鼠标上去弹出层效果
    仿汽车之家搜索页价格签区间(鼠标拖拽同时tip提示)
    关于DW 打不开后缀名为.ftl的文件 配置方法
    客户端与服务器段的交互 通过json
    jquery 阻止事件冒泡
  • 原文地址:https://www.cnblogs.com/liuxiaoqing1/p/12863429.html
Copyright © 2020-2023  润新知