Combining Karamba And Anemone

Hi,

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.

  1. 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?

Kind regards,

Will

Hi Will, generally loops should not be an issue in Karamba. Are you able to share your script so that we can double check this.

Hi Mathew,

Thank you for getting back to me.

Gillette Truss - Timber- Anemone.gh (120.1 KB)

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.

Kind regards,
Will

Hi Mathew,

Just wondering if you have had a chance to review the the script?

Kind regards,

Hi Will,

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?


Gillette Truss - Timber- Anemone - mat.gh (130.1 KB)

Hi Matt,

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.

Thanks for you help.

Kind regards,