Esempio n. 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);
        }
Esempio n. 2
0
    public void Test(DrawingSheet ds)
    {
        var workPart = Snap.Globals.WorkPart;
        var baseView = CreateTextView(ds, workPart.NXOpenPart.ModelingViews.FindObject("FRONT").Tag, new Snap.Position(110, 140));

        var point        = workPart.Points.FirstOrDefault();
        var theUFSession = NXOpen.UF.UFSession.GetUFSession();

        //创建坐标标注的原点
        NXOpen.UF.UFDrf.Object object1 = new NXOpen.UF.UFDrf.Object();

        object1.object_tag            = point.NXOpenTag;
        object1.object_view_tag       = baseView;
        object1.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
        object1.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

        var orginTag = NXOpen.Tag.Null;

        theUFSession.Drf.CreateOrdorigin(ref object1, 1, 1, 2, "test", out orginTag);

        //创建坐标标注的尺寸边缘(留边)
        NXOpen.UF.UFDrf.Object object2 = new NXOpen.UF.UFDrf.Object();
        Tag top = Tag.Null;

        theUFSession.Obj.CycleByName("TOPEDGE", ref top);
        object2.object_tag            = top;
        object2.object_view_tag       = baseView;
        object2.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
        object2.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

        var marginTag = NXOpen.Tag.Null;

        theUFSession.Drf.CreateOrdmargin(1, orginTag, ref object2, null, null, 0, out marginTag);


        NXOpen.UF.UFDrf.Object object3 = new NXOpen.UF.UFDrf.Object();
        object3.object_tag            = point.NXOpenTag;
        object3.object_view_tag       = baseView;
        object3.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
        object3.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

        NXOpen.UF.UFDrf.Text text     = new NXOpen.UF.UFDrf.Text();
        double[]             origin3d = { 10, 10, 0 };
        NXOpen.Tag           result;
        theUFSession.Drf.CreateOrddimension(marginTag, 1, ref object3, 0, 50, ref text, 2, origin3d, out result);
    }
Esempio n. 3
0
        /// <summary>
        /// 创建坐标尺寸
        /// </summary>
        static NXOpen.Tag CreateOrddimension(int type, NXOpen.Tag baseView, NXOpen.Tag originObj, NXOpen.Tag marginObj, NXOpen.Tag dimensionObj, double dAngle = 0, double dDistance = 50, Snap.Position?origin = null)
        {
            var theUFSession = NXOpen.UF.UFSession.GetUFSession();

            //创建坐标标注的原点
            NXOpen.UF.UFDrf.Object object1 = new NXOpen.UF.UFDrf.Object();

            object1.object_tag            = originObj;
            object1.object_view_tag       = baseView;
            object1.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
            object1.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

            var orginTag = NXOpen.Tag.Null;

            theUFSession.Drf.CreateOrdorigin(ref object1, 1, 1, 2, "test", out orginTag);

            //创建坐标标注的尺寸边缘(留边)
            NXOpen.UF.UFDrf.Object object2 = new NXOpen.UF.UFDrf.Object();
            object2.object_tag            = marginObj;
            object2.object_view_tag       = baseView;
            object2.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
            object2.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

            var marginTag = NXOpen.Tag.Null;

            theUFSession.Drf.CreateOrdmargin(type, orginTag, ref object2, null, null, 0, out marginTag);


            NXOpen.UF.UFDrf.Object object3 = new NXOpen.UF.UFDrf.Object();
            object3.object_tag            = dimensionObj;
            object3.object_view_tag       = baseView;
            object3.object_assoc_type     = NXOpen.UF.UFDrf.AssocType.EndPoint;
            object3.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point;

            NXOpen.UF.UFDrf.Text text     = new NXOpen.UF.UFDrf.Text();
            double[]             origin3d = (origin ?? Snap.Position.Origin).Array;
            NXOpen.Tag           result;
            theUFSession.Drf.CreateOrddimension(marginTag, type, ref object3, dAngle, dDistance, ref text, 2, origin3d, out result);

            return(result);
        }
Esempio n. 4
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);

            return(result);
        }