algorithmic modeling for Rhino
Dear friends,
I am in love with grasshopper, can't wait to learn more this summer!
Currently I am working on my architecture bachelor project and making a mesh-facade containing of a wave-like surface witch should have perforated holes in it.
I have done the surface from several sinus-curves which has been lofted together to simulate rippling water. Then I add some holes on the lofted facade from a "Curve Analysis Holes" definition from co-de-it. There is a problem though, this definition from co-de-it only puts holes/circles which are surfaces on the lofted surface, it doesn't make actual holes/perforations in the loft...
Is there a way to transform the surface circles from co-de-it to cut holes in the lofted surface? I have tried two things to make this happen.
1. In GH I have extruded the surface holes from co-de-it and then made a "BBX" and "SurfaceSplit" so that the extruded holes (now pipes) can cut into the lofted surface facade and then only Bake the lofted surface with holes into it. But It does not seem to work, even though I thought this was the way to go.
2. The other way I tried to get the holes to cut into the lofted facade surface was manually in Rhino. After I have baked out the lofted surface as an object and then the holes from co-de-it as a separate grouped object I can manually extrude the holes on "both sides" of the lofted surface to then make BooleanSplit and thus cut away the holes from the lofted surface. Problem is that in order to do the operation manually with Rhino it takes much ram, else it will crash. I have 16 GB ram with additional 16 GB virtual RAM, and still it crashes while calculation the Boolean Operation.
The loft is my own definition and the holes comes from Co-de-iT as a "curvature analysis pattern"-definition. I will try to solve this meanwhile as I am eager to find it out. Please have a look you too!
Many thanks,
/Sweden
Tags:
Here is a nice picture of how it looks when I extrude the holes to later make the BooleanSplit and cut the holes in the lofted surface. Problem is this is done manually in Rhino and crashes the program after a while. See attached picture.
Thank you very much Danny,
Seems like you solved it the best way!
I will immediately try your def. Thanks also for the time calculation, cause I am going to have 20 times more holes and have only one quad core 2,7 Ghz. Hope I will be able to use the file after it is Baked afterwards, else I don't know how to render it.
Thanks again, will go for this now.
Kudos.
So amazing, it works! Danny I am truly deeply thankful for your help.
I have tried to solve this def. my ways for two days and finally. Now I will try to make 20 times more holes for a facade that is 2,5 times the length. Luckily I can use one core at constant 3,5 Ghz, but will still take 3 hours or more. So will Bake it directly. Hope that Rhino will be able to orbit around it. Later I will export it to Lumion, but as of now I am skeptical about that :/.
Will post my b.arch project to my web page in early June!
See attached GH-solution as of now.
Unfortunately it takes a lot of time cutting out the holes (30 000 holes). I let Grasshopper work for 4 days and then the computer crashed. I started another session with just 9 000 holes, then it died after two and a half days. Unfortunately Grasshopper cant seem to tell how much time it should take...
Seems I will have to use UV-mapping in V-ray instead, to simulate the holes and the incidence of light. Seems like a clocked CPU @ 4,4 Ghz is the way to go if you like Rhino/Grasshopper.
Hi Andreas,
The original Loft surface is quite dense, with 1,001 points along the V direction.
Rebuilding the Loft surface (degree 2, 6 points along U and 100 along V - see attached picture) results into a max deviation from the original geometry of 0.015 (I don't know if this is acceptable) and speeds up the projection by approx 65% and the splitting by more than 80%.
Regarding the long times, it seems that after a certain amount of holes the solution time increases at a higher rate - for example cutting 100 holes takes about 1 seconds, while cutting 800 holes takes more than 2 minutes.
You could split the 30000 holes in smaller groups (using domains and sublists), calculate the resulting geometry, bake it and use it as the base geometry for the next cutting operation - it's a bit tedious but much more reliable IMO than having a computer working for days.
best,
Marco
A million thanks Marco!
Did not expect an answer or better solution, but this is just great! I have rebuilt the surface with a deviation between 0.1 - 0.5 which is ok. Using domains and sublists is more than I can handle for now.
It is annoying having a computer working for days, when this should have been so simple to calculate! But will try 15000 holes and give it another two days with this help.
Thanks Amigo,
Andreas
I'm happy it helped.
I'd really suggest you to try to divide the cutting holes into several groups (at least 4-5), it's not very difficult and it could save you (literally) days.
I have attached an example based on your original file, it could give you a starting point.
Best,
Marco
Unbelievable how helpful you are!
Luckily I understood the way the definition works and have adapted it to my final Wave-facade and final number of holes (300 in x-direction and 50 in z-direction = 15000 holes). I worked for half an hour to divide the 50 rows in z direction into 50 groups where each one is responsible of calculating 300 holes in x-direction.
Even though each group calculates 300 holes, it still takes longer time for every group. The time increase is linear, why the first 300 holes takes 15 seconds the next 300 takes 75 seconds, next group of 300 holes takes 134 seconds and so on. The last group (group nr. 50) should take 3000 seconds to calculate. I don't know if it should be like this, even though we have divided them in smaller fractions??
Based on that I made a function in Excel that approximated this new definition to get calculated in 21 hours (@ 3,5Ghz). It will take slightly longer as I only use 2,7Ghz during work hours, meaning it will take up to 30 hours. But far better than weeks, which I now realize could be the case with the definition I was working on before.
Think this is the optimal solution for now.
Will let you know how it goes. Thank you again Marco!
Yours,
Andreas
You are welcome Andreas.
I'm not sure, but the time increase might depend on the fact that at each new iteration the surface gets more complex - you could do a couple of tests.
If this is the case, an idea could be to manually split the surface into a number of stripes using its isocurves, and then divide the holes accordingly so that each cutting operation acts on a single stripe of the surface.
Then, you could re-join together the stripes into a single polysurface. Mathematically it's different but for most purposes it's really the same thing - and again, it could save some days :)
Best of luck!
Marco
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by