用选择对象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}");