question

Jason Merschat avatar image
0 Likes"
Jason Merschat asked Matthew Gillespie commented

Travel to Item Container without using Load Function in Process Flow

Using Process Flow - I am trying to have a Task Executer Travel to an Item Container location, which is in a Group of Queues, but not load it. I want to then implement a couple of delay functions, then load it.

Normally one would use the Load function and select Item Container for the Task Executer to travel to the location and load. I am a pulling from a List to determine the item that I want from a Group of Queues, then a TE will travel to the location, delay for some time to simulate a bar scanning function, then do the load function. So if I can find a way to access the container path properly in a Travel function, I can do it, but the Travel function does not allow me to reference the target Flow Item and its associated Item Container. I am trying the dot syntax for something like token.pulled.container??

process flowtraveltravel to location
5 |100000

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

Phil BoBo avatar image
2 Likes"
Phil BoBo answered Matthew Gillespie commented

The Navigator that a Task Executer is connected to controls that Task Executer's behavior when doing Travel tasks.

A crane is not connected to a Navigator by default.

The crane moves using Offset Travel instead of regular Travel.

You can get the crane to move to a particular location by using a Travel to Loc or Travel Relative task rather than a Travel task.

Load and Unload tasks include offset travel and moving of items from one object to another. That's why they work with the crane. A crane doesn't do anything during a regular Travel task unless you explicitly assign it to a navigator.

I've modified your sample model to show you an example of how this can be done with a Process Flow Custom Task activity.

8367-pf-crane-test-sanitized-traveltoloc.fsm


· 6
5 |100000

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

Jason Merschat avatar image Jason Merschat commented ·

This is another one of those things that is not intuitive; so I appreciate your help! I would expect this TE to act as it would for the Load and Unload functions using this Travel task and referencing the Container. this would be a great DEV change as well as the other crane Queue placement logic error we discovered this week... IMHO

0 Likes 0 ·
Jason Merschat avatar image Jason Merschat commented ·

Phil, Is it possible to reference the Flow Item X, Y, Z location itself using this technique instead of the container? This would give the crane more accurate positioning before Loading. I tried a couple of variations of your syntax, but I didn't have any success.

0 Likes 0 ·
Phil BoBo avatar image Phil BoBo ♦♦ Jason Merschat commented ·

Attached is an example model that gets the location of the top-center of the item, projects it from its container's space into model space, and then sets that value on a label. The crane then travels to that location and moves the item into it (using a Move Object task instead of a Load task to avoid an unnecessary extra offset travel movement).

This is the code that get's the item's top-center location in model-space coordinates:

token.pulled.as(Object).getLocation(0.5,0.5,1).project(token.pulled.up,model())

8367-pf-crane-test-sanitized-getlocation-project.fsm

0 Likes 0 ·
Jason Merschat avatar image Jason Merschat Phil BoBo ♦♦ commented ·

Excellent. Thank you!

0 Likes 0 ·
Show more comments
Sebastian Hemmann avatar image
2 Likes"
Sebastian Hemmann answered Jason Merschat commented
token.pulled.up
· 7
5 |100000

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

Jason Merschat avatar image Jason Merschat commented ·

Hello Sebastian. This command does not seem to have any effect. I searched for the "up" command and it is deprecated...sort of, but can find no definition of what it is supposed to do. I assume it looks at the treenode and then looks "up" at the parent node to get the container location. However, it is not being passed to the Process Flow in a way that the Travel function can use it, seemingly. It just passes over the step and takes no action and throws no error.

0 Likes 0 ·
Mischa Spelt avatar image Mischa Spelt Jason Merschat commented ·

Hi Jason. In response to your first comment: the up() command was deprecated. You can find the treenode.up property in the FlexScript Class Reference for the treenode class:

Description

Gets and sets the node "above" the node in the tree, or in other words, its parent node.

treenode box = model().find("Source1/Box");
box.up; // gives Source1
box.up.up; // gives the model

Setting the up property causes the node to be transfered into the target node.

treenode box = model().find("Queue1/Box");
box.up = model().find("Queue2");
2 Likes 2 ·
Jason Merschat avatar image Jason Merschat Mischa Spelt commented ·

Thank you for the explanation!

0 Likes 0 ·
Sebastian Hemmann avatar image Sebastian Hemmann Jason Merschat commented ·

Since all objects are structured in the tree the "up" command references to the Container object the calling object is in. Don´t know why it does nothing for you, but if "token.pulled" is the item, it should return the Queue you are looking for.

Maybe you can add your model, than we can have a look why it doesn´t work!?

Also attached an example where it works!

token-pulled-travel-flexsim201714.fsm

But you are right, the documentation for this isn´t existing. It looks as if up() became deprecated and .up was not included until now. I hope there are not more examples...

0 Likes 0 ·
Sebastian Hemmann avatar image Sebastian Hemmann Jason Merschat commented ·

Just got another idea for debugging, could you store the Information in a Label to find out what is written in this Label?

0 Likes 0 ·
Jason Merschat avatar image Jason Merschat Sebastian Hemmann commented ·

I'll try that. I am sanitizing and simplifying the model. I may be doing something wrong with a token... I tried opening your example model but there are file reference errors...

0 Likes 0 ·
Show more comments