这是提供给许多从lisp转移到c#的开发人员的一个函数,这个函数利用后绑代码实现undo返回操作.
本代码由edata提供: edata博客
???????/// <summary> ???????/// 命令动作编组 ???????/// </summary> ???????/// <param name="flag">true为开始编组,false为结束编组</param> ???????public static void Undo(bool flag) ???????{ ???????????//获取CAD程序 ????????????object cadApplication = Application.AcadApplication; // ?Autodesk.AutoCAD.ApplicationServices. ????????????????????Type cadType = cadApplication.GetType(); ??????????????????????object cadActiveDocument = cadType.InvokeMember("ActiveDocument", BindingFlags.GetProperty, null, cadApplication, null); ???????????Type dcoType = cadActiveDocument.GetType(); ????????????????????????//增加动作编组 ???????????string undoCtl = Getvar("UNDOCTL"); ???????????if (flag) ???????????{ ???????????????if (undoCtl == "8") //存在活动编组 ???????????????{ ???????????????????dcoType.InvokeMember("EndUndoMark", BindingFlags.InvokeMethod, null, cadActiveDocument, null); ???????????????} ???????????????dcoType.InvokeMember("StartUndoMark", BindingFlags.InvokeMethod, null, cadActiveDocument, null); ???????????} ???????????else ???????????{ ???????????????dcoType.InvokeMember("EndUndoMark", BindingFlags.InvokeMethod, null, cadActiveDocument, null); ???????????} ???????}
cad.net的undo返回操作
原文地址:https://www.cnblogs.com/JJBox/p/10214582.html