This code have to work in both AutoCAD 2012 (and 2011, 2010...) and AutoCAD 2013:
using System;
using System.Reflection;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
[assembly: CommandClass(typeof(Rivilis.Purge))]
namespace Rivilis
{
public class Purge
{
[CommandMethod("MyPurgeAll")]
static public void MyPurgeAll()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
object adoc = null;
if (Application.Version.Major < 19) {
// For AutoCAD 2012- (i.e. 2012, 2011, 2010, ...)
adoc = doc.GetType().InvokeMember("AcadDocument",
BindingFlags.GetProperty, null, doc, null);
} else {
// For AutoCAD 2013+ (i.e. 2013, 2014 (???), ...)
Type ext = typeof(Autodesk.AutoCAD.Windows.Menu).Assembly
.GetType("Autodesk.AutoCAD.ApplicationServices.DocumentExtension", true);
MethodInfo GetAcadDocumentMethod =
ext.GetMethod("GetAcadDocument", BindingFlags.Public | BindingFlags.Static);
adoc = GetAcadDocumentMethod.Invoke(doc, new object[1] { doc });
}
if (adoc != null) {
adoc.GetType().InvokeMember("PurgeAll", BindingFlags.InvokeMethod, null, adoc, null);
}
}
}
}
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
