我正在尝试编写两种调用 AutoCAD 的 UNDO 命令并传入不同参数的方法。第一个方法调用UNDO并传递M,表示标记绘图的位置。第二种方法调用UNDO并传递B,这意味着撤消一直回到标记的位置(如果没有,则结束)。到目前为止,它们非常简单
/// <summary>
/// Method to mark the current position of the AutoCAD program
/// </summary>
public static void MarkPosition()
{
doc.SendStringToExecute("._UNDO M", true, false, true);
}
/// <summary>
/// Method to step AutoCAD back int steps
/// </summary>
public static void BigUndo()
{
doc.SendStringToExecute("._UNDO B", true, false, true);
}
这些看起来应该可以工作,但由于某种原因它们没有。当我调用 MarkPosition() 然后 BigUndo() 时,我收到一条错误消息,提示遇到组开始;输入 Undo End 以进一步返回。测试我的语法。我将 MarkPosition 更改为
public static void MarkPosition()
{
doc.SendStringToExecute("circle 2,2,0 4 ", true, false, true);
}
成功绘制了一个圆圈。这意味着我的语法是正确的,但是 Undo 发生了一些奇怪的事情。