I am trying to create a system where 4 pallets are grouped together with a 5mm difference between the pallets and then sent through the system as a group of 4. I have tried this with the works library however this causes issues with the interaction with the process modelling components downstream.
I have tried to work get the transportpatternin function (similar to the works library statement) however i have not been able to get it to interact with the products produced by a feeder.
I am using an advanced feeder in my model. I could not connect it to the flow as it does not have a transport node. So, for that, I attached a conveyor to move the products out of the advanced feeder. After that, I attached a from conveyor transport node to the conveyor belt and connect it to the flow. The products created are still not moving from the conveyor to the next node.
Process modeling requires that the products that you use are predefined as product types, and then created with a product creator. The older feeder components are using a component creator instead of a product creator, and thus cannot create products. The more recent feeder components that are in the Process Flow Components collection can create products.
Thank you for the help with advanced feeder. I tried to run the simulation model which you tested and sent to me. As soon as i open the model a error in the output is shown even before running the model. I have attached the photo of the error. And when i run the model that you sent, only one product is moving to the next process. After that the other parts are not moving to the next process.
That version requires the latest VC 4.2.2 software version to work properly. I made some modifications to the converter and now it also works in earlier 4.2 version. Test it out and let me know if it works.
Model_Manual.vcmx (4.0 MB)
I guess you are write, i have software version VC 4.2. I tried to run the model but still it is not working. No a single part is moving to the next process. The are nor errors shown in the output panel. I have a student trial license, which is valid for 30 days. So, is it possible if i download the latest version VC 4.2.2 and use the same license.
Thanks you for the help. I installed the new version and the component created by you is working properly. I noticed something unusual, as you know with the help of advanced feeder we can created custom property. When the product are created in advanced feeder they have those custom property but as soon as they pass from the to product converter node those property are erased. For example, i have created a custom property named ProcessTime which is shown when the part is created but when it pass the to process node it is not visible any more. I have attached the picture.
To get around this issue you cna create multiple product types with unique properties, and use IF/ELSE or SWITCH statements to create the desired product. See the attached picture for an example. The Type filter can also be changed so that it is based on the parts ProdID instead of name.
I want to know that how can I model a feeder to create a pallet with a definite number of components using process modeling. The tutorial videos I saw on the visual component academy demonstrates a robot palletizing a pallet with components.
To get around this you can utilize two feeders, one that creates the pallet and another one that creates the components on the pallet. You can then populate the pallet with Transport Pattern In statement.
I made an example layout that has two feeders and one sink. You can adjust how the pallet is formed by modifying the TransportPatternIn, Product Creator and Transport Link properties.
PM_Pallet_example.vcmx (836.4 KB)
Creating a pre-filled pallet in Process Modeling is very useful to my problem, but it only solves the problem in half. Next, where to get a human (Otto or Anna) to pick up products one by one from the palette. Is this possible with Process Modelling?
Picking up products one by one is possible just like inserting products one by one. I modified the example layout so that a human empties the pallet at the sink. This is done with the Detach statement, which detaches the crates from the pallet. Then the crates are transported out and finally, the pallet is removed.
PM_Pallet_example2.vcmx (2.5 MB)
What's the best way to create the widget on my test suite SetUp method and destroy it in the TearDown? Is it possible to use a visual widget in a console application? I don't need to display it, or even process events. I just have to create child nodes and access the data.
Sure, in my sunny and distant future, I'll refactor the code of this 21 thousand lines form, all my data will be in beautiful data structures and these kind of tests won't be necessary, but now I need it.
You can however create an invisible form and place invisible controls on it. [edit] See David's answer for a way to do that. [/edit]That way you may be able to test it. And you could use visual controls too. there are even test suites that can test visual controls by running some kind of prerecorded macro that fills in a form and pressed the right buttons.
But in fact this isn't the right way. GUI testing is different from Unit testing. The business logic should be seperated enough from your GUI to be able to test it alone, apart from the GUI and from other 'units'.
And 21 thousand lines isn't so much, is it? Got half a million lines here (alhough I wouldn't like needing to refactoring them either). :) Take it a step at a time. Refactor little pieces and write unit tests for each refactored piece. That way, you can keep your test for the future, because they will be usefull, even when all your code looks great and structured.
That sound good but keep in mind that Feeders from the Feeder folder will not create products and are thus not compatible with the process modeling system (process tab). The feeder I used is from the PM flow components folder.
Open the signals map in the Connect tab and connect the BooleanSignal with the CreateSignal of the feeder.
Run your simulation!
Hope this will help you, if you have any questions, please let me know!
Jacco
I have visual components professional. I believe creating boolean signals of this nature is allowed by the version of VCP I have, but I am having difficulty finding where to create the Boolean Signal.
I created the behavior in a Conveyor component I found in eCat. Next, I set the input and outport ports of physics path to In and Out interfaces. Finally, I created a simple geometry to divert components to either side of path.
Hi Zezty, this is due to the fact that the part that you have created is not in physics world. Try to create a component and setup the the phys. behavior and the phys. collider in the geometry tree to for example box. Then translate the component somewhere on top of the conveyor, run the sim and see that it falls and travels along the conveyor. If so, the conveyor is setup nicely. After this save the component to local folder, and drag and drop the shape feeder to your layout, and attach the part to the top node of the feeder. Now the part will most likely fall thru the feeder, so you need to set the phys. collider of the feeder geometry as well.
I also want to turn on/off Physics in conveyor using component property. Is it so that I just create a Boolean type property and Python script that sets the Collider property of root features to None?
Hi, did not check your edited one yet, but please check attached files below. Basically everything works as you wanted i think except that the part will jump to center of path when tranferred out from the orange box conveyor, due to the flowproxy. (Also the materials are shifting, known bug). If the green part is not fed, attach it to the blue circle of the shape feeder and run sim again.
example does not work after about 40 seconds. it is the same issue I am having when trying to switch the internal connections to handle multiple inputs and outputs by using a port signal in proxy: the connections eventually break or do not get set. that is, when the conveyor is handling two or more components at a time.
i ask because making the same component twice is not what I want to do. for example, I do not want to create two stamping machines, and if I have Works library layouts would it be possible to loop through all the components and add Physics functionality that can be disabled using Boolean property.
Well, if you are handling more then 1 part at a time, you would have to extend the example with some sensor that can sample both the physPath and the normPath, i.e. volume or ray cast. I would choose ray cast, then you have to switch the correct output port when the part approaches the end of the path. Alt. you can have a book keeping, so you know what part entered first, and what port it should go out on. and then pop from that list when a part has left.
In newer versions the transition from logical path to physical path and the change of the kinematic type to be in physics from kinematics will (hopefully) be handled automatically. Things are still changing in the phys. implementation, so things might worker better in the near future.
Input Script
If you are using VC product then there are lot of components in eCat that can do this for you. If you want to use scripting, you can use component container and creator to first make the orange bottom, and then create each box and attach it and transform it where you needed it. But there are components and other ways to do this without writing code.
I managed to create the component with the Compnent Creator and also attached a conveyor to it. The difficulty was to adjust the coordinate systems(frames) so that the component is generated in the right direction. The frames of the conveyor were a bit messy as well, I just rotated and moved them according to my needs in the Modelling Tab and I hope this will not change them in the conveyor file, it should only apply changes to the file I am currently working in, I guess.
7fc3f7cf58