Grasshopper

algorithmic modeling for Rhino

I am trying to connect points in surfaces so I can get pyramids in every second row. Also in the next column they should be shifted for one place. So no pyramids touches another. Kind of chess board.  

This is what I have for now:

Views: 551

Attachments:

Replies to This Discussion

you have two brep in your last column which you need to fix, for the chess board pattern check out the file.

Attachments:

Thank you! 

Yes, I know about those two brep.. I have been trying to fix that but I don't really know how, since I'm still learning GH. If you have any suggestion- please do say!

Here's an different approach I tried. Maybe there are a few techniques that you can learn from... I used your original file, and then built from the point where the method deviates from your approach.

It uses a structured pipeline so that its easy to keep track of rows and columns, I also discovered some neat techniques using the pathmapper.

the checker board filter is basically just pathmapper and prunetree for cleanup.

I've added it again at the end to apply to the geometry

Attachments:

reworked the input rails using pathmapper technique so that its more robust...it turns out its robust enough to accept freeform curves

Attachments:

Thank you. I will check it out and probably come back with more questions.

The thing is that I am quite unfamiliar with this path mapper thingy.

paths can be daunting at first until you get real examples to use them with. I cant imagine not using them now for when i have lots of patameters that i wamt to recall later. in your example i used two branches one for row one for columns so any data can be recalled or manipulated with alike paths.

the pathmapper is a way of changing the path address quickly with formulae. I tend to throw rubbish into {-1;-1} branch which is not possible conventionally. this branch can then be culled before generating geometry.
some basics about paths which may help....
in annotation they are enclosed in curly brackets { }
the seperator between paths is ;
path numbers are always integers, (typically 0 or above) hence -1 is my rubbish bin.

when using path mapper decide what category goes into which slot
{columnnumber;rownumber;customvalue1;customvalue2;etc}
each slot is represented with usually a letter, this can be any letter and allow you to swap category slot positions using the before and after in the mapper
when you have a list, it is given index numbers, these numbers can be converted to paths using annotation bracket (i). (this is what is happening when data is grafted)

pathmapper also excepts functions so you can use if commands on the branch,path or index number, (unfortunately you cant access the data itself)
in the checker example though the row and column path is all thats necessary to determin whether its a square on a diagonal because rownum + colnum will always be even or always be odd. an if function can test for this on the fly. if this wasn't the case i would create an extra group called patternnumber
{col;row;pat} which could hold many different cull patterns rather rhan just checker.

just have a play, be consistent when you use it. and you'll be a pro in no time.

any questions just ask

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