Beispiel #1
0
        /// <summary>
        /// 创建垂直尺寸
        /// </summary>
        public static NXOpen.Tag CreatePerpendicularDim(NXOpen.Tag draw_view_tag, NXOpen.Tag o1, NXOpen.Tag o2, Snap.Position origin)
        {
            var theUFSession = NXOpen.UF.UFSession.GetUFSession();

            NXOpen.UF.UFDrf.Object object1 = new NXOpen.UF.UFDrf.Object();

            object1.object_tag            = o1;
            object1.object_view_tag       = draw_view_tag;
            object1.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
            object1.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

            NXOpen.UF.UFDrf.Object object2 = new NXOpen.UF.UFDrf.Object();
            object2.object_tag            = o2;
            object2.object_view_tag       = draw_view_tag;
            object2.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
            object2.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

            NXOpen.UF.UFDrf.Text text = new NXOpen.UF.UFDrf.Text();

            NXOpen.Tag result;
            theUFSession.Drf.CreatePerpendicularDim(ref object1, ref object2, ref text, new double[] { origin.X, origin.Y, 0 }, out result);
            var environmentData = new DraftingEnvironmentData();

            theUFSession.Drf.AskObjectPreferences(result, environmentData.mpi, environmentData.mpr, out environmentData.radiusValue, out environmentData.diameterValue);
            environmentData.mpi[9] = 3;
            theUFSession.Drf.SetObjectPreferences(result, environmentData.mpi, environmentData.mpr, environmentData.radiusValue, environmentData.diameterValue);
            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// 创建标签
        /// </summary>
        public static NXOpen.Tag CreateLabel(string text, Snap.Position origin, Snap.Position pos, NXOpen.Tag view, NXOpen.Tag objectTag)
        {
            NXOpen.Tag result       = NXOpen.Tag.Null;
            var        theUFSession = NXOpen.UF.UFSession.GetUFSession();

            NXOpen.UF.UFDrf.Object object1 = new NXOpen.UF.UFDrf.Object();
            object1.object_tag            = objectTag;
            object1.object_view_tag       = view;
            object1.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
            object1.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

            theUFSession.Drf.CreateLabel(1, new string[] { text }, origin.Array, NXOpen.UF.UFDrf.LeaderAttachType.LeaderAttachObject,
                                         ref object1,
                                         pos.Array,
                                         out result);
            var eData = new DraftingEnvironmentData();
            var mpi   = eData.mpi;
            var mpr   = eData.mpr;

            theUFSession.Drf.AskObjectPreferences(result, eData.mpi, eData.mpr, out eData.radiusValue, out eData.diameterValue);
            mpi[1]  = 1;
            mpi[9]  = 1;
            mpi[10] = 2;
            mpi[11] = 4;
            mpi[29] = 1;
            mpi[39] = 1;
            mpi[94] = 0;
            mpr[9]  = 3.0;
            mpr[10] = 0.001;
            theUFSession.Drf.SetObjectPreferences(result, eData.mpi, eData.mpr, eData.radiusValue, eData.diameterValue);
            return(result);
        }
Beispiel #3
0
        public static void SetToleranceType(NXOpen.Tag tag)
        {
            var ufSession = NXOpen.UF.UFSession.GetUFSession();
            var eData     = new DraftingEnvironmentData();

            ufSession.Drf.AskObjectPreferences(tag, eData.mpi, eData.mpr, out eData.radiusValue, out eData.diameterValue);
            //设置公差类型 首选项→尺寸→公差→类型
            eData.mpi[6] = 8;
            ufSession.Drf.SetObjectPreferences(tag, eData.mpi, eData.mpr, eData.radiusValue, eData.diameterValue);
            //Session theSession = Session.GetSession();
            //Part workPart = theSession.Parts.Work;
            //Part displayPart = theSession.Parts.Display;
            //var obj = NXOpen.Utilities.NXObjectManager.Get(tag) as NXOpen.Annotations.OrdinateDimension;
            //if (obj != null)
            //{
            //    var ordinateDimensionBuilder1 = workPart.Dimensions.CreateOrdinateDimensionBuilder(obj);
            //    //尺寸样式
            //    ordinateDimensionBuilder1.Style.DimensionStyle.ToleranceType = NXOpen.Annotations.ToleranceType.Basic;

            //    ordinateDimensionBuilder1.Commit();
            //    ordinateDimensionBuilder1.Destroy();
            //}
        }