コード例 #1
0
        /// <summary>
        /// 创建ID符号
        /// </summary>
        public static NXOpen.Tag CreateIdSymbol(string text, Snap.Position origin, Snap.Position pos, NXOpen.Tag view, NXOpen.Tag objectTag)
        {
            var theUFSession = NXOpen.UF.UFSession.GetUFSession();
            var dd           = new NXOpen.UF.UFDrf.SymbolPreferences();

            theUFSession.Drf.AskSymbolPreferences(ref dd);
            dd.id_symbol_size = 6;
            theUFSession.Drf.SetSymbolPreferences(ref dd);

            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;

            var result = NXOpen.Tag.Null;

            theUFSession.Drf.CreateIdSymbol(NXOpen.UF.UFDrf.IdSymbolType.SymCircle, text, "",
                                            origin.Array, NXOpen.UF.UFDrf.LeaderMode.WithLeader, NXOpen.UF.UFDrf.LeaderAttachType.LeaderAttachObject,
                                            ref object1,
                                            pos.Array,
                                            out result
                                            );

            return(result);
        }
コード例 #2
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);
        }
コード例 #3
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);
        }
コード例 #4
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);
    }
コード例 #5
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);
        }
コード例 #6
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);
        }