TheSwamp

Code Red => .NET => Topic started by: bikelink on December 01, 2009, 05:16:40 AM

Title: how to change point of view in model space
Post by: bikelink on December 01, 2009, 05:16:40 AM
simple code to do it...just to share it


[CommandMethod("vis")]
         public static void vis()
         {
// a vector...for example
             Vector3d vdir = new Vector3d(1, 0, 0);
             Document d = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
             using (DocumentLock l = d.LockDocument())
             {

                 Database db = HostApplicationServices.WorkingDatabase;
                 Transaction tr;
                
                 if (db.TileMode == true)
                 {
                     //modelspace
                     //get current viewporttablerecord
                     try
                     {
                         using (tr = db.TransactionManager.StartTransaction())
                         {
                             ViewportTableRecord vpr = (ViewportTableRecord)tr.GetObject(db.CurrentViewportTableRecordId, OpenMode.ForWrite);
                        
                             vpr.ViewDirection = vdir.GetPerpendicularVector();
                             vpr.ViewTwist = vdir.GetAngleTo(Vector3d.XAxis, Vector3d.ZAxis);
                          
                             d.Editor.UpdateTiledViewportsFromDatabase();
                             tr.Commit();
                         }
                     }
                     catch { }
                 }
             }
         }