Detach incoming parts and process assembly in a single process?

Hey, I’ve got another container challenge :sweat_smile:

So I’ve got this shipping container that I want filled with boxes (It’s an assembly). The problem is, the boxes arrive in bundles of three on an AGV. Now I know how to separate bundles if I only do that, and I know how to fill the container with boxes if they arrive one by one, but… I don’t know how to do it both in one go. Even though I feel like I’ve nearly solved it, I’m stuck…

This is only an experiment, so right now there’s only six available spots in the assembly - meaning it only needs to receive two batches before it’s full.

Here is the current process I’ve cobbled together, I’ve marked the area where I receive parts and work on the assembly in pink.

And this is the result:

First batch:

First batch is separated and placed correctly, so far so good…

Second batch:

Second batch is also separated and placed correctly. The assembly is now complete and everything should just move on… But the process gets stuck on ‘Contruct’. It doesn’t move on to ‘CheckAssembly’ to see that the assembly is ready, everything stops. I don’t quite understand the output message, or rather, what to do differently about it. Any suggestions? I probably don’t use the statements correctly.

(PS. Don’t mind the human, he’s only there to assist the AGV with unloading boxes. Also the clipping is not important right now…)

Maybe you need to add a different name assembly variable name in the construct? I think the error message comes from that you are adding more than one product to the variable CurrentAssembly, so it becomes a list.

Hey Este. I changed the name and the process went a little further. However it didn’t pass ‘CheckAssembly’, whose condition is still ‘False’. So instead of escaping the loop, the AGV went and picked up a third batch which it just left on the ground. Then the process got stuck, with the same output message.

I also tried to check ‘newAssembly’ instead of ‘CurrentAssembly’ in the ‘CheckAssembly’ statement. No change.


I kind of solved it with a dirty trick I know, which is called:

“Delete everything :grimacing: …and create it again :rofl: :rofl:

If it is stupid but it works, it isn’t stupid :smile:

1 Like

Turns out it was only stupid after all :sweat_smile:

The solution isn’t scalable. I increased the number of box slots, but it stops after batch 3. I suppose I would have to continue adding new and uniquely named assemblies for each batch maybe, but that isn’t very practical…

So, my assembly is made into a list by my process… Is there away to convert it back to being a product?

I think you can set the variable to null (empty) and then create a new part, so it does not convert to a list.

Omg, this actually worked:

But, I will try have look at your suggestion as well and find a better solution if I can. Because while I’m happy that it now works again, I’m not happy with the way I did it (It’s getting out of hand :rofl:). I only have a trial licence though, and tomorrow it’s all spent…

Actually nope, it didn’t quite work still… After having filled the three containers, it broke down on the second attempt to fill the first container… So I’ve changed it to this, and now it works:

Had to change CurrentAssembly to tempAssembly0 (Forgot that I had to leave the actual assembly alone). Also had to clear the tempAssebly lists after use, like you mentioned… Wasn’t enough to just remove them.