I’m trying to incorporate a timber section size optimisation into Karamba.
The idea is to use a loop through Anemone or similar to add 25mm based if the section utilisation is less than 0.7.
The loop works, however the Karamba assemble model component exports the following error.
Recursive data stream found, this component depends on itself
Is it possible to use a loop with Karamba or is using evolutionary algorithms such as galapagos/octopus the only way to create a optimisation function?
The workflow is to assemble the truss, assign parameters, run and analyse for forces as per Karamba.
The forces are then extracted per element group where they are fed into a python script that checked the utilisation of timber for Tension, Compression, Bending, Shear, Bending and Tension, Major Buckling and Bending and Minor Buckling.
If the utilisation is greater than 0.7 the loop should be triggered to increase the depth of the section by 25mm (note I’ve only applied this logic to the elements in the blue circle so far due to the error). In a ideal world 25mm will be continuously added to the loop until the utilisation drops below 0.7.
Unfortunately as soon as I connect the loop to the depth I get the warning “1. Recursive data stream found, this component depends on itself”.
Due to this warning the analysis won’t run, so the forces are zero so the loop isn’t activated.
I have also tried using python to program the loop as a alternative to Anemone but to no success as i still get the same error from the Karamba Model View Component.
I am currently using Karamba3D 2.20.12-220322 for Rhino 6 Pro for commercial use.
sorry for the late reply. I just check the deformation, and it is correct. However my question is why do you need to trigger it with the boolean. If you have the boolean that compares the utilisation to 0.68 as the end of the loop, then that is enough for the loop set up. Then you can manually trigger the looping to start. I also had to plug the Data from the result otherwise I could not get the loop to work. I did not look into the python component, but the utilisation increases when the elements get larger, so basically the loop does not end. Is that correct?
That’s great thanks managed to get the script to work now.
Have run some checks on the revised script and don’t seen to get the issues where utilisation increases with section size. Only reason i can think for that would be as it’s a lightly loaded element its utilisation is driven by SW.