实际上,如果我只是从lisp脚本运行(命令^C^C),则不会引发错误。情况是,我的应用程序是一个.NET应用程序,我调用一些SendStringToExecute使用一些lisp代码。为了确保结束lisp例程,我在结尾处写了:
doc.SendStringToExecute("(Command ^C^C)", True, False, True)Forge设计自动化的结果是:失败指令
虽然我可以很容易地找到另一种方法来解决这个问题,但我花了一天多的时间才发现这是(命令^C^C)导致故障指令的原因,而其他一切都很正常。希望这个bug能被修复,因为任何类似的东西都不会在其他地方再次出现。
我像这样孤立了这个案子:
公共共享函数lsp_SendStringToExcute(args作为ResultBuffer)作为对象Dim脚本$= Nothing,每个arg作为args.AsArray脚本中的TypedValue = arg.Value Exit For Next script = script.Trim() If script <>“Document = AcadApplication.DocumentManager.MdiActiveDocument doc.SendStringToExecute(脚本+ vbCr,True,False,True)如果返回新的TypedValue(LispDataType.T_atom)结束函数
(l+SendStringToExecute“(命令^C^C)")
. 02/01/2021 17:23:26命令:(l+SendStringToExecute“(命令^C^C)") 02/01/2021 17:23:26 T 02/01/2021 17:23:26命令:(命令^C^C) 02/01/2021 17:23:26 *取消* 02/01/2021 17:23:26命令:零02/01/2021 17:23:27结束AutoCAD核心引擎标准输出转储。02/01/2021 17:23:27错误: AutoCAD核心控制台未能完成脚本-遇到意外输入。02/01/2021 17:23:27结束脚本阶段。02/01/2021 17:23:27错误:一个意外的错误发生在作业的CoreEngineExecution阶段。02/01/2021 17:23:27工作完成结果FailedExecution 02/01/2021 17:23:27职务状态:{“状态”:"failedInstructions",.
发布于 2021-02-05 11:38:09
谢谢您的报道,我不确定我们是否允许accoreconsole中的command表达式。建议采用以下方式。
[CommandMethod("CANCELOUTSTANDING")]
public void TESTCANCEL()
{
var doc = Application.DocumentManager.MdiActiveDocument;
string cmd = string.Format("{0}", new string((char)03, 2));
doc.SendStringToExecute(cmd, true, false, true);
}https://stackoverflow.com/questions/65997572
复制相似问题