question

Patrick Cloutier avatar image
0 Likes"
Patrick Cloutier asked Felix Möhlmann commented

Looking for ideas to model a Raymond 9600 swing reach lift truck

Hello, I'm being asked by a potential FlexSim buyer if I could model a Raymond 9600 swing reach lift truck. In this type of lift:

  • The employee goes up with the load
  • The truck doesn't rotate to load/unload
  • The forks rotate to load/unload

1642104975593.png

I think I could achieve some kind of visual realism by putting a lift truck inside a lift truck and controlling their movements with a process flow.

BUT before I do that I wanted to do just a simple example where the lift doesn't rotate and stays in the aisle but even that doesn't work because when the lift is connected to AStar it doesn't do its offset travel and so the forks don't rise to unload. See attached simple model.

Any ideas how to solve this seemingly simple issue? (rising forks)

Any way to "ask the forks to rise" when the lift gets to destination but before unloading (while connected to Astar)?

I tried with network nodes instead of Astar but I get the same result.

Thanks,

Lift no rotate2.fsm

forklift
1642104975593.png (1.1 MiB)
lift-no-rotate2.fsm (46.7 KiB)
· 2
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

  • Divide your movements in travel to location tasks.
  • The load / unloading process is an animation or based on kinematics.
  • Move object will transfer items to and from objects.

Animation Creator Tutorials are here as PDF attachments.

https://answers.flexsim.com/questions/83111/how-to-use-draw-surrogate-correctly.html

https://answers.flexsim.com/storage/attachments/27727-tutorial-basic-animation-creator-concepts.pdf

https://answers.flexsim.com/storage/attachments/27742-tutorial-advanced-animation-creator-concepts.pdf

Kinematics are well documented in manual:

https://docs.flexsim.com/en/21.2/Reference/DeveloperAdvancedUser/Kinematics/

it is a good practice to update a kinematic finally by an own event on finish time. You can do it in a user event or by a delayed message.

0 Likes 0 ·

Hi @Patrick Cloutier, was one of Felix Möhlmann's or Joerg Vogel's answers helpful? If so, please click the "Accept" button at the bottom of the one that best answers your question. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes 0 ·
Felix Möhlmann avatar image
1 Like"
Felix Möhlmann answered Felix Möhlmann commented

In the attached model I did the following:
In the "On Start Task" trigger I react to the transport starting an unload task and determine how long raising the fork will take and set the unload time accordingly.
When the state changes to "unload" (when the offset travel portion of the task is done) I start the movement of the fork by setting the respective nodes in the variables node of the transport.
Finally, when the task finishes I have them move back down to the default height of 0.75.

lift-no-rotate_onStartTask.fsm

As you can see even this "simple" example got quite complex, so for modeling the final object I would definitely recommend building a custom task executer out of the "BasicTE" object. With it you can write you own logic of offset travel in the "Begin/Update/Finish Offset" triggers. This allows a higher degree of control.

https://docs.flexsim.com/en/22.0/Reference/3DObjects/TaskExecuters/BasicTE/#overview

lift-no-rotate_basicTE.fsm

I hope some of this is helpful to you.


· 2
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

This helps a lot. Thanks.

Did you write all that code in the triggers? It's quite complex.

Could I have achieve something with a lot less code by editing the visuals/animations of the standard transporter?

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Patrick Cloutier ·

If you were to control every part of the movement via process flow (no 3d logic) then you could probably achieve something similar based on the default transport relatively easily. This would get around the issue of the fork movement being part of the offset travel (which makes it difficult to time right otherwise). The target location of the transport could be gotten from the slot ("slot.getLocation(...).project(slot.storageObject, model())"). Then the movement is done in steps: Drive to target location -> Raise "fork" -> Unload -> Lower "fork".

For example, the load/unload procedure in the following video uses kinematics from the point on at which the transport arrives at the aisle and moves the forks by setting the respective variables in the tree.

Youtube: FlexSimGermany
https://youtu.be/dEBKzLK_sAQ?t=62

0 Likes 0 ·
Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered

TASKTYPES

Pickoffset / Placeoffset to divide offset travel in phases of independent travel directions.

5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.