Anylogic,如何设置按钮以重新启动模拟

Anylogic, how to setup a button so it would restart the simulation

美好的一天, 目前,有 6 个编辑框,它们连接到模型中的特定参数(用户可以在模型中编辑这些框 运行 时间)和一个不执行任何操作的按钮。我想让这个按钮重新开始模拟,但是如果用户之前在编辑框中更改了一些内容,新的模拟将根据用户输入的值运行。模型名称是 Simulation。 如果有人知道示例(或特定代码),将不胜感激。

澄清一下,有两个问题:

  1. 如何在模型中设置重启模拟的按钮? ——这是不可能的。但是可以做的是有一个按钮调用 stopSimulation() 和 returns 用户进入模拟设置
  2. 如何将在 运行 时间内对模型所做的更改传播到下一个模拟 运行? - 将编辑字段中的值保存到模型的内部属性中,然后通过选中 root object
  3. 在 Simulation 的 After simulation run Java 操作中访问它们

补充一下Artem对问题1的回复:其实是可以的,但是你要新建一个线程,有点高级。此代码将停止当前实验并重新启动它:

new Thread() {
    public void run() {
        getExperiment().stop(); // stops the model
        getExperiment().run(); // runs it again
        getExperimentHost().setPresentable( getEngine().getRoot() );
    }
}.start();

您可以确保为新 运行 设置您的参数,正如 Artem 所讨论的那样。

PS:最好让用户按下停止按钮,将值提供给实验页面,让用户在需要时重新调整它们,然后让她照常重启模型。