Grasshopper

algorithmic modeling for Rhino

Hi,

I am a bit confused with the plasticity Input for Springs in Kangaroo. Maybe somebody could answer me some general questions?

The plasticity is a factor of the rest length, right? I understand it like this: it takes the spring with its length, that is given through the mesh geometry and pulls it toward its rest length. now what is the initial value for the plasticity to act? the rest length or the actual line length?

an example:
My mesh edge is 1.5 m, the rest length is 1 m and the plasticity is 0.5

does it take the rest length of 1 m as the initial value and says: "if the spring (by any reason) gets shorter than 0.5m  (1-1*0.5)  or longer than 1.5m  (1+1*0.5),  i will stop pulling."

or does it say: "my spring is 1.5 m long. if it gets shorter than 1m  (1.5-1*0.5)  or longer than 2m  (1.5+1*0.5),  i will stop pulling"

and how does it alter the rest length when the deformation exceeds the given value? does it increase or decrease it in steps? which value does it choose as the new rest length?


thanks in advance
benjamin 

Views: 1613

Replies to This Discussion

Hi Benjamin,

I'm glad to see someone is taking an interest in the plasticity function, as I've not heard much about people using it so far, and I think it is a feature with a lot of interesting potential.

It works as a factor of rest length.

Say you have a spring with rest length R of 10m and plasticity P of 0.5

If you apply forces which stretch your spring to an actual length L of 14.9m (or compress it to 5.1m) it will still return to 10m once those forces are removed. Also if you give it a starting length of 14.9m it will try and reach its natural length of 10m as soon as the simulation starts.

If you apply forces which stretch the spring to 15.3m, so that

abs(L-R)P

it behaves plastically. So it will alter it's rest length to put it right back on the limit between plastic/elastic. Which in this case would be 15.3/1.5 = 10.2m

If we then release the spring its length will return to 10.2m

If we were to continue stretching so that its length became 15.6m, then its rest length would increase again to 15.6/1.5 = 10.4

These adjustments of rest length actually happen at every iteration, so in practice the difference between actual length and rest length will never go more than a tiny amount beyond R*P, and only for one timestep before being altered.

I hope that helps clear things up

Daniel, 

Is there any way to have more control of the plasticity adjusted rest lengths. For instance if I wanted springs to rest at the closest standardized length (ie. 10, 10.5, 11, 11.5 or whatever values I want?). In the spring scenario mentioned above, if it stretches to 15.3 the rest length remains at 10 but if it stretches to 15.6 the closest rest length would be 10.5 

To adjust elements to have one of a set family of lengths (eg whole numbers in m)

it is not plasticity that should be used, but multiple springs per element with upper and lower cutoffs.

See the attached definition for an example.

Attachments:

To clarify -

A normal spring is like this:

Whereas by using multiple springs with different rest lengths and upper/lower cutoffs it becomes something like this:

So it will settle into one of the energy dips, unless you push it over the energy peak into the next one

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service