Grasshopper

algorithmic modeling for Rhino

Hi All and Panagiotis,

I have again a question :
 
Let's assume I have an Object I would like to find an optimized structure for. I would start applying a single direction load and would get stresslines which I then would use to for example remesh/retypologise the input geometry, so that the edges of the mesh would always be tangential to one of the stressdirections. This seems to work well for a single load, however would this approach still work if there are several load cases ?
 
So for example you have forces in X - and in Y direction. These forces are temporary, respectively would vary over time. Just applying these at the same time does not make sense as the resulting vector would be 45 degrees between x and y, so the structure would be again optimized for a single direction force. So I wonder if there is a way I could superimpose results of 2 millipede calculations to find a stressbased structure which would be optimized for both load cases ? Would it make sense to find meanvectors of the XY stresses of the loadcases ? Does this all make sense ? May it be I did not understand how to set up the loads correctly ?
 
If anyone has time to answer I would appreciate it very much.
 
Many thanks,
Philipp

Views: 6034

Replies to This Discussion

Hey,

this is a common problem in optimization strategies following a direct link to stress directions / graphic statics / ... The only one being a bit more flexible is BESO, bidirectional evolutionary structural optimization which millipede also can handle.

An alternative is karamba, which also can do BESO ('Force Flow Finder') for beam/truss elements for multiple load cases (which i dont know millipede can handle, but likely i think)

a different approach, where you can also incorporate non-structural criteria like architectural constraints, environment, buildability etc would be using a genetic algorithm plus a suitable parametrization of your geometry. then you can superimpose a lot of load cases into the fitness functions.

plugins for that would be octopus or galapagos.

best

R

Hi Robert,

thx a lot for the reply. I was not familiar with the term BESO, but from what I have found on the net you are referring to a specific topological optimization method. There seem to be also other terms around like "homogenization", for a non expert they seem to refer to the same topic. Please correct me if I am wrong. I have tried this approach with Topostruct3D in millipede, however results were not satisfying from a design point of view as I am seeking for fine-grained lattice structures or ribbed shells like e.g. in some of pier luigi nervis work. Also higher resolutions of the voxelgrid are quickly hampered by performance issues. 

http://3.bp.blogspot.com/_xJWa77A8OSw/SuEMcFen8xI/AAAAAAAAE5Y/itDU8...

So I am not quite sure, but you are saying that trying to directly translate stressinformation into geometry will not work at all in the multiple load case ? I am familiar with the use of genetic algorithms from some galapagos examples, but I probably do not understand (yet) they way I could use them in this case. I saw some examples for shape optimisation with Karamba, however my goal would be to optimize the parametrization of the shape, rather than the shape itself. Doing this would require a very bulletproof remesher updating the geometry at every step.

I have attached 2 images of a very simple example with a cylinder showing stresses for loads in x and the other one for loads in y. You can see kind of familiar diagonal pattern appear parallel to the respective force. Stresses on the other side stay more or less horizontal and vertical. Imagining these forces coming from all sides, the structure which could cope with it probably best should resemble a diagrid, correct ? So I was wondering how you could simulate this kind of behaviour and transfer it to more complex shapes with probably, hopefully more surprising results.

Many thanks and all the best,

Philipp

Ps.: I think we have a common friend here in London, Christoph... and some at angewandte... Say hello from me to Chris Zimmel if you should see him around...

Nice, i'll meet Chris Z on Monday, Chris H next week in Berlin..!

So, what do you mean with 'optimization of the parametrization' - literally it would mean something like GeneticProgramming (as the Embryo PlugIn promised some time ago). But though I think to somehow get what you mean.

If you want to end up with a lot of members you could create a 'Design Space' for the ForceFlowFinder in Karamba using those principal stress trajectories on the mesh. Or use the forceflow finder which is way more flexible and gives nicer results - designwise its much better, I think.

However, so 

1) create a karamba / millipede shell-model

2) take the principal stress lines / force flow lines of your choice ..

3) .. to turn them into a lattice structure that is 'overfull'

4) make a working karamba model out of the lattice structure

5) apply the force flow finder with multiple load cases to reduce the number of lattice elements to a certain percentage 

..

or

1) you work with vector fields that you define using a genetic algorithm (e.g. the field component in GH works pretty fast, but has stability issues), so placing forces in a regular point grid within a, say, cube, by choosing the points' index

2) translate the field into a lattice structure

3) evaluate the structural properties for every load case and feed it in as fitness values

4) choose one of the solutions found or direct the search using octopus

.. second one is a bit unsure i feel, cause the translation of a field into a working structural model should be quite smart

good luck,

best

force flow in karamba might look like that (right one, left one is the principal stresses)

http://www.grasshopper3d.com/photo/1-click-karamba-for-any-geometry

you choose a flow direction vector, and analogous to a liquid flowing through a field of forces, the lines get distracted by the stress state in your structural model

Hey,

yes it is a small world after all, isn't it ? Sorry, I got it mixed up in my last post I meant "tesselation" not parametrization... however / also the idea behind johns embryo plugin is really interesting... I hope we will hear from it again in near future.
 
I think the first solution if it is based on stresslines of my choice as you say, make it reasonably dense and then take members out again with the force flow finder, it would be a structure driven from a very strong initial design decision rather than having an emergent pattern driven by multiple loadcases, wouldn't it ? Anyway I should try. I think I got a bit stuck with the thought that there is kind of a intermediate pattern with similar aesthetic quality which is a compromise between the stress-patterns of the single loadcases, but probably this is just taking things too literal...
 
I think the second solution might be harder to pull off, however closer to that initial idea... So in the setup you are describing you would have the vectors in the field as the genes for the GA ? Or is it one or multiple forces informing the field as genes ? Is it that's why you were also showing the example of the force flow being deflected by the stresses ? I cannot get it together at the moment. Well, I guess I have to figure this out...
I have written a component before which is creating nodes with connectivity information from polyline intersections and building up a new mesh (initially to directly transfer the stresslines into geometry), with some further improvements/changes I might be able to build up the lattice with this from the field. I will give it a shot...
 
Thank you very much for your help,
 
Cheers,
Philipp

Hi Philipp, Robert,

How did you transform the stress lines into a lattice-like structure?

Best,

Rafael

Hi Rafael,

Did you figure it out the solution?

Thanks!

K

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service