algorithmic modeling for Rhino
Hi !
I am trying to implement in Grasshopper the propose method by Kuijvenhoven and Hoogenboom in this article :
http://repository.tudelft.nl/assets/uuid:f957bbad-db57-4b57-8087-a5...
In order to validate the implementation, I am first building this really simple example you can find in the appendix of the article. The *.gh file is attached.
The idea is to inject a horizontal force in the member and checking his deflection. I have several problems.
1. Rhino is configured in meter. I am using Newton and Meter as inputs of the parameters. The value of 95000 Nm² force the Kangaroo simulation to "oscillates wildly" as the kangaroo manual say ! Is it normal in this simple situation ?
2. I have inject a small vertical force in order to leave the equilibrium of the perfectly horizontal member. However, the horizontal forces don't bend the member. Am I missing something ?
If I can manage to make it work, the next step would be to introduce the "shaping springs" proposed in the article, then to analyze the stresses and finally to adjust the stiffness of the shaping springs with Galapagos. I'd like then to study the final geometry in a conventional structural analysis software.
Best
Jean-Baptiste
Tags:
Hi Jean Baptiste,
From a quick look, the first thing I notice is that in your definition you are applying forces to the anchorpoints, which will have no effect. Anchored points will remain completely fixed, regardless of any force applied. If you want to have them free to slide horizontally, try using the AnchorXYZ component.
Also I see in that paper they are not concerned with the extensional stiffness of the springs, only that it is high relative to the bending stiffness, so the resulting geometry will not be dependent on the actual numerical values chosen for flexural stiffness vs applied load - only their ratio.
The shaping springs are an interesting idea - the CurvePull would give the same effect, though to adjust their strength based on the bending would require some further iteration...
Thank you both for your replies.
David, I tried as you said. Here is the result :
In fact the right point have to be fully anchored. The deformation is only due to bending, not to horizontal movement. As you can see in the last page of the article the final distance between the supports is the same as the length of the member.
I also tried to apply the forces on the second node and n-1 node, with no success (file attached).
Jssolly, I agree with you, the spring stiffness defined in my simulation doesn't reflect the reality. But I just want it to be really high compared to the bending stiffness, which is true. Saying that, I'm not quiet sure what represent the "Bending Strength", is it homogene to Nm² ?
Do you mean figure 17 (the one in your original post)?
There r (the distance between the supports) is less than L
The only way the lath could bend while keeping the distance between its end points fixed would be if it stretched. The force F is also being applied horizontally to the ends, which wouldn't make sense if they were completely fixed. The paper perhaps isn't very clear here, but I think they must be allowing the ends to slide horizontally.
Figures 18 and 19 map the distance s along the (curved) lath to the x axis and vertical deflection to the y axis ("Note that w is a function of s, which runs along the deformed shape of the lath"), and this shows that L is remaining constant (but not r).
No I meant figure 19 but you rigured it out.
Thx for your comments. I used in the attached file an "Anchorspring" for the right support. I also blocked the y and z directions. Here is the result :
The deflection is 2.08m for 2.01m in the article. I guess the 0.07m in excess are due to the small vertical force I introduced. So it now work. I have got to test the impact of :
- The number of nodes (cf jjsolly's comment)
- The stiffness of the right translational spring
David you are true, the article is not very specific about the horizontal stiffness of the nodes. P.32 : "In addition, a samll translationnal spring stiffness can be specified". So I understood it was optional.
Last remark : it is very slow, I need 400 iterations to reach the equilibrium, about 1 minutes of calculations.
A few ways of speeding things up:
-Don't use NURBS spheres to visualize the points, this slows things down a lot. Grasshopper points, or mesh spheres(with U and V set to a low value), or Cloud Display with blurry blobs are all faster ways of placing a dot on each vertex.
-Use the Kangaroo settings component and increase the SubIterations to 100 or more
-Increase the bending strength
With these changes it converges in around 1 second.
Hi Daniel,
Any thoughts on my query below regarding the method Kangaroo uses for Bending Strength? It would be really handy to know.
James
Thx, it is now really fast.
By the way, I realized I was calling you David, sorry for that Daniel !
Hi Jean Baptiste,
I'm also currently looking at simple methods of implementing this sort of active bending behaviour within Grasshopper. That paper has helped out already.
Looking quickly over your definition I'm not sure you've managed to input properties that accurately represent physical properties.
For example. The spring stiffness is the k of F=kx. For real properties you'd need to consider the length of the member such that k=EA/L. Attached snapshot shows the issue. For the red spots vs green spots all I have done in your script is modify the number of points that form the polyline. As you can see the difference in final form is significant and this should not occur if you have physical properties in place. There might be a small difference due to increased accuracy with more points but if you use the current definition then adding more points will increase the deflection seen.
Actually - a question I'd been meaning to ask Daniel - within Kangaroo what does "Bending Strength" relate to? I.e. is it a linear spring stiffness related to the angle between the points? Or is it a strength of snap of one point back to a straight line formed by two others? Any advice would be ace.
Hi James,
In the current public release of Kangaroo the BendStrength parameter is the multiplier for this vector:
So the average of the unitized vectors ba and bc
This vector multiplied by 4*BendStrength is applied to particle b, and the same vector multiplied by -2*BendStrength is applied to a and c
Hope that helps. I was thinking of changing this input slightly for the next Kangaroo release, because I realize it can be a pain if you want bending stiffness of a curve to be independent of the number of points used, but I'll make sure to clarify any changes when I do update this.
Cheers Daniel,
That's really helpful for now.
Not sure if this helps but i've been reading around the subject of how bending forces can be approximated in DR routines and the paper here below is quite interesting. This is also the method mentioned in the recent "Shells for Architecture" book. i.e. find the relevant shears due to bending and apply them.
http://formfindinglab.princeton.edu/wp-content/uploads/2011/09/Barn...
This isn't really dependent on number of points, you simply apply the rules to all points and input spring stiffness as a function of distance between nodes as per the paper variable Lc. Perhaps this could mean that the stiffness for bending functions much like the stiffness for springs in Kangaroo. i.e. you either care about "Real" properties and formulate stiffness as EA/L or you don't and you can therefore use zero-length springs with arbitrary stiffnesses. Then everyone is happy.
Hi James,
Yes, I'm aware of that paper and the older 'tensegrity spline beams' one, also by Adriaenssens and Barnes where they first describe this approach to bending.
The approach I use in Kangaroo (and described above) is actually a bit closer to the very similar one shown by Chris Williams here:
http://people.bath.ac.uk/abscjkw/ComputerPrograms/ProcessingProgram...
(and indeed studying this exact applet together with Moritz Fleischmann years ago was in a large part the trigger for the whole Kangaroo development!)
I believe that when the angle between each pair of segments is small and they are of equal length, these methods are effectively identical.
Ah. You are waaaaayyy ahead of me. Apologies. I am getting over-excited as I read more and more on the subject and try to work out how physical properties can be applied, as assessing that performance is relevant to some work we're doing right now (and actually to some work Harri Lewis is doing too).
Understood re: small angles, as the different vector directions utilised in the two methods will come together in that limit I guess.
Cheers for the link!
J
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by