public override List <SelectionIntentRule> GetSelectionRule() { List <SelectionIntentRule> sir = new List <SelectionIntentRule>(); if (faces.Count != 0) { ISelectionRule rule = new SelectionFaceRule(faces); try { SelectionIntentRule sr = rule.CreateSelectionRule(); sir.Add(sr); } catch { ClassItem.WriteLogFile("选择面收集器错误!"); return(null); } } if (this.nextSelection != null) { List <SelectionIntentRule> tmpe = this.nextSelection.GetSelectionRule(); if (tmpe.Count != 0) { sir.AddRange(tmpe); } } return(sir); }
/// <summary> /// 创建面链 /// </summary> /// <param name="face"></param> /// <returns></returns> public static List <Body> ExtractFaceBuilder(params Face[] face) { Part workPart = theSession.Parts.Work; NXOpen.Features.ExtractFaceBuilder extractFaceBuilder1; extractFaceBuilder1 = workPart.Features.CreateExtractFaceBuilder(null); extractFaceBuilder1.FaceOption = NXOpen.Features.ExtractFaceBuilder.FaceOptionType.FaceChain; extractFaceBuilder1.FeatureOption = NXOpen.Features.ExtractFaceBuilder.FeatureOptionType.SeparateFeatureForEachBody; extractFaceBuilder1.ParentPart = NXOpen.Features.ExtractFaceBuilder.ParentPartType.WorkPart; extractFaceBuilder1.Associative = true; extractFaceBuilder1.FixAtCurrentTimestamp = false; extractFaceBuilder1.HideOriginal = false; extractFaceBuilder1.DeleteHoles = false; extractFaceBuilder1.InheritDisplayProperties = false; extractFaceBuilder1.Type = NXOpen.Features.ExtractFaceBuilder.ExtractType.Face; ISelectionRule rule = new SelectionFaceRule(face.ToList()); NXOpen.SelectionIntentRule[] rules = { rule.CreateSelectionRule() }; extractFaceBuilder1.FaceChain.ReplaceRules(rules, false); try { return(extractFaceBuilder1.CommitFeature().GetBodies().ToList()); } catch (NXException ex) { // LogMgr.WriteLog("ExtractFaceBuilder:ExtraetFace " + ex.Message); throw ex; } finally { extractFaceBuilder1.Destroy(); } }