AutoCAD 命令被拒绝:从 LISP 调用撤消时"Undo"



在过去的 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 函数来自这里

德芬比贡多 () (命令"撤消"b"))

德芬·马克波斯 () (命令"撤消"m"))

(vl-acad-defun 'bigundo)

(vl-acad-defun 'MARKPOS)

该命令进入AutoCAD,但我收到一个错误,说"AutoCAD命令被拒绝:"撤消"。我不知道如何让AutoCAD接受编程撤消命令。

你需要

c定义:

请尝试以下操作:

(defun c:BIGUNDO()(命令 "undo" "b" "Y"))

请注意末尾的"Y",因为它要求这将撤消所有内容。还行?

相关内容

  • 没有找到相关文章

最新更新