Exemple #1
0
        // Helper functions to zoom using different techniques


        // Zoom using a view object


        private static void ZoomWin(

            Editor ed, Point3d min, Point3d max

            )
        {
            Point2d min2d = new Point2d(min.X, min.Y);

            Point2d max2d = new Point2d(max.X, max.Y);


            ViewTableRecord view =

                new ViewTableRecord();


            view.CenterPoint =

                min2d + ((max2d - min2d) / 2.0);

            view.Height = max2d.Y - min2d.Y;

            view.Width = max2d.X - min2d.X;

            ed.SetCurrentView(view);
        }
Exemple #2
0
        private void gotoPoint(Button btn)
        {
            Entity entX = null;

            using (BaseObjs._acadDoc.LockDocument())
            {
                Handle h = btn.Content.ToString().stringToHandle();
                entX = h.getEnt();

                pnt = (CogoPoint)entX;
                Point3d         pnt3dIns = pnt.Location;
                ViewTableRecord vtr      = new ViewTableRecord();
                vtr.CenterPoint = new Point2d(pnt3dIns.X, pnt3dIns.Y);
                vtr.Height      = 30;
                vtr.Width       = 50;
                BaseObjs._editor.SetCurrentView(vtr);

                pnt.Highlight();
                BaseObjs.acadActivate();

                ObjectId[] idsPntArr = new ObjectId[] { pnt.ObjectId };

                List <ObjectId> idPnt = Base_Tools45.Select.getEntityatPoint(pnt3dIns, typeof(CogoPoint), "*");
                ed.SelectionAdded += ed_SelectionAdded;
                proceed            = true;
            }
        }
        public void ZoomExtents(Point3d minPoint, Point3d maxPoint)
        {
            try
            {
                Document        document    = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.CurrentDocument;
                Editor          editor      = document.Editor;
                ViewTableRecord currentView = editor.GetCurrentView();
                double          num         = currentView.Width / currentView.Height;
                double          num2        = maxPoint.X - minPoint.X;
                double          num3        = maxPoint.Y - minPoint.Y;
                if (num2 > num3 * num)
                {
                    num3 = num2 / num;
                }
                Point2d centerPoint = new Point2d((maxPoint.X + minPoint.X) / 2.0, (maxPoint.Y + minPoint.Y) / 2.0);
                currentView.Height      = (num3);
                currentView.Width       = (num2);
                currentView.CenterPoint = (centerPoint);

                editor.SetCurrentView(currentView);
            }
            catch
            {
            }
        }
        public static PromptSelectionResult SelectByPolyline(this Editor ed, Polyline pline, PolygonSelectionMode mode, params TypedValue[] filter)
        {
            if (ed == null)
            {
                throw new ArgumentNullException("ed");
            }
            if (pline == null)
            {
                throw new ArgumentNullException("pline");
            }
            Matrix3d          wcs     = ed.CurrentUserCoordinateSystem.Inverse();
            Point3dCollection polygon = new Point3dCollection();

            for (int i = 0; i < pline.NumberOfVertices; i++)
            {
                polygon.Add(pline.GetPoint3dAt(i).TransformBy(wcs));
            }
            PromptSelectionResult result;

            using (ViewTableRecord curView = ed.GetCurrentView())
            {
                ed.Zoom(pline.GeometricExtents);
                if (mode == PolygonSelectionMode.Crossing)
                {
                    result = ed.SelectCrossingPolygon(polygon, new SelectionFilter(filter));
                }
                else
                {
                    result = ed.SelectWindowPolygon(polygon, new SelectionFilter(filter));
                }
                ed.SetCurrentView(curView);
            }
            return(result);
        }
        public void ResetViewTwist()
        {
            var doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            var db  = doc.Database;

            List <TypedValue> tvs = new List <TypedValue>();

            tvs.Add(new TypedValue((int)DxfCode.Start, "DIMENSION"));
            SelectionFilter filter = new SelectionFilter(tvs.ToArray());

            PromptSelectionResult selRes = doc.Editor.GetSelection(filter);

            if (selRes.Status == PromptStatus.OK)
            {
                using (Transaction tr = db.TransactionManager.StartTransaction())
                    using (ViewTableRecord view = doc.Editor.GetCurrentView())
                    {
                        try
                        {
                            foreach (ObjectId id in selRes.Value.GetObjectIds())
                            {
                                Dimension dim = tr.GetObject(id, OpenMode.ForWrite) as Dimension;
                                dim.HorizontalRotation = view.ViewTwist;
                            }
                        }
                        catch (System.Exception ex)
                        {
                            MessageBox.Show("Error: " + ex.ToString(), "XCOM", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        tr.Commit();
                    }
            }
        }
Exemple #6
0
        void FillViewCombo(bool bFillCombo)
        {
            if (bFillCombo)
            {
                comboBoxPageSetupViews.Items.Clear();
                using (ViewTable pViewTable = (ViewTable)m_plotStg.Database.ViewTableId.GetObject(OpenMode.ForRead))
                {
                    foreach (ObjectId objView in pViewTable)
                    {
                        using (ViewTableRecord pView = (ViewTableRecord)objView.GetObject(OpenMode.ForRead))
                        {
                            if (pView.IsPaperspaceView != isModelSpacePageSetup())
                            {
                                comboBoxPageSetupViews.Items.Add(pView.Name);
                            }
                        }
                    }
                }
            }
            comboBoxPageSetupViews.Enabled = (comboBoxPageSetupViews.Items.Count > 0);

            if (comboBoxPageSetupViews.Items.Count > 0)
            {
                comboBoxPageSetupViews.SelectedItem = m_plotStg.PlotViewName;
            }
        }
Exemple #7
0
 private void MoveView(Point3D Target, ViewTableRecord vtr)
 {
     if (Target != null)
     {
         //vtr.Target = new Point3d(Target.X, Target.Y, Target.Z);
         vtr.CenterPoint = new Point2d(5 * Target.X, -5 * Target.Y);
     }
 }
Exemple #8
0
        public AutoCADManager()
        {
            Document        doc = AcadApp.DocumentManager.MdiActiveDocument;
            ViewTableRecord vtr = doc.Editor.GetCurrentView();

            _initialView = vtr.ViewDirection;
            InitializeSyncControl();
        }
Exemple #9
0
        zoomWindow(Point2d min, Point2d max)
        {
            ViewTableRecord view = new ViewTableRecord();

            view.CenterPoint = min + (max - min) / 2;
            view.Height      = max.Y - min.Y;
            view.Width       = max.X - min.X;
            BaseObjs._editor.SetCurrentView(view);
        }
Exemple #10
0
        public static void ZoomWin(Editor ed, Point3d pt1, Point3d pt2)
        {
            ViewTableRecord view =
                new ViewTableRecord();

            view.CenterPoint = new Point2d((pt1.X + pt2.X) / 2, (pt1.Y + pt2.Y) / 2);
            view.Height      = Math.Abs(pt1.Y - pt2.Y);
            view.Width       = Math.Abs(pt1.X - pt2.X);
            ed.SetCurrentView(view);
        }
Exemple #11
0
        /// <summary>
        /// 比例缩放视图
        /// </summary>
        /// <param name="ed">命令行对象</param>
        /// <param name="scale">缩放比例</param>
        public static void ZoomScaled(this Editor ed, double scale)
        {
            //得到当前视图
            ViewTableRecord view = ed.GetCurrentView();

            //修改视图的宽度和高度
            view.Width  /= scale;
            view.Height /= scale;
            ed.SetCurrentView(view);//更新当前视图
        }
Exemple #12
0
        // Orbit by angle around axis
        public void Orbit(Vector3d axis, double angle)
        {
            // Adjust the ViewTableRecord
            _vtr = _doc.Editor.GetCurrentView();

            _vtr.ViewDirection = _vtr.ViewDirection.TransformBy(Matrix3d.Rotation(angle, axis, Point3d.Origin));
            // Set it as the current view

            _doc.Editor.SetCurrentView(_vtr);
        }
Exemple #13
0
        // Pan in the specified direction
        public void Pan(double leftRight, double upDown)
        {
            _vtr = _doc.Editor.GetCurrentView();

            // Adjust the ViewTableRecord
            _vtr.CenterPoint = _vtr.CenterPoint + new Vector2d(leftRight, upDown);

            // Set it as the current view
            _doc.Editor.SetCurrentView(_vtr);
        }
Exemple #14
0
        private void Zoom(Point3d ptCenter, double factor)
        {
            //Extents3d extents;
            Editor   ed  = PublicMethod.Instance.acDoc.Editor;
            Document doc = ed.Document;
            Database db  = doc.Database;

            //Point3d ptMin=new Point3d();
            //Point3d  ptMax = new Point3d();
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                ViewTableRecord view = ed.GetCurrentView();
                //Matrix3d matWCS2DCS = view.Wcs2Dcs();
                //if (ptCenter.DistanceTo(Point3d.Origin) != 0)
                //{
                //    ptMin = new Point3d(ptCenter.X - view.Width / 2, ptCenter.Y - view.Height / 2, 0);
                //    ptMax = new Point3d(ptCenter.X + view.Width / 2, ptCenter.Y + view.Height / 2, 0);
                //}
                //using (Line line = new Line(ptMin, ptMax))
                //{
                //    extents = new Extents3d(line.GeometricExtents.MinPoint, line.GeometricExtents.MaxPoint);
                //}
                //double viewRatio = view.Width / view.Height;
                //extents.TransformBy(matWCS2DCS);
                //double width, height;
                //Point2d newCenter;
                //if (ptCenter.DistanceTo(Point3d.Origin) != 0)
                //{
                //    width = view.Width;
                //    height = view.Height;
                //    if (factor == 0)
                //    {
                //        ptCenter = ptCenter.TransformBy(matWCS2DCS);
                //    }
                //    newCenter = new Point2d(ptCenter.X, ptCenter.Y);
                //}
                //else
                //{
                //    width = extents.MaxPoint.X - extents.MinPoint.X;
                //    height = extents.MaxPoint.Y - extents.MinPoint.Y;
                //    newCenter = new Point2d((extents.MaxPoint.X + extents.MinPoint.X) * 0.5, (extents.MaxPoint.Y + extents.MinPoint.Y) * 0.5);
                //}
                //if (width > height * viewRatio) height = width / viewRatio;
                //if (factor != 0)
                //{
                //    view.Height = factor;
                //    view.Width =  factor;
                //}
                view.CenterPoint = new Point2d(ptCenter.X, ptCenter.Y);
                view.Height      = factor;
                view.Width       = factor;
                ed.SetCurrentView(view);
                trans.Commit();
            }
        }
Exemple #15
0
        zoomWindow(Extents3d ex3d)
        {
            Point2d         min  = new Point2d(ex3d.MinPoint.X, ex3d.MinPoint.Y);
            Point2d         max  = new Point2d(ex3d.MaxPoint.X, ex3d.MaxPoint.Y);
            ViewTableRecord view = new ViewTableRecord();

            view.CenterPoint = min + (max - min) / 2;
            view.Height      = max.Y - min.Y;
            view.Width       = max.X - min.X;
            BaseObjs._editor.SetCurrentView(view);
        }
Exemple #16
0
 public static Matrix3d EyeToWorld([NotNull] this ViewTableRecord view)
 {
     if (view == null)
     {
         throw new ArgumentNullException(nameof(view));
     }
     return
         (Matrix3d.Rotation(-view.ViewTwist, view.ViewDirection, view.Target) *
          Matrix3d.Displacement(view.Target - Point3d.Origin) *
          Matrix3d.PlaneToWorld(view.ViewDirection));
 }
Exemple #17
0
 private void CentrarePeSenzor()
 {
     if (Senzor != null && VTRcur != null)
     {
         double[] SenzorXs = { Senzor.GetPointAt(0).X, Senzor.GetPointAt(1).X, Senzor.GetPointAt(2).X };
         double[] SenzorYs = { Senzor.GetPointAt(0).Y, Senzor.GetPointAt(1).Y, Senzor.GetPointAt(2).Y };
         VTRcur             = ed.GetCurrentView() as ViewTableRecord;
         VTRcur.CenterPoint = new Point2d(SenzorXs.Average(), SenzorYs.Average());
         ed.WriteMessage("\nCurrent CenterPoint: {0}", VTRcur.CenterPoint);
         ed.SetCurrentView(VTRcur);
     }
 }
Exemple #18
0
        Stream(ArrayList data, ViewTableRecord rec)
        {
            data.Add(new Snoop.Data.ClassSeparator(typeof(ViewTableRecord)));

            data.Add(new Snoop.Data.String("Cateogry name", rec.CategoryName));
            data.Add(new Snoop.Data.Bool("Is paper space view", rec.IsPaperspaceView));
            data.Add(new Snoop.Data.Bool("Is UCS assoc. to view", rec.IsUcsAssociatedToView));
            data.Add(new Snoop.Data.Bool("View assoc. to viewport", rec.ViewAssociatedToViewport));
            data.Add(new Snoop.Data.String("Layer state", rec.LayerState));
            data.Add(new Snoop.Data.ObjectId("Layout", rec.Layout));
            data.Add(new Snoop.Data.ObjectId("Live section ID", rec.LiveSection));
            data.Add(new Snoop.Data.Bitmap("Thumbnail", rec.Thumbnail));
        }
Exemple #19
0
        /// <summary>
        /// Zoom using a view object
        /// </summary>
        /// <param name="ed"></param>
        /// <param name="ext"></param>
        /// <param name="factor"></param>
        public static void ZoomToWin(this Editor ed, Extents3d ext, double factor = 1.0)
        {
            var min2D = new Point2d(ext.MinPoint.X, ext.MinPoint.Y);
            var max2D = new Point2d(ext.MaxPoint.X, ext.MaxPoint.Y);

            using (var view = new ViewTableRecord())
            {
                view.CenterPoint = min2D + ((max2D - min2D) / 2.0);
                view.Height      = (max2D.Y - min2D.Y) * factor;
                view.Width       = (max2D.X - min2D.X) * factor;
                ed.SetCurrentView(view);
            }
        }
        public void Zoom()
        {
            ViewTableRecord view = new ViewTableRecord();

            view.Width  = 300;
            view.Height = 300;
            Point3d pt = this.Block.GeometricExtents.MinPoint.MidPoint(this.Block.GeometricExtents.MaxPoint);

            view.CenterPoint = new Point2d(pt.X, pt.Y);
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;

            ed.SetCurrentView(view);
            ed.Regen();
        }
Exemple #21
0
        // Zoom in or out
        public void Zoom(double factor)
        {
            _vtr = _doc.Editor.GetCurrentView();

            // Adjust the ViewTableRecord
            _vtr.Height *= factor;
            _vtr.Width  *= factor;

            // Set it as the current view
            _doc.Editor.SetCurrentView(_vtr);

            // Zoom requires a regen for the gizmos to update
            _doc.Editor.Regen();
        }
Exemple #22
0
        public static void ZoomWin(Editor ed, Point3d min, Point3d max)
        {
            Point2d min2d = new Point2d(min.X, min.Y);
            Point2d max2d = new Point2d(max.X, max.Y);

            ViewTableRecord view = new ViewTableRecord
            {
                CenterPoint = min2d + ((max2d - min2d) / 2.0),
                Height      = max2d.Y - min2d.Y,
                Width       = max2d.X - min2d.X
            };

            ed.SetCurrentView(view);
        }
Exemple #23
0
        // The CommandMethod attribute can be applied to any public  member
        // function of any public class.
        // The function should take no arguments and return nothing.
        // If the method is an intance member then the enclosing class is
        // intantiated for each document. If the member is a static member then
        // the enclosing class is NOT intantiated.
        //
        // NOTE: CommandMethod has overloads where you can provide helpid and
        // context menu.


        private Viewport SetViewport(ViewTableRecord InputView, Point2d BasePoint, int Scale)
        {
            Viewport NewViewport = new Viewport();

            NewViewport.CenterPoint   = new Point3d(BasePoint.X + (InputView.Width / 2) * Scale, BasePoint.Y + (InputView.Height / 2) * Scale, 0);
            NewViewport.Height        = InputView.Height * Scale;
            NewViewport.Width         = InputView.Width * Scale;
            NewViewport.ViewCenter    = InputView.CenterPoint;
            NewViewport.ViewDirection = InputView.ViewDirection;
            NewViewport.ViewHeight    = InputView.Height;
            NewViewport.ViewTarget    = InputView.Target;
            NewViewport.TwistAngle    = InputView.ViewTwist;
            return(NewViewport);
        }
Exemple #24
0
        Stream(ArrayList data, AbstractViewTableRecord rec)
        {
            data.Add(new Snoop.Data.ClassSeparator(typeof(AbstractViewTableRecord)));

            data.Add(new Snoop.Data.Point2d("Center point", rec.CenterPoint));
            data.Add(new Snoop.Data.Distance("Width", rec.Width));
            data.Add(new Snoop.Data.Distance("Height", rec.Height));
            data.Add(new Snoop.Data.Point3d("Target", rec.Target));
            data.Add(new Snoop.Data.Vector3d("View direction", rec.ViewDirection));
            data.Add(new Snoop.Data.Distance("View twist", rec.ViewTwist));
            data.Add(new Snoop.Data.Double("Lens length", rec.LensLength));
            data.Add(new Snoop.Data.Bool("Front clip at eye", rec.FrontClipAtEye));
            data.Add(new Snoop.Data.Distance("Front clip distance", rec.FrontClipDistance));
            data.Add(new Snoop.Data.Distance("Back clip distance", rec.BackClipDistance));
            data.Add(new Snoop.Data.Bool("Front clip enabled", rec.FrontClipEnabled));
            data.Add(new Snoop.Data.Bool("Back clip enabled", rec.BackClipEnabled));
            data.Add(new Snoop.Data.Distance("Elevation", rec.Elevation));
            data.Add(new Snoop.Data.Bool("Perspective enabled", rec.PerspectiveEnabled));
            // data.Add(new Snoop.Data.String("Render mode", rec.RenderMode.ToString()));
            data.Add(new Snoop.Data.Object("UCS", rec.Ucs));
            data.Add(new Snoop.Data.ObjectId("UCS name", rec.UcsName));
            data.Add(new Snoop.Data.String("UCS orthographic", rec.UcsOrthographic.ToString()));
            data.Add(new Snoop.Data.String("View orthographic", rec.ViewOrthographic.ToString()));

            data.Add(new Snoop.Data.Object("Ambient light color", rec.AmbientLightColor));
            data.Add(new Snoop.Data.ObjectId("Background ID", rec.Background));
            data.Add(new Snoop.Data.Double("Brightness", rec.Brightness));
            data.Add(new Snoop.Data.Double("Contrast", rec.Contrast));
            data.Add(new Snoop.Data.Bool("Default lighting on", rec.DefaultLightingOn));
            data.Add(new Snoop.Data.String("Default lighting type", rec.DefaultLightingType.ToString()));
            data.Add(new Snoop.Data.ObjectId("Sun ID", rec.SunId));
            data.Add(new Snoop.Data.ObjectId("Visual style ID", rec.VisualStyleId));

            ViewportTableRecord viewportRec = rec as ViewportTableRecord;

            if (viewportRec != null)
            {
                Stream(data, viewportRec);
                return;
            }

            ViewTableRecord viewRec = rec as ViewTableRecord;

            if (viewRec != null)
            {
                Stream(data, viewRec);
                return;
            }
        }
Exemple #25
0
        public void ViewEntity(Entity ent, double scale)
        {
            Database db = ent.Database;
            Editor   ed = Application.DocumentManager.MdiActiveDocument.Editor;

            using (ViewTableRecord viewtr = new ViewTableRecord())
            {
                Point2d ptMin = new Point2d(ent.GeometricExtents.MinPoint.X, ent.GeometricExtents.MinPoint.Y);
                Point2d ptMax = new Point2d(ent.GeometricExtents.MaxPoint.X, ent.GeometricExtents.MaxPoint.Y);
                viewtr.CenterPoint = new Point2d((ptMin.X + ptMax.X) / 2, (ptMin.Y + ptMax.Y) / 2);
                viewtr.Width       = Math.Abs(ptMax.X - ptMin.X) * scale;
                viewtr.Height      = Math.Abs(ptMax.Y - ptMin.Y) * scale;
                ed.SetCurrentView(viewtr);
            }
        }
Exemple #26
0
        //缩放到对象
        private void zoom_window(Editor ed, Entity en)
        {
            Extents3d       ex = en.GeometricExtents;
            Point3d         p1 = ex.MinPoint;
            Point3d         p2 = ex.MaxPoint;
            double          h  = p2.Y - p1.Y;
            double          w  = p2.X - p1.X;
            ViewTableRecord viewTableRecord = ed.GetCurrentView();

            viewTableRecord.CenterPoint         = new Point2d(p1.X + (w / 2), p1.Y + (h / 2))
            ;            viewTableRecord.Height = h;
            viewTableRecord.Width = w;
            ed.SetCurrentView(viewTableRecord);
            Application.UpdateScreen();
        }
Exemple #27
0
 /// <summary> 在AutoCAD界面中显示出指定的二维矩形范围 </summary>
 public static void ShowExtentsInView(Editor ed, Extents3d ext)
 {
     // 获取当前视图
     using (ViewTableRecord view = ed.GetCurrentView())
     {
         // 不用再手动执行 view.UpgradeOpen();
         view.Height      = ext.MaxPoint.Y - ext.MinPoint.Y; // 界面中显示的测量高度(不是屏幕分辨率的像素高度)
         view.Width       = ext.MaxPoint.X - ext.MinPoint.X;
         view.CenterPoint = new Point2d((ext.MinPoint.X + ext.MaxPoint.X) / 2, (ext.MinPoint.Y + ext.MaxPoint.Y) / 2);
         view.Target      = new Point3d(0, 0, 0);
         //
         // 最后AutoCAD会对指定的矩形框进行缩放,以确保指定的矩形框完全正中地显示在屏幕中。
         ed.SetCurrentView(view);
     }
 }
Exemple #28
0
        public static void SetView(Point3d ptMin, Point3d ptMax, double scale)
        {
            Editor          editor      = Application.DocumentManager.MdiActiveDocument.Editor;
            ViewTableRecord currentView = editor.GetCurrentView();

            currentView.Height = Math.Abs(ptMax.Y - ptMin.Y) * scale;
            currentView.Width  = Math.Abs(ptMax.X - ptMin.X) * scale;
            AbstractViewTableRecord abstractViewTableRecord = currentView;
            Point2d centerPoint;

            centerPoint..ctor((ptMax.X + ptMin.X) / 2.0, (ptMax.Y + ptMin.Y) / 2.0);
            abstractViewTableRecord.CenterPoint = centerPoint;
            editor.SetCurrentView(currentView);
            Application.UpdateScreen();
        }
        /// <summary>
        /// 视口变化
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dwg_ViewChanged(object sender, EventArgs e)
        {
            Document document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.CurrentDocument;

            using (document.LockDocument(DocumentLockMode.ProtectedAutoWrite, null, null, false))
            {
                Editor editor = document.Editor;
                //Size win_size = document.Window.GetSize();
                //Point location = document.Window.GetLocation();
                //editor.WriteMessage("\nwin_size:" + win_size.ToString() + "location:" + location.ToString());

                if (1 == _level || 0 == _level)
                {
                    return;
                }
                ViewTableRecord currentView       = editor.GetCurrentView();
                Point2d         view_center_point = currentView.CenterPoint;
                Size            view_size         = new Size((int)currentView.Width, (int)currentView.Height);
                //editor.WriteMessage("\ncenter_point:" + view_center_point.ToString() + "view_size:" + view_size.ToString());
                Point2d left_down = new Point2d(view_center_point.X - view_size.Width / 2.0, view_center_point.Y - view_size.Height / 2.0);
                Point2d right_up  = new Point2d(view_center_point.X + view_size.Width / 2.0, view_center_point.Y + view_size.Height / 2.0);

                //Point3d center_point3d = (Point3d)Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("VIEWCTR");
                //Point2d size_screen = (Point2d)Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("SCREENSIZE");
                //Size size = new Size((int)size_screen.X, (int)size_screen.Y);
                //Point2d center_point = new Point2d(center_point3d.X, center_point3d.Y);
                //MapTiles.webMercatorBounds(center_point, _level, size, ref left_down, ref right_up);

                //document.Editor.WriteMessage("\n CenterPoint:" + center_point.ToString() + "left_down:" + left_down.ToString() + "right_up:" + right_up.ToString() + "level:" + _level.ToString());
                //RectangleF view_image = new RectangleF();
                //bool is_contain = MapTiles.getIntersects(left_down, right_up, ref view_image);
                //if (!is_contain)
                //{
                //    return;
                //}
                //else
                //{
                //    left_down = new Point2d(view_image.X, view_image.Y-view_image.Height);
                //    right_up = new Point2d(view_image.X+view_image.Width, view_image.Y);
                //    MapTiles.darwBounds(left_down,right_up,Autodesk.AutoCAD.Colors.Color.FromRgb(0,255,0),20,20);

                //}
                int start_row = 0, end_row = 0, start_col = 0, end_col = 0;
                MapTiles.webMercatorTilesFromBound(left_down, right_up, _level, out start_row, out start_col, out end_row, out end_col);

                addImage(document, MapTiles.webMercatorResolution(_level), start_row, end_row, start_col, end_col);
            }
        }
        private void ZoomToEntity(Entity ent)
        {
            Database database = Application.get_DocumentManager().get_MdiActiveDocument().get_Database();
            Vector3d vector3d;

            // ISSUE: explicit reference operation
            ((Vector3d)@vector3d).\u002Ector(-1.0, -1.0, 1.0);
            using (Transaction transaction = database.get_TransactionManager().StartTransaction())
            {
                ViewTableRecord currentView = this.ed.GetCurrentView();
                Matrix3d        world       = Matrix3d.PlaneToWorld(vector3d);
                // ISSUE: explicit reference operation
                Matrix3d matrix3d1 = ((Matrix3d)@world).PreMultiplyBy(Matrix3d.Displacement(Point3d.op_Subtraction(((AbstractViewTableRecord)currentView).get_Target(), Point3d.get_Origin())));
                // ISSUE: explicit reference operation
                Matrix3d matrix3d2 = ((Matrix3d)@matrix3d1).PreMultiplyBy(Matrix3d.Rotation(-((AbstractViewTableRecord)currentView).get_ViewTwist(), ((AbstractViewTableRecord)currentView).get_ViewDirection(), ((AbstractViewTableRecord)currentView).get_Target()));
                // ISSUE: explicit reference operation
                Matrix3d  matrix3d3        = ((Matrix3d)@matrix3d2).Inverse();
                Extents3d geometricExtents = ent.get_GeometricExtents();
                // ISSUE: explicit reference operation
                ((Extents3d)@geometricExtents).TransformBy(matrix3d3);
                // ISSUE: explicit reference operation
                Point3d minPoint = ((Extents3d)@geometricExtents).get_MinPoint();
                // ISSUE: explicit reference operation
                Point3d maxPoint = ((Extents3d)@geometricExtents).get_MaxPoint();
                Point2d point2d1;
                // ISSUE: explicit reference operation
                // ISSUE: explicit reference operation
                // ISSUE: explicit reference operation
                ((Point2d)@point2d1).\u002Ector(((Point3d)@minPoint).get_X(), ((Point3d)@minPoint).get_Y());
                Point2d point2d2;
                // ISSUE: explicit reference operation
                // ISSUE: explicit reference operation
                // ISSUE: explicit reference operation
                ((Point2d)@point2d2).\u002Ector(((Point3d)@maxPoint).get_X(), ((Point3d)@maxPoint).get_Y());
                ((AbstractViewTableRecord)currentView).set_CenterPoint(Point2d.op_Addition(point2d1, Vector2d.op_Division(Point2d.op_Subtraction(point2d2, point2d1), 2.0)));
                // ISSUE: explicit reference operation
                // ISSUE: explicit reference operation
                ((AbstractViewTableRecord)currentView).set_Height(((Point2d)@point2d2).get_Y() - ((Point2d)@point2d1).get_Y());
                // ISSUE: explicit reference operation
                // ISSUE: explicit reference operation
                ((AbstractViewTableRecord)currentView).set_Width(((Point2d)@point2d2).get_X() - ((Point2d)@point2d1).get_X());
                ((AbstractViewTableRecord)currentView).set_ViewDirection(vector3d);
                DBDictionary dbDictionary = (DBDictionary)transaction.GetObject(database.get_VisualStyleDictionaryId(), (OpenMode)0);
                ((AbstractViewTableRecord)currentView).set_VisualStyleId(dbDictionary.GetAt("Shades of Gray"));
                this.ed.SetCurrentView(currentView);
                transaction.Commit();
            }
        }
Exemple #31
0
        // Zooms to given objects
        public static void ZoomToObjects(IEnumerable<ObjectId> ids)
        {
            Autodesk.AutoCAD.EditorInput.Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;

            Extents3d outerext = new Extents3d();
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                try
                {
                    foreach (ObjectId id in ids)
                    {
                        Entity ent = tr.GetObject(id, OpenMode.ForRead) as Entity;
                        Extents3d ext = ent.GeometricExtents;
                        outerext.AddExtents(ext);
                    }
                }
                catch
                {
                    ;
                }
            }

            outerext.TransformBy(ed.CurrentUserCoordinateSystem.Inverse());
            Point2d min2d = new Point2d(outerext.MinPoint.X, outerext.MinPoint.Y);
            Point2d max2d = new Point2d(outerext.MaxPoint.X, outerext.MaxPoint.Y);

            ViewTableRecord view = new ViewTableRecord();

            view.CenterPoint = min2d + ((max2d - min2d) / 2.0);
            view.Height = max2d.Y - min2d.Y;
            view.Width = max2d.X - min2d.X;

            ed.SetCurrentView(view);
        }
    // Apply our existing settings to the current view

    public void ApplyToCurrentView()
    {
      Editor ed = _doc.Editor;

      ViewportTableRecord vptr =
        (ViewportTableRecord)_tr.GetObject(
          ed.ActiveViewportId, OpenMode.ForRead
        );

      // Adjust the target

      if (_trgTrans != Matrix3d.Identity)
        _target = _target.TransformBy(_trgTrans);

      // Adjust the camera location

      if (_locTrans != Matrix3d.Identity)
        _location = _location.TransformBy(_locTrans);

      // Set up a view for the current settings

      ViewTableRecord vtr = new ViewTableRecord();

      vtr.CenterPoint = Point2d.Origin;
      vtr.ViewTwist = 0.0;
      vtr.PerspectiveEnabled = true;
      vtr.IsPaperspaceView = false;
      vtr.Height = vptr.Height;
      vtr.Width = vptr.Width;
      vtr.ViewDirection =
        Target.GetVectorTo(Location).MultiplyBy(Zoom);
      vtr.Target = Target;
      vtr.LensLength = LensLength;

      // Set it as the current view

      ed.SetCurrentView(vtr);
    }
Exemple #33
0
 public void Focus()
 {
     if (this.ctrl_blockTab == null)
         return;
     Document doc = Application.DocumentManager.MdiActiveDocument;
     Editor ed = doc.Editor;
     Point3d pos;
     if (Selector.Point("Selecciona el lugar a colorcarlo (Point3D)", out pos))
     {
         ViewTableRecord vw = new ViewTableRecord();
         vw.CenterPoint = new Point2d(pos.X, pos.Y);
         //vw.Elevation = pos.Z;
         vw.Height = 10;
         vw.Width = 10;
         ed.SetCurrentView(vw);
     }
 }
Exemple #34
0
 public void FocusTrafficLight()
 {
     if (this.ctrl_blockTab.itemList.Equals(""))
         return;
     foreach (Semaforo s in this.semaforos)
     {
         if (s.block.Name.Equals(this.ctrl_blockTab.itemList))
         {
             Document doc = Application.DocumentManager.MdiActiveDocument;
             Editor ed = doc.Editor;
             Point3d pos = s.block.Position;
             ViewTableRecord vw = new ViewTableRecord();
             vw.CenterPoint = new Point2d(pos.X, pos.Y);
             //vw.Elevation = pos.Z;
             vw.Height = (s.block.GeometricExtents.MaxPoint.Y - s.block.GeometricExtents.MinPoint.Y) * 2f;
             vw.Width = (s.block.GeometricExtents.MaxPoint.X - s.block.GeometricExtents.MinPoint.X) * 2f;
             ed.SetCurrentView(vw);
             this.ctrl_blockTab.itemList = "";
             return;
         }
     }
 }
Exemple #35
0
 public void FocusVehicle()
 {
     if (this.ctrl_blockTab.itemList.Equals(""))
         return;
     foreach (Movil m in this.moviles)
     {
         if (m.bloque.Name.Equals(this.ctrl_blockTab.itemList))
         {
             Document doc = Application.DocumentManager.MdiActiveDocument;
             Editor ed = doc.Editor;
             Point3d pos = m.bloque.Position;
             ViewTableRecord vw = new ViewTableRecord();
             vw.CenterPoint = new Point2d(pos.X, pos.Y);
             //vw.Elevation = pos.Z;
             vw.Height = (m.bloque.GeometricExtents.MaxPoint.Y - m.bloque.GeometricExtents.MinPoint.Y) * 2f;
             vw.Width = (m.bloque.GeometricExtents.MaxPoint.X - m.bloque.GeometricExtents.MinPoint.X) * 2f;
             ed.SetCurrentView(vw);
             this.ctrl_blockTab.itemList = "";
             return;
         }
     }
 }
        private static void ZoomWin(Editor ed, Point3d min, Point3d max)
        {
            Point2d min2d = new Point2d(min.X, min.Y);
            Point2d max2d = new Point2d(max.X, max.Y);

            ViewTableRecord view = new ViewTableRecord();

            view.CenterPoint = min2d + ((max2d - min2d) / 2.0);
            view.Height = max2d.Y - min2d.Y;
            view.Width = max2d.X - min2d.X;
            ed.SetCurrentView(view);
        }