批量获取图形视图中心坐标
这代码挺有用的,当时帮我解决了很大的问题,感谢NetObjArx编程论坛的lzx838在 网上共享出来的代码。
- Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
- DocumentCollection docs = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager;
- //获取指定目录下的所有dwg文件
- ArrayList FileList = Class1.LzxGetAllFiles(@"E:\复件 成果分幅图");
- int i = 0;
- //遍历每一个dwg文件
- foreach (string FileString in FileList)
- {
- //假如当前文档为空时,则新建文档.
- if (Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Count == 0)
- {
- Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Add("acad.dwt");
- }
- //打开dwg文件
- Document doc = docs.Open(FileString, true);
- //设置当前的活动文档为新打开的Dwg文件
- if (!doc.IsActive)
- Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument = doc;
- //最大化图形
- Autodesk.AutoCAD.Internal.Utils.ZoomObjects(true);
- //根据数据库更新平面视口
- doc.Editor.UpdateTiledViewportsFromDatabase();
- //获取视图中心坐标
- ViewTableRecord curVtr = doc.Editor.GetCurrentView();
- //显示获取的坐标值
- MessageBox.Show("X:" + curVtr.CenterPoint.X.ToString("0.0000") + " Y:" + curVtr.CenterPoint.Y.ToString("0.0000"));
- i++;
- //文件保存及关闭
- doc.Database.SaveAs("E:\\复件 成果分幅图\\新建文件夹\\" + i.ToString() + ".dwg", DwgVersion.Current);
- doc.CloseAndDiscard();
- }