Example #1
0
        public static List <Snap.Position> GetBorderPoint(NXOpen.Drawings.DraftingView view, Snap.NX.Body steel)
        {
            var box  = steel.Box;
            var list = new List <Snap.Position>();
            var xs   = new List <double> {
                box.MinX, box.MaxX
            };
            var ys = new List <double> {
                box.MinY, box.MaxY
            };
            var zs = new List <double> {
                box.MinZ, box.MaxZ
            };

            xs.ForEach(x =>
            {
                ys.ForEach(y =>
                {
                    zs.ForEach(z =>
                    {
                        list.Add(new Snap.Position(x, y, z));
                    });
                });
            });

            return(GetBorderPoint(view, list));
        }
Example #2
0
        public static List <Snap.Position> GetBorderPoint(NXOpen.Drawings.DraftingView view, List <Snap.NX.Face> faces)
        {
            var list = new List <Snap.Position>();

            faces.ForEach(u =>
            {
                list.AddRange(u.Box.Corners.Distinct());
            });
            return(GetBorderPoint(view, list));
        }
Example #3
0
        /// <summary>
        ///  获取边界尺寸
        /// </summary>
        public static NXOpen.Point2d GetBorderSize(this NXOpen.Drawings.DraftingView view)
        {
            var view_borders = new double[4];

            NXOpen.UF.UFSession.GetUFSession().Draw.AskViewBorders(view.Tag, view_borders);
            var size = new NXOpen.Point2d();

            size.Y = Math.Abs(view_borders[3] - view_borders[1]);
            size.X = Math.Abs(view_borders[2] - view_borders[0]);
            return(size);
        }
Example #4
0
        /// <summary>
        /// 获取工程图中的边框
        /// </summary>
        public static List <Snap.Position> GetDrawBorderPoint(NXOpen.Drawings.DraftingView view, Snap.NX.Body steel)
        {
            var ufSession    = NXOpen.UF.UFSession.GetUFSession();
            var borderPoints = GetBorderPoint(view, steel);
            var tempMap      = new double[] { 0, 0 };
            var temPoints    = new List <Snap.Position>();

            borderPoints.ForEach(u => {
                ufSession.View.MapModelToDrawing(view.Tag, u.Array, tempMap);
                var borderPointMTD = tempMap.ToArray();
                temPoints.Add(new Snap.Position(borderPointMTD[0], borderPointMTD[1]));
            });
            return(temPoints);
        }
Example #5
0
        static List <Snap.Position> GetBorderPoint(NXOpen.Drawings.DraftingView view, List <Snap.Position> listPos)
        {
            var    result    = new List <Snap.Position>();
            var    ufSession = NXOpen.UF.UFSession.GetUFSession();
            double minX      = double.MaxValue;
            double maxX      = double.MinValue;
            double minY      = double.MaxValue;
            double maxY      = double.MinValue;

            listPos.ForEach(u =>
            {
                var tempMap = new double[] { 0, 0 };
                ufSession.View.MapModelToDrawing(view.Tag, u.Array, tempMap);
                minX = Math.Min(tempMap[0], minX);
                maxX = Math.Max(tempMap[0], maxX);
                minY = Math.Min(tempMap[1], minY);
                maxY = Math.Max(tempMap[1], maxY);
            });

            var xs = new List <double> {
                minX, maxX
            };
            var ys = new List <double> {
                minY, maxY
            };

            xs.ForEach(x =>
            {
                ys.ForEach(y =>
                {
                    var model_pt = new double[] { 0, 0, 0 };
                    ufSession.View.MapDrawingToModel(view.Tag, new double[] { x, y }, model_pt);
                    result.Add(new Snap.Position(model_pt));
                });
            });
            return(result);
        }
Example #6
0
        public static Snap.NX.NXObject GetViewBorder(EdmDraw.ViewBorderType borderType, NXOpen.Drawings.DraftingView view)
        {
            Snap.NX.NXObject result          = null;
            Snap.Position    viewCenterPoint = view.GetDrawingReferencePoint();
            var viewBorderSize = view.GetBorderSize();

            switch (borderType)
            {
            case EdmDraw.ViewBorderType.Right:
            {
                Snap.Position xLeft = viewCenterPoint;
                xLeft.X += viewBorderSize.X / 2;
                xLeft.Y += viewBorderSize.Y / 2;
                Snap.Position xRight = viewCenterPoint;
                xRight.X += viewBorderSize.X / 2;
                xRight.Y -= viewBorderSize.Y / 2;
                result    = CreateNxObject <Snap.NX.Line>(() => { return(Snap.Create.Line(xLeft, xRight)); }, view.Tag, false);
                break;
            }

            case EdmDraw.ViewBorderType.Top:
            {
                Snap.Position xLeft = viewCenterPoint;
                xLeft.X -= viewBorderSize.X / 2;
                xLeft.Y += viewBorderSize.Y / 2;
                Snap.Position xRight = viewCenterPoint;
                xRight.X += viewBorderSize.X / 2;
                xRight.Y += viewBorderSize.Y / 2;
                result    = CreateNxObject <Snap.NX.Line>(() => { return(Snap.Create.Line(xLeft, xRight)); }, view.Tag, false);
                break;
            }
            }
            return(result);
        }