首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SendStringtoExecute时伪造错误(命令^C^C)

使用SendStringtoExecute时伪造错误(命令^C^C)
EN

Stack Overflow用户
提问于 2021-02-01 17:43:42
回答 1查看 140关注 0票数 0

实际上,如果我只是从lisp脚本运行(命令^C^C),则不会引发错误。情况是,我的应用程序是一个.NET应用程序,我调用一些SendStringToExecute使用一些lisp代码。为了确保结束lisp例程,我在结尾处写了:

代码语言:javascript
复制
doc.SendStringToExecute("(Command ^C^C)", True, False, True)

Forge设计自动化的结果是:失败指令

虽然我可以很容易地找到另一种方法来解决这个问题,但我花了一天多的时间才发现这是(命令^C^C)导致故障指令的原因,而其他一切都很正常。希望这个bug能被修复,因为任何类似的东西都不会在其他地方再次出现。

我像这样孤立了这个案子:

  1. 制作了一个.NET包,或者只是重用您现有的调试模式中的任何一个
  2. 添加了以下lisp定义函数(或者它可以是一个自定义命令,不管怎样):

公共共享函数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)结束函数

  1. 将包上传到Forge,创建一个转储活动,只运行自定义lisp:

(l+SendStringToExecute“(命令^C^C)")

  1. 结果日志如下所示:

. 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",.

EN

回答 1

Stack Overflow用户

发布于 2021-02-05 11:38:09

谢谢您的报道,我不确定我们是否允许accoreconsole中的command表达式。建议采用以下方式。

代码语言:javascript
复制
[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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65997572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档