如何将参数从 Main 提供给 Anylogic 中的代理

How to give a parameter from the Main to an agent in Anylogic

我的 Main 包含一个传送带,它将一个纸箱(我的代理)从 A 传送到 B。我添加了一个单选按钮,用户可以用它来选择箱子的大小("small","medium"、"big" 和 "very big")。我现在希望每个纸箱都保存单选按钮的值。我尝试了很多不同的东西,比如将它链接到一个参数,但我没能搞清楚。

我的模型图片:

我用于单选按钮的代码是:

if( value == 0 )
    radioValue = 1;
else if( value == 1 )
    radioValue = 2;
else if( value == 2 )
    radioValue = 3;
 else if( value == 3 )
    radioValue = 4;

radioValue 是 Main 中的参数,我将 radio-button 链接到。

如何将此参数传递给代理以及稍后如何读取它?

在此先感谢您的帮助!

在您的 Kist 代理中创建一个名为 size 的变量,类型为 int。

在源块中,在属性中,在 "on at exit" 操作上,在属性的操作部分下写入以下代码:

agent.size=radioValue;

这是 AnyLogic 中最基本的事情之一...所以我建议您在开始使用任何模型之前接受培训。这可以通过阅读教程、3 天内的任何逻辑书或我在这里的课程来完成:noorjax.teachable.com/p/anylogic

稍后您可以使用 agent.size 在任何块中访问代理的大小。

在没有看到更多代码的情况下,我的一般建议是考虑遍历代理(例如,使用 for 循环)并让它们都设置一个局部变量 cartSize 等于 radioValue(我不会使用 "size" 因为我相信它也用于代理集)。只是在这里吐口水,但像这样的事情?

for (int x = 0; x < carton.size(); x++) {
     carton.get(x).cartSize = radioValue;
}