cad.net的undo返回操作

这是提供给许多从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); } }

 

相关文章