// 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); }
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(); } } }
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; } }
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); } }
public AutoCADManager() { Document doc = AcadApp.DocumentManager.MdiActiveDocument; ViewTableRecord vtr = doc.Editor.GetCurrentView(); _initialView = vtr.ViewDirection; InitializeSyncControl(); }
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); }
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); }
/// <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);//更新当前视图 }
// 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); }
// 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); }
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(); } }
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); }
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)); }
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); } }
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)); }
/// <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(); }
// 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(); }
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); }
// 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); }
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; } }
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); } }
//缩放到对象 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(); }
/// <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); } }
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(); } }
// 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); }
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); } }
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; } } }
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); }