NX选择对象设置过滤

用选择对象Selection在有特殊选择要求的情况下需要设置选择过滤。

需要设置两个变量

1.NXOpen.Selection.SelectionAction maskAction = NXOpen.Selection.SelectionAction.ClearAndEnableSpecific;(指示选择对象时要执行的操作的类型)

 

2.设置选择的具体类型过滤

NXOpen.Selection.MaskTriple[] maskTriples = new Selection.MaskTriple[1];

//以下两种类型是在OBJECT_TYPES中(子类型填-1则表示多种情况皆存在)

maskTriples[0].Type = UF_solid_type;

maskTriples[0].Subtype = -1;
 
//以下实体子类型在UF_UI中  -1--130
maskTriples[0].SolidBodySubtype =   
UF_UI_SEL_FEATURE_ANY_EDGE ;
//最后进行设置
 selection0.SetSelectionFilter(maskAction, maskTriples);
 
另外这里记录一种取选择对象类型和子类型分方法
 
            var obj = theUI.SelectionManager.GetSelectedTaggedObject(0);
            int type, subtype;
            NXOpen.UF.UFSession.GetUFSession().Obj.AskTypeAndSubtype(obj.Tag, out type, out subtype);
            theUI.NXMessageBox.Show("Type Subtype", NXMessageBox.DialogType.Information,
                $"Type:{type} Subtype:{subtype}");

 

 

 

 

 

你可能感兴趣的:(NX二次开发)