视图视口拆分
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 AutoDemo13
{
public class Class1
{
[CommandMethod("SZSK")]
public static void SZSK()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acDb = acDoc.Database;
using (Transaction acTran = acDb.TransactionManager.StartTransaction())
{
ViewportTable acViewPT = acTran.GetObject(acDb.ViewportTableId, OpenMode.ForRead) as ViewportTable;
if (acViewPT.Has("view11") == false)
{
acTran.GetObject(acDb.ViewportTableId, OpenMode.ForWrite);
ViewportTableRecord acViewPTR_L = new ViewportTableRecord();
acViewPTR_L.Name = "view11";
acViewPTR_L.LowerLeftCorner = new Autodesk.AutoCAD.Geometry.Point2d(0, 0);
acViewPTR_L.UpperRightCorner = new Autodesk.AutoCAD.Geometry.Point2d(1, 0.5);
acViewPT.Add(acViewPTR_L);
ViewportTableRecord acViewPTR_U = new ViewportTableRecord();
acViewPTR_U.Name = "view11";
acViewPTR_U.LowerLeftCorner = new Autodesk.AutoCAD.Geometry.Point2d(0, 0.5);
acViewPTR_U.UpperRightCorner = new Autodesk.AutoCAD.Geometry.Point2d(1, 1);
acViewPT.Add(acViewPTR_U);
foreach (ObjectId oi in acViewPT)
{
ViewportTableRecord acViewRList = acTran.GetObject(oi, OpenMode.ForRead) as ViewportTableRecord;
if (acViewRList.Name == "*Active")
{
acTran.GetObject(oi, OpenMode.ForWrite);
acViewRList.Erase();
}
}
foreach (ObjectId oi in acViewPT)
{
ViewportTableRecord acViewRListR = acTran.GetObject(oi, OpenMode.ForRead) as ViewportTableRecord;
if (acViewRListR.Name == "view11")
{
acViewRListR.Name = "*Active";
acDoc.Editor.UpdateTiledViewportsFromDatabase();
}
}
acTran.Commit();
}
}
}
[CommandMethod("FoSzSk")]
public static void FoSzSk()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acDb = acDoc.Database;
using (Transaction acTran = acDb.TransactionManager.StartTransaction())
{
ViewportTable acViewPT = acTran.GetObject(acDb.ViewportTableId, OpenMode.ForRead) as ViewportTable;
if (acViewPT.Has("view11") == false)
{
acTran.GetObject(acDb.ViewportTableId, OpenMode.ForWrite);
ViewportTableRecord acViewPTR_L = new ViewportTableRecord();
acViewPTR_L.Name = "view11";
acViewPTR_L.LowerLeftCorner = new Autodesk.AutoCAD.Geometry.Point2d(0, 0);
acViewPTR_L.UpperRightCorner = new Autodesk.AutoCAD.Geometry.Point2d(0.5, 0.5);
acViewPT.Add(acViewPTR_L);
ViewportTableRecord acViewPTR_U = new ViewportTableRecord();
acViewPTR_U.Name = "view11";
acViewPTR_U.LowerLeftCorner = new Autodesk.AutoCAD.Geometry.Point2d(0, 0.5);
acViewPTR_U.UpperRightCorner = new Autodesk.AutoCAD.Geometry.Point2d(0.5, 1);
acViewPT.Add(acViewPTR_U);
ViewportTableRecord acViewPTR_U1 = new ViewportTableRecord();
acViewPTR_U1.Name = "view11";
acViewPTR_U1.LowerLeftCorner = new Autodesk.AutoCAD.Geometry.Point2d(0.5, 0.5);
acViewPTR_U1.UpperRightCorner = new Autodesk.AutoCAD.Geometry.Point2d(1, 1);
acViewPT.Add(acViewPTR_U1);
ViewportTableRecord acViewPTR_U2 = new ViewportTableRecord();
acViewPTR_U2.Name = "view11";
acViewPTR_U2.LowerLeftCorner = new Autodesk.AutoCAD.Geometry.Point2d(0.5, 0);
acViewPTR_U2.UpperRightCorner = new Autodesk.AutoCAD.Geometry.Point2d(1, 0.5);
acViewPT.Add(acViewPTR_U2);
foreach (ObjectId oi in acViewPT)
{
ViewportTableRecord acViewRList = acTran.GetObject(oi, OpenMode.ForRead) as ViewportTableRecord;
if (acViewRList.Name == "*Active")
{
acTran.GetObject(oi, OpenMode.ForWrite);
acViewRList.Erase();
}
}
foreach (ObjectId oi in acViewPT)
{
ViewportTableRecord acViewRListR = acTran.GetObject(oi, OpenMode.ForRead) as ViewportTableRecord;
if (acViewRListR.Name == "view11")
{
acViewRListR.Name = "*Active";
acDoc.Editor.UpdateTiledViewportsFromDatabase();
}
}
acTran.Commit();
}
}
}
[CommandMethod("FoSzSkTo")]
public static void FoSzSkTo()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acDb = acDoc.Database;
using (Transaction acTran = acDb.TransactionManager.StartTransaction())
{
ViewportTable acViewPT = acTran.GetObject(acDb.ViewportTableId, OpenMode.ForRead) as ViewportTable;
if (acViewPT.Has("view11") == false)
{
acTran.GetObject(acDb.ViewportTableId, OpenMode.ForWrite);
ViewportTableRecord acViewPTR_L = new ViewportTableRecord();
acViewPTR_L.Name = "view11";
acViewPTR_L.LowerLeftCorner = new Autodesk.AutoCAD.Geometry.Point2d(0, 0);
acViewPTR_L.UpperRightCorner = new Autodesk.AutoCAD.Geometry.Point2d(0.5, 1);
acViewPT.Add(acViewPTR_L);
ViewportTableRecord acViewPTR_U = new ViewportTableRecord();
acViewPTR_U.Name = "view11";
acViewPTR_U.LowerLeftCorner = new Autodesk.AutoCAD.Geometry.Point2d(0.5, 0);
acViewPTR_U.UpperRightCorner = new Autodesk.AutoCAD.Geometry.Point2d(1, 1);
acViewPT.Add(acViewPTR_U);
foreach (ObjectId oi in acViewPT)
{
ViewportTableRecord acViewRList = acTran.GetObject(oi, OpenMode.ForRead) as ViewportTableRecord;
if (acViewRList.Name == "*Active")
{
acTran.GetObject(oi, OpenMode.ForWrite);
acViewRList.Erase();
}
}
foreach (ObjectId oi in acViewPT)
{
ViewportTableRecord acViewRListR = acTran.GetObject(oi, OpenMode.ForRead) as ViewportTableRecord;
if (acViewRListR.Name == "view11")
{
acViewRListR.Name = "*Active";
acDoc.Editor.UpdateTiledViewportsFromDatabase();
}
}
acTran.Commit();
}
}
}
[CommandMethod("SzFw")]
public static void SzFw()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acDb = acDoc.Database;
using (Transaction acTran = acDb.TransactionManager.StartTransaction())
{
ViewportTable acViewPT = acTran.GetObject(acDb.ViewportTableId, OpenMode.ForRead) as ViewportTable;
foreach (ObjectId oi in acViewPT)
{
ViewportTableRecord acViewTR = acTran.GetObject(oi, OpenMode.ForRead)as ViewportTableRecord;
if (acViewTR.Name == "*Active")
{
Application.SetSystemVariable("CVPORT", acViewTR.Number);
if (acViewTR.Number == 2)
{
ViewTableRecord vtr = acDoc.Editor.GetCurrentView();
vtr.CenterPoint = new Autodesk.AutoCAD.Geometry.Point2d(50, 50);
vtr.Width = 100;
vtr.Height = 100;
acDoc.Editor.SetCurrentView(vtr);
}
if (acViewTR.Number == 3)
{
ViewTableRecord vtr = acDoc.Editor.GetCurrentView();
vtr.CenterPoint = new Autodesk.AutoCAD.Geometry.Point2d(25, 25);
vtr.Width = 50;
vtr.Height = 50;
acDoc.Editor.SetCurrentView(vtr);
}
}
}
acTran.Commit();
}
}
}
}