- // © Andrey Bushman, 2014 
- // Тестирование метода ViewportTableRecord.SetUcsToWorld(). 
- // Обсуждение здесь: http://adn-cis.org/forum/index.php?topic=559.0 
- using System; 
- using cad = Autodesk.AutoCAD.ApplicationServices.Application; 
- using App = Autodesk.AutoCAD.ApplicationServices; 
- using Db = Autodesk.AutoCAD.DatabaseServices; 
- using Ed = Autodesk.AutoCAD.EditorInput; 
- using Gm = Autodesk.AutoCAD.Geometry; 
- using Rt = Autodesk.AutoCAD.Runtime; 
-   
- [assembly: Rt.CommandClass(typeof(AndreyBushman.Samples.TestClass))] 
-   
- namespace AndreyBushman.Samples { 
-   
-         public sealed class TestClass { 
-   
-                 [Rt.CommandMethod("test", Rt.CommandFlags.Session)] 
-                 public static void Test() { 
-                         const String path = @"C:\test\test.dwg"; // Предполагается, что DWG присутствует 
-                         Db.Database prevDb = Db.HostApplicationServices.WorkingDatabase; 
-                         Db.Database db = new Db.Database(false, true); 
-                         db.ReadDwgFile(path, System.IO.FileShare.ReadWrite, true, null); 
-                         db.CloseInput(true); // Пробовал и без этой строки, но результат тот же 
-                         Db.HostApplicationServices.WorkingDatabase = db; 
-                         using (Db.Transaction tr = db.TransactionManager.StartTransaction()) { 
-                                 Db.ViewportTable vt = (Db.ViewportTable)tr.GetObject(db.ViewportTableId, 
-                                         Db.OpenMode.ForRead); 
-                                 Db.ViewportTableRecord vtr = (Db.ViewportTableRecord)tr.GetObject( 
-                                         vt[Db.SymbolUtilityServices.ViewportActiveName], Db.OpenMode.ForWrite); 
-   
-                                 vtr.UcsFollowMode = true; // допустим, пусть разворачивает вид параллельно UCS  (хотя мне это и не надо) 
-                                 vtr.SetUcsToWorld(); // не сработало: не назначена WCS 
-                                 vtr.SetViewDirection(Db.OrthographicView.TopView); // пробовал даже так                                                   
-   
-                                 tr.Commit(); 
-                         } 
-                         Db.HostApplicationServices.WorkingDatabase = prevDb; 
-                         db.SaveAs(path, Db.DwgVersion.Current); 
-                 } 
-         } 
- }