Hi everyone,
currently items always travel along the center of conveyors. While it is possible to translate them to either side (or forwards/backwards, up/down), a side transfer will always position an item so it sits in the center of the conveyor it is moved to.
To get a proper motion, a bunch of logic has to be in place to
- calculate when the item should be stopped on the origin conveyor and do so
- start a kinematic to move the item into the position in which it should enter the target conveyor
- move an Entry Transfer to that location and move the item into it
So I wanted to post this idea to improve FlexSim's capability in this regard. What I envision is a setting on each conveyor where the user can choose whether an item is aligned to the center, left edge or right edge on that conveyor.
This setting would influence two things:
- Where the item is placed when it enters the conveyor.
- The timing/travel distance at side transfers that move items onto the conveyor.
I actually experimented a bit with setting the "distAlong" value of transfer points and will attach the model to hopefully showcase my intention and as a sort of 'proof-of-concept'.
In case 1 in the screenshot above, where items move off the side of on and onto the start of another conveyor this actually works quite well. Every time an item enters the lower conveyor from Source1, the "distAlong" is adjusted according to the "Alignment" label on the vertical conveyor (-1 for left edge, 0 for center, 1 for right edge). This happens in the OnEntry trigger of the conveyors which call a user command. Since the traversals of the items are planned ahead, the value can again be changed when the next item enters the conveyor (or an item is 'send' somewhere) without disrupting the planned transfers of other items.
In the second case, where an item moves onto the side of a conveyor, I had to implement a rough workaround. In this case, the transfer seems to calculate how far the item must move as part of the transfer to the other conveyor, just as the transfer starts. This means that the "distAlong" value must be adjusted both when the item enters the origin conveyor, as well as when the transfer starts.
But, since the movement distance calculation takes place anyway, I hope that it wouldn't be too hard to make it depend on a setting on the target conveyor (?).