Grasshopper

algorithmic modeling for Rhino

Hi Grasshopper friends,

   I am very rusty with Grasshopper these days and I am having trouble to get the surface in between the curves. What I am trying to achieve is a panel system with holes that I can use as a façade. Can someone guide me in the right direction? So far I have the circles I want, but not the surface in between. If anyone could offer some help or a new definition I would highly appreciate it!

Thank you!

Dana Ladd

Views: 2193

Attachments:

Reply to This

Replies to This Discussion

Normally you surround all the holes with planar curve that doesn't touch any of the holes, then pass it and all the holes (flattened) to a 'Boundary' surface.  However, it usually doesn't work (for me) with that many holes; the computer tries forever and I eventually have to kill GH/Rhino.

Ya I think that's what my problem was.. I added a Crv to the parameters of the circles and conected a Boundary Srf to the Crv and to the circles and it would crash... is there any way this is possible?

You could do it in pieces.  The number of circles in a single column or row (maybe several columns or rows) won't be a problem for 'Boundary' to create holes.  Here is one way of doing that; I used the grid cells to get the bounding surfaces, shifting them in X and Y by half the grid size so the circles are centered in the squares.  This leaves the right column and bottom row of circles without "cover", so to speak, so one of the groups removes those.

A very long-standing, well-known bug in Grasshopper fails to save the Image Sampler component when I save a copy of your file.  Very annoying, but there is a work-around.  Copy/paste and connect the Image Sampler from the code you posted above into the place I reserved for it.

You might want to explore the idea of a lower resolution to your grid, yielding larger holes?

Rendered images can show lines between columns but they are just rendering artifacts.

Attachments:

Joseph, 

Thank you so much for adding to this definition, it works great and looks amazing!

It will definitely come in handy time and time again!

I appreciate you taking the time to do this for me, your awesome :)

Sincerely,

Dana

Be sure to use today's version, it's way better: ImageCircles_2017Jun1a.gh

Thanks for your insights Tom.  After posting last night and trying different render view options, I realized that these "rendering artifacts" are very persistent!  The only thing that worked is to disable the ground plane, which means no shadows.  :(

Perhaps due to minor flaws in the method I used (moving the grid cells, using 'BBox' on them)?  I can think of other ways such as 'Isotrim' to get subsurfaces of arbitrary size, or 'SrfSplit' instead of 'Boundary'.  Might give it another try...

300,000 holes!  That's twenty times more than this model.  How does anyone manufacture surfaces perforated with so many different sized holes?

This is a method that works well. It's a complete re-write with various features to tune the results, including scale, resolution and the number of perforated sub-surfaces (more reduces the number of holes on each so speed increases). Zero radius circles are skipped.

The image dimensions in pixels are defined in small panels (X=485, Y=759) and used to calculate height/width ratio. That is used to define height based on the 'X' slider (500), which defines width overall.

The 'cell size' slider is also in units and determines resolution indirectly. For any given X value, increasing 'cell size' reduces the number of grid cells (resolution) and vice-versa.

Independent of other parameters, 'Isotrim (SubSrf)' splits the base surface into sub-surfaces, onto which the circles are projected. The 'SrfSplit' does the heavy lifting (can be SLOW!) and finally, 'Sort' is used to select the resulting surfaces that contain the holes.

Benchmarks:

X = 500, cell size = 10, 3161 circles
nine subsurfaces: 'SrfSplit' = 6.6 minutes, 'Project' = 13 secs.
16 subsurfaces: 'SrfSplit' = 2.3 minutes, 'Project' = 17 secs.

X = 500, cell size = 5, 12542 circles  (shown)
35 surfaces: 'SrfSplit' = 30.6 minutes, 'Project' = 57 secs.

As noted before, a very long-standing, well-known bug in Grasshopper fails to save the Image Sampler component when I save a copy of your file. Very annoying, but there is a work-around. Copy/paste and connect the Image Sampler from the code you posted above into the place I reserved for it.

"Pro Tip": Always work at low-resolution until your algorithms are proven before cranking up to 10K+ geometry counts!

Attached file has low resolution settings with 'Project' and 'SrfSplit' (red group) disabled.

Attachments:

X = 500, cell size = 5, 12542 circles (shown)
35 surfaces: 'SrfSplit' = 30.6 minutes, 'Project' = 57 secs.

Using 70 surfaces instead of 35 (U=7, V=10), 'SrfSplit' drops from 30.6 minutes to ~10 minutes!

Extruded; thickness is the same as the grid cell size.

This version (ImageCircles_2017Jun1b.gh) is a dressed up version of the earlier post today, with a small change to the blue group labeled "Remap Sampler".  It now has two sliders instead of one, allowing you to set "Min % Grid" as well as "Max % Grid".  As shown, the smallest circles' radius will be 25% (0.25) of the maximum radius (1/2 of "cell size"), the largest circles' radius will be 90% (0.9) of maximum.

Attachments:

It now has two sliders instead of one, allowing you to set "Min % Grid" as well as "Max % Grid". As shown, the smallest circles' radius will be 25% (0.25) of the maximum radius (1/2 of "cell size"), the largest circles' radius will be 90% (0.9) of maximum.

This is a rendering with those settings, same resolution as before (12,542 circles):

It may look pedantic and obsessive to spend this much time on a GH model, but it's a great way to learn and the improvements are real.

These are awesome! Thanks Joseph!

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2019   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service