我如何在 Anylogic 中释放 Waitblock

问题描述

我们是一群没有太多编程经验的学生。我们的任务是模拟一个循环过程,其中门在铣床上经历至少 3 个加工步骤。我们希望优先考虑产品,例如如果在传送带 1 上有一扇厚度为 43 毫米(门上方的红色数字)的门,则其上不应有其他厚度的门。我们的想法是使用一个等待块,它应该只在以下情况下释放下一个代理: 厚度相同或传送带 1 为空 为此,我们在图片中使用了以下代码

enter image description here

但是代码:wait.free(agent.door);当传送带 1 上的当前代理离开它时不起作用。在进行模拟时,我们不会收到错误代码。欢迎其他想法。

最好的问候

解决方法

当传送带1上的当前代理离开它时,放置相同的代码wait.free(agent)

退出时添加代码

if(wait.size()>0) {
    AgentType x=findFirst(wait,a->a.thickness==conveyorThickness);
    if(x!=null)
           wait.free(x);
}