Grasshopper

algorithmic modeling for Rhino

Hi Everyone!

I'am designing a small parametric brick wall where randomly selected bricks are 50mm proud of actual wall face. In my case stretcher face of brick is protruding out, which is not exactly what i want.

My intention is that the Randomly selected brick be rotated 90 degrees so that header face is proud of the actual wall face rather than stretcher face.

I can easily rotate the selected bricks and then protrude them in the desired direction. However, if i rotate the brick a gap is created on either side of rotated brick (refer sketch 1). I want to set a parameter that CLOSES THAT GAP, so that the wall remains watertight (refer sketch 2).

Brick size used 230mm (L) x 76mm(W) x 70mm(H).

Attached are

1) 1-Sketch: Explaining my conundrum

2) 2-Sketch: Explaining what i want to achieve

3) 3-Perspective: Baked Geometry of what i have achieved so far 

Please feel free to ask for my GH definition if required.

I'm an absolute dummy in VB scripting. 

So insight to solve my conundrum will be highly appreciated.

Cheers

Views: 2140

Replies to This Discussion

The pdf files can't be opened. Anyway, you can script it with GH, if you aren't familiar with VB

I was able to open them.

Thanks Chris, I still can't opened them after re-download the files and updated the pdf reader, It must been wrong with my download manager. Best

yasser, Thank you for your reply.

i have also attached my GH component, if you could assist!

Attachments:

Yasser Jpeg Attached. I do not Know GH Scripting either. Do you mean using Function Component?

Attachments:

Interesting. In Germany we have a 1/2 brick module and the stretcher bond has a row offset of 50% so rotating an uneven amount of bricks would automatically break the bond.

Looks like in NewZealand you have a 1/3 module and a 5/6th offset. So the bond would actually work. Still we have a minimum overlap requirement of 1/3rd for stretcher bonds. In a worst case, you will only get 1/6th of overlap in stretchers. maybe this will not be a valid bond...

Anyway, this is how I would try to solve the bond. Since you get stretchers and heads in separate paths, you can add your own logic for the protusion.

Attachments:

Hi Hannes,

Thank you very much for your help. New Zealand is a Earthquake prone country - 20,000 Quakes / Year and 250 Quakes / year big enough to be felt by public. Hence, we cannot use brick as a structural member. It can only  be used as a Veneer / Cladding. You may observe from my sketch that structural member is only a timber frame. Hence we do not need to have a valid bond as long as the brick veneer is tied together with each other and to the timber structural frame behind.

Nevertheless, though i understood the components used in the definition, i only partially understood the logic behind your definition i.e. only until 'Divide Dist' and Extracting the points. After that I did not understand the logic behind using

a) Extracting 40 random values and than using those values as input for Seed to extract another set of 40 random values.

b) Extracting list length, subtracting with random values created in (a) above and then dividing with number 3.

c) Duplicating the Datas

d) The most perplexing is using above logic (a,b,c) to to extract number of branches (number-40) by using Tree Statistics. If number 40 is the input we required for 3rd Random component Why couldn't we connect the List Lenght to Pramviewer and extract the number of branches (40) and connect the output to the Random Component?

e) Finally i did understand the logic behind creating 2 Vector to create the bricks. But i did not understand the addition following the vector.

f) Why do you use the function 'simplify'? - what does it do? I know it simplifies the data tree, but what does simplifying a a data tree do to the entire definition?

Hannes, i know this is quite comprehensive list of doubt, but your help is and will be always appreciated.

Cheers

AB

 

Hi Agneesh,

this def was done in a pretty relaxed state of mind and built as it grew. So there might be some potential for improvement. a) I am generating (in your case) 40 seed numbers to generate a unique random sequence for each brick row. At first i was thinking to pick a number of random bricks.. As you now only need one number per row, one single random component would do.

b) the method divides the whole curve into headers. Three headers make one stretcher. so I generate a list of 1 and 3 for headers and stretchers. There are (ListLength) headers. I want to have (Random Value) headers. ther should be ListLength-RandomValue headers left. Divide by 3 to get number of stretchers.

c) Duplicate "1" then number of headers, duplicate "3" the number of stetchers.

d) TreeStatistics was used because I was not aware, I already had the value form listLen... you can safely modify this.

e) The base point is the position of the brick. The verctors point across the diagonal. now I create a box from two points: the base and the point across (base+diagonal)

f) Simplify reduces data trees to its simplest form. You can have two trees that have the same number of branches. Depending on the way you create them, the paths may differ and they will not correctly combine. Simplify takes care of that problem.

Hannes,

That is brilliant. Thank you so much. yes i do appreciate that there may be a room for improvement, but the logic is spot on.

thanks again.

Regards,

Agneesh

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service