批量获取图形视图中心坐标

这代码挺有用的,当时帮我解决了很大的问题,感谢NetObjArx编程论坛的lzx838在 网上共享出来的代码。

 

  1. Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
  2.             DocumentCollection docs = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager;
  3.             //获取指定目录下的所有dwg文件
  4.             ArrayList FileList = Class1.LzxGetAllFiles(@"E:\复件 成果分幅图");
  5.             int i = 0;
  6.             //遍历每一个dwg文件
  7.             foreach (string FileString in FileList)
  8.             {
  9.                 //假如当前文档为空时,则新建文档.
  10.                 if (Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Count == 0)
  11.                 {
  12.                     Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Add("acad.dwt");
  13.                 }
  14.                 //打开dwg文件
  15.                 Document doc = docs.Open(FileString, true);
  16.                 //设置当前的活动文档为新打开的Dwg文件
  17.                 if (!doc.IsActive)
  18.                     Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument = doc;
  19.                 //最大化图形
  20.                 Autodesk.AutoCAD.Internal.Utils.ZoomObjects(true);
  21.                 //根据数据库更新平面视口
  22.                 doc.Editor.UpdateTiledViewportsFromDatabase();
  23.                 //获取视图中心坐标
  24.                 ViewTableRecord curVtr = doc.Editor.GetCurrentView();
  25.                 //显示获取的坐标值
  26.                 MessageBox.Show("X:" + curVtr.CenterPoint.X.ToString("0.0000") + "  Y:" + curVtr.CenterPoint.Y.ToString("0.0000"));
  27.                 i++;
  28.                 //文件保存及关闭
  29.                 doc.Database.SaveAs("E:\\复件 成果分幅图\\新建文件夹\\" + i.ToString() + ".dwg", DwgVersion.Current);
  30.                 doc.CloseAndDiscard();
  31.             }
posted @ 2013-09-08 20:12  一点味  阅读(529)  评论(0编辑  收藏  举报