/* © Андрей Бушман, 2014
* Commands.cs
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#if AUTOCAD
using cad = Autodesk.AutoCAD.ApplicationServices.Application;
using Ap = Autodesk.AutoCAD.ApplicationServices;
using Db = Autodesk.AutoCAD.DatabaseServices;
using Ed = Autodesk.AutoCAD.EditorInput;
using Gm = Autodesk.AutoCAD.Geometry;
using Rt = Autodesk.AutoCAD.Runtime;
using Hs = Autodesk.AutoCAD.DatabaseServices.HostApplicationServices;
using Us = Autodesk.AutoCAD.DatabaseServices.SymbolUtilityServices;
#endif
[assembly: Rt.CommandClass(typeof(Bushman.CAD.Samples.LayoutSample.Commands))]
namespace Bushman.CAD.Samples.LayoutSample {
public sealed class Commands {
[Rt.CommandMethod("test", Rt.CommandFlags.Modal)]
public void Test() {
Ap.Document doc = cad.DocumentManager.MdiActiveDocument;
if (null == doc)
return;
using (doc.LockDocument()) {
Ed.Editor ed = doc.Editor;
Db.Database db = doc.Database;
Db.LayoutManager lm = Db.LayoutManager.Current;
String layout_name = "My_Layout";
if (!lm.GetLayoutId(layout_name).IsNull) {
ed.WriteMessage("Лист \"{0}\" уже существует. Операция прервана.\n",
layout_name);
return;
}
Db.ObjectId layout_id = lm.CreateLayout(layout_name);
using (Db.Transaction tr = db.TransactionManager.StartTransaction()) {
Db.Layout layout = tr.GetObject(layout_id, Db.OpenMode.ForWrite)
as Db.Layout;
Db.ObjectId prew_layer_id = db.Clayer;
db.Clayer = db.LayerZero;
layout.Initialize();
db.Clayer = prew_layer_id;
lm.CurrentLayout = layout_name;
tr.Commit();
}
}
}
}
}