1 //选择对象控件设置过滤 2 Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific; 3 std::vector<Selection::MaskTriple> maskArray(1); 4 maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_solid_body_subtype, UF_UI_SEL_FEATURE_SOLID_BODY); // Bodies 5 selection0->GetProperties()->SetSelectionFilter("SelectionFilter", action, maskArray); 6 /* 7 maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces 8 maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges 9 maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components 10 maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines 11 maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects 12 maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_solid_edge_subtype, UF_UI_SEL_FEATURE_CIRCULAR_EDGE); // 选择圆边 13 maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_solid_face_subtype, UF_UI_SEL_FEATURE_CYLINDRICAL_FACE); // 选择圆面 14 */ 15 16 17 //设置多选还是单选,Multiple=多选,Single=单选 18 selection0->SetSelectModeAsString("Multiple"); 19 20 //设置选择范围:3-整个装配 10-仅工作部件 11-装配和工作 21 selection0->GetProperties()->SetEnum("MaximumScope", 10); 22 23 Caesar卢尚宇 24 202年2月13日
2020年6月1日补充
selection_Track->Focus();//设置选择对象控件停在当前,不自动跳到下一个选择控件
2021年10月17日补充
获得选择对象控件当前点击位置处的点
NXOpen::Point3d pick_point = selection0->PickPoint(); //输入X向量Y向量输出一个3*3矩阵 double XVec[3] = {0.0, 0.0, 1.0}; double YVec[3] = {0.0, 1.0, 0.0}; double Mtx[9]; UF_MTX3_initialize(XVec, YVec, Mtx); //创建一个3 x 3矩阵 tag_t MatrixID = NULL_TAG; UF_CSYS_create_matrix(Mtx, &MatrixID); //创建CSYS坐标系 double CsysOrigin[3] = {pick_point.X, pick_point.Y, pick_point.Z}; tag_t CsysId = NULL_TAG; UF_CSYS_create_csys(CsysOrigin, MatrixID, &CsysId);