algorithmic modeling for Rhino
I'm trying to number my points for hole placement in my tubes. But there are duplicated points at adjoining surfaces. How do I remove them? I tried using a VBscript downloaded from other forum to remove duplicated points. It worked, but my computer crash after that.. How should I remove those duplicated points?
:) I see..
so I tried to create the unfolding definition, but it's not that easy.. If you managed to make it in grasshopper, you can perhaps divide edge curves of that flat geometry with the same pattern, as you did on the 3d structure... So you'll have those points... the problem is, that the text tags have to be duplicated on edges of neighboring tubes (in other words - there are tags, that belong to more than one tube). Maybe you can leave duplicated points in 3d structure, but add the third part to the tag that will represent the order of tubes (1b-11; 1b-12....). So when you unfold, you can simlpy change the location of tags to unfolded planar shape and you don't have to worry about how to duplicate points to each tube again...
There are probably hundreds of possible solutions, as usual with grasshopper. So maybe some guys here can give you better advice..
well it was a tough fight, but I finally have some files for you :)
..there are some important notes:
1) it turned out that some of the surfaces in your original structure were not planar, so it would cause troubles with unfolding and fabricating... that's why I used Extrude point component- it will give you similar result, but all surfaces are planar.. you can control extrusion direction with a tip point in rhino...
2)I changed tagging so every tube has 8 points form list A and 8 points from list B... first number of tag is a number of point within one tube... last number of the tag is order of tubes (I draw a little picture in GH, hope you'll understand)...I think original way of tagging wasn't really usefull.. but you can change tagging by yourself...
3) the definition is really messy, sorry about that, but it's just quite complicated task...
4)if you find some incorrect order of tagging, use the slider that controls Shift List component ... it will shift tagging..
5) if you won't be using this definition or find some better way, pleeeease don't tell me - I'll jump out the window :D ... it took me whole day to make it work :D
6)I can't guarantee you anything- I hope it works, but if not - at least I tried... so check everything (especially order of tags and points) twice before you fabricate it.. or print few tubes and make them paper first..
7)there is a part of original definition, that is not useful anymore.. I left it there, but you can delete it (I called it "UNUSED PARTS OF ORIGINAL FILE")
Hi Dimitri, sorry for bugging you again =( Good news, I'm going to use your definition cos I really like the concept of using extrusion point to define the direction of the tubes! I've tweaked a little bit to get the middle point as my unrolling split edge.. Right now I really want to develop this script further by having multiple extrusion points. This system is going to be a proposed building skin, so it would be great if the tubes have various directions and sizes throughout a surface. Could you please help me with this? I think the general idea is to use components like Distance, Smaller Than, Larger Than? Well, you know best =)
Thank you so so much!!
ps. think it's a good time to change the discussion title
...well, there's one tricky thing about multiple extruding points... ...I used extrusion to 1 point because all surfaces will be still touching each other - they will not overlap or have gaps between each other.. If you use more points and divide octagons list by some distance-to-point parameter, so each tip has a certain number of curves assigned, you'll get groups of Breps (each group extruded to one point) that will overlap each other or have gaps between each other, although inside of each group everything will work correctly.. If it's ok and you don't need every surface to touch its neighbor correctly, then it's quite simple...
...but I think it's not the right way...
..to create irregular distribution of geometry between 2 surfaces you can combine domain tools (Math tab) and morphing tools (Transform tab)... I created a simple subdivision definition - you can control division by using graph mappers... you can also try other types of graphs..
..so you don't use control points, but domains to map extruded octagons to surface...all neighboring surfaces will stay connected... but there is also a tiny problem - surfaces won't be planar...
...as usual with GH- it's just one way among many others.. you can subdivide surface by different parameters like sun vector, bitmaps, curve or point attractors, static loads....it's not that simple though...maybe I'll come up with some smarter solution later..
p.s. I used mesh geometry, because it's much faster to morph.. if you need a rhino surface, there's a note in the file, that will tell you how to morph it..
well, here you go...
it's not very sophisticated - it doesn't solve point overlapping automatically, so you have to adjust some sliders... but...you know...
...this is how it works: you have a flat rectangular surface and 2 points (in rhino) on it...script adjusts attraction forces according to the distance between grid points and attractors...and finally it moves points in direction of vectors (forward or backward)....I use second "mapping" surface (the flat one) because it's easier to work with vectors and distances in 2d (so move those points only on the surface- in 2d)... then I just map moved grid points to the curved surface... and use those for creating a new surface (so it has deformed uv)... then I just create surface boxes and morph octagons...
...the deformed curved surface differs a little bit from the orinal one... and also surfaces of octagons are not flat - they are hyperbolic....and I'm sure there are more elegant ways...but ..."gh is driving me nuts!"... :D