algorithmic modeling for Rhino

URGENT: Use multiple attractor curves to effect circle scale, error.

Hi there everyone,

Rhino + GH novice here.

I'm currently trying to make a lightshade for a linear pendant light, and I am wanting to create a cut out mesh of different scaled circles to accentuate the form where is it bending inwards. 

I'm using a grasshopper def to place these circles over the geometry, using attractor curves to influence the size of the circles at different points on the geometry. Unfortunately I cannot figure out how to use multiple curves as my attractors, and choosing multiple just results in the same output as if I had used one curve. In my attempts to fix it, i've tried flattening the input of the curves going into the curve closest point component as suggested in another users post, but that hasnt helped me.

I've gone through this process just using just one attractor curve, so I know I can turn this into rhino geometry, covert to closed curves and make holes from them, but not being able to use multiple attactor curves is really messing with my output.

Any help is appreciated, i've attached both files. I have to get this finished today, so i'm stressing a bit.

Thanks in advance,


Views: 590


Reply to This

Replies to This Discussion


Take a look at the attached definition. It'll take some time to open it due to trimming and need "Lunchbox".


Hey thanks for replying with the definition! Its exactly what I was looking to do!

I was just wondering if you knew how I could make the circles on the left end (in your screenshot) closer to the edge of the shape, so there isn't a solid section there?

Appreciate the help!

Because your initial surface has distorted U domain and rebuilding is not enough.

Try to fix the distribution of control points(U direction) more evenly by hand in rhino and re_reference it.

Unfortunately I cannot figure out how to use multiple curves as my attractors...

As always, a great deal can be learned from studying every detail of Hyungsoo Kim's code.

I would venture to say, though, that the most significant detail in response to your question is how he uses 'Pull Point' with its "Closest Only" option selected.

Here are three variations that take a different approach; they don't use a flat surface and 'Copy Trim' as he did.  Instead, they position circles on the original surface, 'Pull' them to that surface and use 'SrfSplit' to cut the holes.  I have disabled the green group in all three versions because 'Pull' and 'SrfSplit' can be painfully slow (see the profiler benchmarks in these screen shots).

The first one shows the uneven distribution that results from 'SDivide' on this surface, with holes close together at the top/middle and spaced too far apart near the bottom edges:

The second one, using 'SubSrf', divides the surface in only one direction, then uses 'Divide Curve' on one edge of each subsurface, to space holes evenly.  I used large holes to reduce their number so 'Pull' and 'SrfSplit' would complete more quickly:

Finally, the third version uses evenly spaced plane intersections ('PFrames') to get straight curves before 'Divide Curve', as in the second version:


Hey Joseph, I appreciate your reply! Your more simplified definitions are easier to work with, especially for a grasshopper beginner. I've ended up using the third one to get the result that I am wanting, thanks heaps :)







  • Add Photos
  • View All

© 2019   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service