I am trying to combine item with the same item type using combiner then i used pull and push from list to try to pull the same type from the list but it doesn't work here is the model
The Pull and Push are in Queue 1 and Queue 2
Thank you
I am trying to combine item with the same item type using combiner then i used pull and push from list to try to pull the same type from the list but it doesn't work here is the model
The Pull and Push are in Queue 1 and Queue 2
Thank you
First off, somehow your Queue1 Pull Strategy field was set to C++. If you open the code field and click on the S button at the bottom, that will change it back to flexscript.
The next issue has to do with timing. When you reset the model, Queue1 will fire its Pull code and create a backorder on the FanList. (Open the FanList properties and in the General tab and click View Back Orders..) This backorder is waiting for Type 0. You would need the pull from list to not happen until variable1 has been changed. I'm not exactly sure why you're trying to use a list to send the write itemtypes to the combiner. The standard pull requirement of
Specific Label would work better in this case.
And then change Queue2 to use First Available in the Send To Port (which will just notify Queue1 to reevaluate its pull requirement).
Hopefully this helps!
I Have tried your solution It worked but there is a new problem that arises
Queue1 only pull new Item from Queue2 while the old item( already waiting in Queue2 is left alone causing so many item waiting but ignored)
is there any solution for this problem?
Thank you
It looks like you still have code nodes in your model that are toggled as C++. If you toggle those back to Flexscript, you'll stop getting "It is recommended that you Compile First." message when you run the model.
When an item enters Queue2, the pull requirement fires on Queue1, but it only checks the new item. Once an item is pulled, Queue 1 receives the item and then attempts to pull again. This time it starts at the first item and checks each one in Queue2 to find another matching item. Except that Queue 1 only has a max content of 1, so the second set of pulls does not happen.
You can solve this by telling the queue to reevaluate its pull requirement when variable1 is set.In Combiner2's On Entry trigger, change the code to:
if (variable2 != 1) { variable1 = value; current.inObjects[2].input.close(); current.inObjects[2].input.open(); }
The process of closing and opening the ports of Queue1 will cause the pull requirement to be fired for every item in Queue2. You'll notice right as the first green item is moved into the combiner, Queue1 immediately pulls the red item that was the first one to arrive in Queue2.
13 People are following this question.
FlexSim can help you understand and improve any system or process. Transform your existing data into accurate predictions.
FlexSim is a fully 3D simulation software environment. FlexSim can be used to simulate any process in any industry.
FlexSim®, FlexSim Healthcare™, Problem Solved.®, the FlexSim logo, the FlexSim X-mark, and the FlexSim Healthcare logo with stylized Caduceus mark are trademarks of FlexSim Software Products, Inc. All rights reserved.
Privacy | Do not sell or share my personal information | Cookie preferences | Report noncompliance | Terms of use | Legal | © Autodesk Inc. All rights reserved