Grasshopper

algorithmic modeling for Rhino

uneven scaling based on attractors about chain creation. (includes a bonus question of orientation)

hi guys. here are another problems that i encounter while utilizing the GH  :)

i am still dealing with creating chains. what i am trying to do right now is to "unevenize" the growth of the scaling through the curve i use. as you can see in the image, i managed to make my chain units grow in one direction. I aim to finish with a definition which allows me to alter the growth rate according to attractors; points or curves. I have more than one question, so i will list them, and any ideas or help will be appreciated :)

now let me be more specific;

1(UNEVEN SCALING DEPENDING ON ATTRACTORS) - i can apply existing attractor based definitions (somehow) in other discussions, but the continuity of the chain breaks that way; they will be scaled depending to the attractors but i need to fix the chain manually. So my first problem is to find a method for gradual increasing and decreasing of chain units in multiple points on my curve. in the upside image, it is ok in growing on direction, but i want to achieve a result like in the image below.

2(CHAIN CREATION METHOD)-How i achieve these chains requires a manual input; either i must decide the total number of chain parts along the curve, or i specify the lengths etc. i tried to make an automation which calculates the distance between the two ends of a chain piece, and reduces some amount of it (in order to link two pieces of chain, the movement length amount should be less than the length of one chain piece for not to overlap in ends).

but when i do it, the first copy is moved the exact spot that i want from initial piece, but the rest are overlapping on end points, because my definition needs to re-calculate for each item that is going to be copied, but i found no way to fix it. 

I have an idea about a definition which checks for intersections of breps and moves the intersecting items till they don't anymore, but in a wavy curve in all x,y,z dimensions; i am not able to automatize each movement direction for each piece of chain. 

what i want to achieve is just creating a definition which only required inputs are a curve to define the path of the chain, and a brep that will replicate through the curve. (and if i would be able to add the uneven scaling feature from question 1, the other input should be attractors)

3(BONUS:ORIENTATION)-in this case of orienting the brep along a curve, there is a problem, because all frames are in the same orientation and it is not a realistic way of a chain to stay like that as in the image below;

as you can see, all chain parts are directed to same orientation. what i want to achieve is like in the image below, but i am not able to scale my chain parts like in question 1 and orient them as they should be in the same time, so i'm stuck here too.

I tried to explain everything in my mind in details to be as specific as possible, hope that this long post won't intimidate you. :) I added my study files. scaling chain ones are for question_1, the messed up definition for question 2 is also included. There are no specific definition files for question 3, all my oriented files have that problem.

thanks for any ideas, any help and for any efforts that you will make to enlighten me. 

Views: 1294

Attachments:

Replies to This Discussion

I may add additional info if required.

No one has no ideas?

Ideas, yes, time for this?  Maybe not.  I would suggest adapting the idea illustrated here, in the poorly named RecursiveBrick_2015Dec15b.gh, because it's not really recursive, just iterative, using Anemone:

http://www.grasshopper3d.com/xn/detail/2985220:Comment:1421795

Scale, rotate, move, scale, rotate, move...

The overlapping geometry of the links makes this an interesting case. Assuming you are varying the size of one link to the next by no more than 5-6%, so that the links still mechanically work with each other. The thickness of each link will also vary. So, make sure that the intersection of the links with each other will, in fact, work, as dissimilar sized links on a tight weave chain like this can cause binding (not a grasshopper issue, a physical manufacturing issue)

For question #1, uneven scaling based on at tractor, the size of each link will be smaller after scaling, you also need to move the link closer together (or further apart) than the previous link. Suggest moving the the centroid of a link along the curve, in the direction of the last link. You may want to rotate the link, using the curve normal at the point of the centroid, to align the link. or, if you want to be more precise, the center of rotation of this link will be in centroid of the last link; that seems more like what actual happens when you manipulate a chain with your hands. 

As the center, spacing and scale of the links of each chain is not linear, you may want to try using a recursive loop using anemone; which sounds complicated but is not; you base the position of this link on the last link, and loop as many times as you need.

Hope that helps, just some ideas of an approach, where I would start if I was going to make this definition.

use 'anemone' not hoopsnake

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service