视图添加与修改与删除
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Geometry;
namespace AutoDemo12
{
public class Class1
{
[CommandMethod("createView")]
public static void createView()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acDb = acDoc.Database;
using (Transaction acTran = acDb.TransactionManager.StartTransaction())
{
ViewTable acView = acTran.GetObject(acDb.ViewTableId, OpenMode.ForRead) as ViewTable;
if (acView.Has("新视图") == false)
{
acTran.GetObject(acDb.ViewTableId, OpenMode.ForWrite);
ViewTableRecord acViewR = acDoc.Editor.GetCurrentView();
acViewR.Name = "新视图";
acView.Add(acViewR);
acTran.Commit();
}
}
}
[CommandMethod("SetView")]
public static void SetView()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acDb = acDoc.Database;
using (Transaction acTran = acDb.TransactionManager.StartTransaction())
{
ViewTable acView = acTran.GetObject(acDb.ViewTableId, OpenMode.ForRead) as ViewTable;
if (acView.Has("新视图") == true)
{
ViewTableRecord acViewR = acTran.GetObject(acView["新视图"], OpenMode.ForRead) as ViewTableRecord;
acDoc.Editor.SetCurrentView(acViewR);
acTran.Commit();
}
}
}
[CommandMethod("DelView")]
public static void DelView()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acDb = acDoc.Database;
using (Transaction acTran = acDb.TransactionManager.StartTransaction())
{
ViewTable acView = acTran.GetObject(acDb.ViewTableId, OpenMode.ForRead) as ViewTable;
if (acView.Has("新视图") == true)
{
acTran.GetObject(acDb.ViewTableId, OpenMode.ForWrite);
ViewTableRecord acViewR = acTran.GetObject(acView["新视图"], OpenMode.ForWrite)as ViewTableRecord;
acViewR.Erase();
acTran.Commit();
}
}
}
}
}