在过去的 3 周里,我一直在尝试能够以编程方式调用撤消命令。我最近的尝试涉及从 C# 调用 LISP 代码。现在我的 C# 方法看起来像这样
[CommandMethod("TestLispFromC#", CommandFlags.Modal)]
public void TestLisp()
{
ResultBuffer lispFunctionCallWithArguments = new ResultBuffer(new TypedValue((int)LispDataType.Text, "BIGUNDO")); // build the arguments list
ResultBuffer resultOfLispFunction = Autodesk.AutoCAD.ApplicationServices.Application.Invoke(lispFunctionCallWithArguments); // call the LISP fuction anf get the return value
_editor.WriteMessage(resultOfLispFunction.ToString()); //print the result
}
我想调用的 Lisp 函数来自这里
(defun BIGUNDO () (命令 "undo" "b") )
(defun MARKPOS () (命令 "undo" "m") )
(vl-acad-defun '比贡多)
(vl-acad-defun 'MARKPOS)
该命令进入 AutoCAD,但我收到一条错误消息,提示“AutoCAD 命令被拒绝:“撤消””。我不知道如何让 AutoCAD 接受编程撤消命令。