Anylogic - 从一个按钮重新启动模拟

Posted

技术标签:

【中文标题】Anylogic - 从一个按钮重新启动模拟【英文标题】:Anylogic - Restart Simulation from a Button 【发布时间】:2019-06-08 15:06:28 【问题描述】:

我想创建一个用户可以在模型执行期间按下的按钮,它会停止模型并从 time = 0 开始再次运行它。

以下代码确实有效,但仅在某些时候有效,有时会在模型挂起之前按两到三下按钮有效。

pauseSimulation();
stopSimulation();
getExperiment().stop();
((Simulation) getExperiment()).button.action();
getExperiment().run();

这有时与 getEngine().getState() = PLEASE_WAIT 相关,但并非总是如此。

我不知道这是时间问题,还是我应该做的事情的顺序略有不同,或者措辞不同。

非常感谢任何指针。

【问题讨论】:

您能否说明一下您第一次是如何开始实验的?您是使用按钮开始第一次运行还是自动开始运行?在 AnyLogic 帮助菜单中有一段代码 sn-p 关于如何在不需要按下按钮的情况下自动开始实验。你如何开始第一个会影响我建议你如何实现这个按钮。我假设这个重启按钮在 Main 上(或在模型实例中而不是在实验屏幕上)。 嗨。运行是,1) 从 Anylogic 菜单栏上的“绿色圆圈上的白色播放符号”开始,2) 然后按下 Simulation: Main 上的运行按钮。我想将代码放在后面的按钮位于 Main 上,因此在模型运行时可以访问。 【参考方案1】:

在您的按钮操作中使用

getExperiment().stop();

在您的模拟实验属性的 Java Actions 部分中,将以下内容添加到 After Simulation Run:

run();

【讨论】:

以上是关于Anylogic - 从一个按钮重新启动模拟的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 iPhone 模拟器上点击菜单按钮然后重新启动应用程序后查看日志记录?

Unity - 单击重新启动按钮后如何重新启动乐谱?

当我们在android中使用backstack返回上一个片段时,上一个片段正在重新启动

如何从按钮上的网页重新启动iDevice单击

电脑连接无线网运行半小时左右自动断网,只要重新启动能恢复网络连接、求大神分析原因及解决方案!拜谢

AnyLogic:在模拟启动时用代理填充托盘架