【问题标题】:Anylogic - Restart Simulation from a ButtonAnylogic - 从一个按钮重新启动模拟
【发布时间】: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 上,因此在模型运行时可以访问。

标签: button model anylogic


【解决方案1】:

在您的按钮操作中使用

getExperiment().stop();

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

run();

【讨论】:

    猜你喜欢
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 2019-01-25
    • 2016-03-02
    • 1970-01-01
    • 2021-07-21
    相关资源
    最近更新 更多