Grasshopper

algorithmic modeling for Rhino

Hello everyone, 

I am quite new to grasshopper but i am learning steadily. however i have encountered a problem that i wanted an urgent answer to so i decided to post it here.

Without further ado:

i have a number of boundary's that i use to define a group of points. for this project i need to reduce the size of my boundary's (via offset) to have more control which points i get  and which are left out. 

however if i give my #1 boundary's an offset and then plug the result in my containment feature it only contains a limited amount of points (when i plug in the boundary list directly it works fine). I suspect the feature gets confused by a list of list (dashed line) that it gets from the offset feature all tough i am not sure. any suggestions? or is there a way to make a list from my list of lists?

Views: 2586

Replies to This Discussion

Flatten... either as an option to the offsets output, the containment cuves input or as a separate component, will reduce a tree (list of lists) down to a flat list.

whoa! that was easy!

thanks alot!

great, the offsets and boundary's work together beautifully. 

however some there seems to be some discontinuity between the offsets. some point inward (as they should) but some flip the other way... why? (flipping te surface did not fix the problem)

any suggestions?

I think this has to do with the surface edge order, and is independent of the normal direction.  If you can't ensure that your base geometries are constructed using the same logic, with closed curve offsets you can do a workaround where you actually offset each curve both by x and -x, measure the lengths of both offset curves and select either the longer or shorter one, depending on whether you want the exterior or interior offset.

yes it does have to do with edge directions, i might give the workaround a try since it involve to many surfaces to flip manually.

thanks!

hmm giving the work around a try is easier said then done with my level of grasshopper skill.

i can get the positive and negative offset for all surface edges, i can connect it to an area to determine which one is the larger one...   but after that i come to a screetching halt.. any suggestions?

you're close...here...like you I take the slider and get its negative value...but I merge them back together and feed that output and your start surfaces into the offset.  Here I make sure that the "C" input is grafted, because I want to evaluate both offset values for each surface, and to ensure that gh knows that my offset values are a simple list I flatten that input.  This gives me an output for each surface where there is a distinct data path for both offsets.  But I want to evaluate the lengths of the curves against each other for each surface, so I shift my list and get a data structure of three branches each with two curves.  Then I get the curve lengths and sort the curves using this as an index.  The last bit lets me pick the shorter or the longer curve. using the list item component.  Because they're now in order, for the interior curve I pick the first value (the one with an index of zero).  I could have just used an index value of 1 to pick the longer or exterior curve, but instead reversed the list and picked zero here too.  This is useful if you have an unknown number of values and want to pick the largest one...hope these help you on your way!

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