ATTENTIONThis FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices. |
flexsim.com |
#1
|
|||
|
|||
A lots of exits on 1 conveyor
Hello,
In a model, I need to put in a sorter with 100 exits. Is there a way to massively build the whole exit logic, including the conveyor, the decision point and the exit transfer? How have you done it in other projects? Thanks a lot for any tip! Lucie |
#2
|
||||
|
||||
Hi Lucie,
If you want to sort the flow of boxes into lots of exits,you would have to create several conveyor lanes after the decision point.In the properties of decision point you can send the items on continue by label or by itemtype to the output port of your decision point. |
#3
|
|||
|
|||
Ok, but is there a way to do it by code? Having all the information in tables for example?
O "automatically" assign a decision point to each conveyor of a specific type? Thanks! |
#4
|
||||
|
||||
Hi Lucie,
If you have the information of the objects to be generated in the global table. Here is the set of commands you can use. 1. createcopy()/ insertcopy command to insert an instance of an object into the model 2. Set the location of the created objects using setloc() command. 3. contextdragconnection() command to set an A connection between two objects.(Also, can be used to set S connection). Connection, between the two, conveyors can also be made by setting the end position of the first conveyor and start position of the second conveyor same ( Only for conveyor module). 4. Setting the position of decision points in a conveyor is explained in the following thread https://www.flexsim.com/community/fo...ead.php?t=3222 5. To access information from the table use table commands( gettablenum(),gettablestr() etc) Information like labels, colours etc can be added using setlabel() & color() commands. The above-mentioned commands will help you in building the model. Regards, Arun KR Last edited by arunkrmahadeva; 03-14-2016 at 10:38 AM. Reason: add more info |
The Following 3 Users Say Thank You to arunkrmahadeva For This Useful Post: | ||
sagar bolisetti (03-14-2016) |
#5
|
||||
|
||||
Hello Lucie,
I haven't got any direct answer to your question, but the thread Move Decision Point along the Conveyor by code could be a starting point. Maybe you place a lot of Decision Ponts at a dead end of your system and you move them to places in your system you like. But that is just weird idea. The modules aren't so open anymore to get an idea how they work or where to find the commands and functions. It remeinds me of the first Versions of Flexsim I tested - like the miracle "o" operator. Maybe Phil will help you. Jörg Last edited by Jörg Vogel; 03-14-2016 at 10:20 AM. Reason: Arun was faster with an answer and has got a better instruction |
The Following 3 Users Say Thank You to Jörg Vogel For This Useful Post: | ||
Steven Hamoen (03-14-2016) |
#6
|
||||
|
||||
Attached is a model with some FlexScript that shows how you can do some things programmatically with the new conveyor module.
The script creates a conveyor, connects a source to it, connects it to a couple sinks, repositions the exit transfers, adds a decision point, changes the decision point's type, and connects the decision point to the exit transfers. Here's the script: Code:
// store references to some objects in the model treenode source2 = node("Source2", model()); treenode sink3 = node("Sink3", model()); treenode sink4 = node("Sink4", model()); // create a conveyor treenode conveyor = createinstance(node("?StraightConveyor", library()), model()); double x = 3; double y = 3; double z = 0; setloc(conveyor, x, y, z); firecreateevent(conveyor, x, y, z, 1); // connect the conveyor to some objects contextdragconnection(source2, conveyor, "A"); treenode entryTransfer = last(model()); contextdragconnection(conveyor, sink3, "A"); treenode exitTransfer1 = last(model()); contextdragconnection(conveyor, sink4, "A"); treenode exitTransfer2 = last(model()); // adjust the positioning of the exit transfers along the conveyor treenode exitTransferPoint1 = node(">variables/transferPoint/1+", exitTransfer1); set(node("/distAlong", exitTransferPoint1), 3); treenode exitTransferPoint2 = node(">variables/transferPoint/1+", exitTransfer2); set(node("/distAlong", exitTransferPoint2), 9); // tell the conveyor to update everything based on the changes above function_s(conveyor, "finalizeSpatialChanges"); // create a decision point treenode dp = createinstance(node("?DecisionPoint", library()), model()); setloc(dp, x + 2 - xsize(dp)/2, y + ysize(dp)/2, z); function_s(dp, "finalizeSpatialChanges"); // connect the decision point to the exit transfers contextdragconnection(dp, exitTransfer1, "A"); contextdragconnection(dp, exitTransfer2, "A"); // set the decision point's type treenode dpType = node("/ConveyorSystem>variables/decisionPointTypes/1", model()); if (objectexists(dpType)) { nodepoint(getvarnode(dp, "type"), dpType); } // repaint the 3D view in a delayed windows message #define WM_PAINT 0xf postwindowmessage(windowfromnode(ownerobject(node("VIEW:/active>Documents/Perspective/1+"))), WM_PAINT, 0, 0); |
The Following 9 Users Say Thank You to Phil BoBo For This Useful Post: | ||
Steven Hamoen (03-14-2016) |
Thread | Thread Starter | Forum | Replies | Last Post |
Max content on a conveyor in new conveyor module | Arne Bracke | Q&A | 0 | 02-11-2016 08:49 AM |
Conveyor to conveyor transfer criteria | Christian Norregaard | Q&A | 6 | 06-18-2015 05:44 AM |
lots of WIP | Gavin Douglas | Q&A | 1 | 03-13-2013 01:42 PM |
What is the difference between a Conveyor and Basic Conveyor | shivrash | Q&A | 2 | 07-21-2009 04:09 AM |