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)); }
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)); }
/// <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); }
/// <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); }
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); }
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); }