Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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();
            }
        }