我正在尝试创建一个按钮,当按下该按钮时,它会标记绘图的位置。现在该方法看起来像这样。
[CommandMethod("MARKPOS", CommandFlags.Session)]
public void MarkPosition()
{
Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
ed.Command("UNDO", "M");
}
但是,当我尝试执行该方法时,出现下图所示的错误并且无法确定原因。
************** 异常文本 ************** Autodesk.AutoCAD.Runtime.Exception:eInvalidInput 在 Autodesk.AutoCAD.EditorInput.Editor.Command(对象 [] 参数) 在 c:\Users\nickg\Documents\All Code\autocad-adapter\IOAutoCADHandler\myCommands.cs 中的 AutoCAD_Adapter.MyCommands.MarkPosition():第 186 行 在 Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi,Object commandObject,Boolean bLispFunction) 在 Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi,Object commandObject,Boolean bLispFunction) 在 Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi,Boolean bLispFunction) 在 Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()
最佳答案
SendStringToExecute 将在 AutoCAD 2014 之前有效。在 AutoCAD 2015(及更新版本)上,它已被 Editor.Command 或 Editor.CommandAsync 取代。
关于原代码,请尝试
[CommandMethod("MARKPOS")]
public static void MarkPosition()
{
Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
ed.Command(new object[]{"UNDO", "M"});
}
关于c# - 在AutoCAD中使用Editor类执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496996/