Grasshopper

algorithmic modeling for Rhino

Disclaimer: I have no experience with grasshopper outside of browsing through the tutorials posted on this site.

 

Correct me if I'm wrong, but one application of grasshopper is being able to take inputs, manipulate the inputs, and generate geometry.

 

Now here's my problem: I have geometry. I need to know what the inputs are.

 

For example, let's say I already have some sort of CAD geometry. I can toss that into Rhino. Is it possible to do some fancy grasshopper manipulation to take some rather complex geometries and define certain parts of the geometry such that grasshopper (or another tool...I'm open to anything) can tell me what the geometry is numerically? For example, let's say that I have 50 different chairs. All different shapes and sizes and designs...but chairs nonetheless. Is there a way to define certain basic parameters (dimensions of the seat, dimensions of the seat back, number of legs, dimensions of legs, configuration, wheels/no wheels, wheel diameter, etc...) given my CAD geometry and perhaps a good amount of initial setup and minimal amount of effort to extract the information from each geometry file?

 

I feel like I'm asking for a lot, but then again I was amazed that grasshopper existed...so....

Views: 2178

Replies to This Discussion

I found the circles were fitting against the outside of the shape, which represents a local maximum but a low quality solution. By limiting the centre points to the region interior all of these local maxima go out of reach.

It's not an ideal solution as there are now large areas where a change in X and Y makes no difference to the fitness, but solving it properly would have required too many components.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Ah, I get it. Even limiting it to the bbox it could place some outside circles. I would have done something like 'if not inside then fitness = 99999' (but more components and also no difference to the fitness although I think it would discard them quicker).

I figured the best thing to do was limit X to the boundingbox, then for every X you come up with, find the nearest and furthest point on the curve that shares the same X, then Y becomes a linear interpolation between these two extremes. Barring concavities, this way you're also on the inside without any wasted phase-space.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Interesting the inverse engineering with Galapagos, maybe an example will be so helpfull, cuz a few days ago i did a 3D pice with randoms 3D populate points on a bounding box then with 3D voronoi i made the piece. and i lost the file now i have to work on that piece so i cant remembers the values of the sliders to achieve the same result

Isn't this, among other things, the virtue of BIM and GIS? Of course, if for starters your 3D model isn't "smart" it's a whole different matter. 

This reminds me when I was in an Urbanism course where we were given an Autocad city plan and maybe, for some reason, we needed the amount of city blocks. What I did was isolate the layer that had the city blocks, then join all lines, then [Overkill] all the other lines in order to remove duplicates, and then list the total amount of items.

So what I am saying is that maybe GH or Rhino won't give you the parameter you are looking for, but you could do an operation whose results are listed as a Rhino or GH default parameter (number of items, length, center of mass, volume...) which coincidentally is the parameter you are looking for. 

For example maybe you could do a script that sections each chair at the bottom and counts the number of closed curves, which would also be the number of legs (I know this would be prone to errors, but it's just to illustrate my point)

BTW, nice example David. 

Ah, I like your example Jesus. I didn't want to give any specific details about my problem since I find this open discussion with all users (architects! who knew?!) valuable. Now, let me explain a little bit more about my problem.

 

I don't really care about chairs (I happened to look around for an example and saw a few chairs laying around). What I really care about is turbomachinery. For example, I've attached a generic picture of a complicated axial fan geometry.

 

If I want to know the number of blades, I'm probably just going to count them, but this cross section idea is interesting. Does it work in circles? What I really want to be able to determine is the chord length of the blades at varying distances from the hub. (It other words, the straight line "width" of the blade at various locations along its length.) I also want to know how that blade curves. Can I quantify that with a function? I also want to know that fan's diameters. All of them. I want to know angles, what angle does the blade make with some reference frame at the hub? At the tip?

 

I can certainly go into the CAD drawings and measure each one of these things, but it would be awesome if something was smart enough to understand what I want to measure given a few different types of these fans.

 

Sadly, the geometry pictured is relatively simple compared with what I'm trying to do.

Attachments:

The problem with trying to extract info by doing sections is that depending on the subject the sections the resulting polyline can be fuzzy or jagged. But, I guess a section of the blades would be rather clean. 

If so you could analize them in GH with its extreme and derivative components. So if your input is a blade section (again, a clean curve), you could obtain where it starts and ends with the [Extremes] component. Then you could shatter the blade section at these points to obtain the inner and outer curve of the blade. And then you could analize its curvature with the second derivative. 

I had never used the [Derivatives] component. The results with a line seem correct (though f'' should be zero...), but with a spline drawn in Rhino it seems to give wacky results (though I'm not acquainted with the maths of splines). Maybe someone has some an explanation. 

Attachments:

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