Nic*_*ert 6 .net c# autocad autocad-plugin
我正在尝试编写两种调用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);
}
Run Code Online (Sandbox Code Playgroud)
看起来他们应该工作,但由于某种原因,他们没有.当我调用MarkPosition()然后调用BigUndo()时,我得到一个错误,说遇到了Start of Group; 进入撤消结束以进一步返回.测试我的语法.我将MarkPosition改为
public static void MarkPosition()
{
doc.SendStringToExecute("circle 2,2,0 4 ", true, false, true);
}
Run Code Online (Sandbox Code Playgroud)
成功画了一个圆圈.这意味着我的语法是正确的,但撤消会发生一些奇怪的事情.
AutoCAD 不会将您发送的空格识别为新行。您必须先添加新行,然后在另一行发送下一个字符,如下所示:
doc.SendStringToExecute("._UNDO\n", true, false, true);
doc.SendStringToExecute("M\n", true, false, true);
doc.SendStringToExecute("._UNDO\n", true, false, true);
doc.SendStringToExecute("B\n", true, false, true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4942 次 |
| 最近记录: |