algorithmic modeling for Rhino
I've been trying to get a good way of creating a mesh from lines for a long time now.
I've just started to try the Starling tools which look promising.
I start with a set of lines / curves and pipe them, then use the the slFastMesh component and finally Weaverbird Smoothing.
Can anyone tell me why the attached definition will not work when all the pipe radii are the same? It almost works when the pipe radii differ by a very small amount.
Any other ideas on how to achieve a mesh from a framework of lines would be great!
Tags:
For some reason I found myself dealing with line network structures and nodes so I though I could resurrect this post and take a stab at this topic starting from David's definition.
What I added-modified is:
. simultaneous processing of all nodes
. direct mesh generation (no in-between NURBS lofts)
. no more offset needed (it is awfully slow... I always try to avoid it whenever possible)
. crease in the nodes (so they can wrap the struts more precisely
. parameters now depend from struts radius
. node and struts catalog with structs topology and respective length
. maybe something else I'm forgetting....
Plugins needed are:
. Sandbox topology (line topology
. Starling (convex hull and star mesh)
. Kangaroo (cull duplicate lines)
Plus, there are a couple of user objects I made for froGH (https://github.com/Co-de-iT/froGH) - no need to download them if you don't want to, they're already in the gh file.
I know there are many more solutions out there, but found this pipeline quite fist and reliable (of course there can be geometry inconsistencies with some "extreme" nodes for what I haven't put a check... so keep your eyes open for those eventualities), especially if you have several nodes to process.
Hope this can be helpful to somebody (and maybe it leads to further improvements).
Nice with Sandbox. Before I was doing the node typology with just some native gh components like the attached (piped just to show where the connections are) without having dup lines, using more of a tolerance distance method. Never used the sandbox before. For the actual node I was doing the same with Starling convex hull and star mesh.
Nice work! Very quick! I've had a quick go plugging a geodesic dome structure into your definition and was impressed witht he speed.
One thing you might want to look at is when the angle between struts is small you end up with an overlap of the cylindrical arms of the nodes...
I had help from David Stasiuk dealing with this as his exoskeleton plugin has a method of calculating the distance from the node corner to the base of each cylindrical arm such that the arms do not intersect.
Attached is a sort of version of exoskeleton using GH components and within it you can see how he calculates the distance required to avoid overlapping arms. This was pushing the limits of my GH abilities just to try and understand it!
I've been re-visiting this topic for years now. My goal was to design nodes for line structures that I could actually make (I also want panes of glass in my structure though) My original idea was to 3d print the nodes. Although you can print the nodes you have designed, they are hard to print on a cheap 3d printer as the entire node needs support material. Also, strength becomes an issue unless you can afford to print in metal! I went dow the route of using square section struts so i could potentially CNC machine the nodes on my CNC router but it turns out it would require many jigs and fixtures per node unles I had a 5-axis machine!
I'll build that Geodesic Dome with glass panes one day though! :)
I've had this same discussion with David for that issue :D One solution I came up with some time ago was to calculate the half distance between the node arm starting point to the the neighbor starting points within that node and setting that distance as the maximum thickness size value allowed via the maximum component. Exo is nice tho because you can go as large as you like and it will kind of eat the intersecting vertices and solve the mesh.
Martyn, I didn't put a geometry check in there just because I was revisiting very quickly and intended this as a fast tool mostly for students and scale models, but I'm very aware of the issues you pointed out.
There are a few interesting things you've put in your definition that I always wanted to implement myself (just didn't do it for lack of time as this kind of stuff is not my main concern right now) and I think I'd might (given more time) re-work and integrate in the above definition.
Also, be careful that your definition does not work with more intricate line networks (cases in which the network is volumetric and not describing a surface, such as the example I included in mine, see also picture below), but I guess it has to do with a different aim and specificity: my intent was exactly having a fast solution for intricate cases and clean geometry for fast prototyping (yeah, given that some local issues with some nodes must be kept in check...), while I guess yours was quite another direction (real scale, surface-like structure).
Michael, I always prefer a topology-aware approach whenever possible, because it makes life a lot easier for all those other tasks as tagging, extracting data, etc. I also made a definition to extract topology from a line network with standard components only, so technically there would be no need for the sandbox topology component, but I find it very practical in many cases.
I had a proper look at that solution and I really like it, thanks! It gives me some more ideas of how to improve my solution too.
I will try and add slots between the nubs - I am thinking of 3d printing a geodesic dome and if I have slots running along the struts and into the nubs then I can fit panels!
Latest Mesh...
I'm creating mesh faces in groups...
1. The faces at the end of the arms
2. The faces in between the arms on left of arms
3. The faces in between the arms on right of arms
4. The faces on top of the arms
5. The faces on the bottom of the arms
6. The faces that make up the pentagon or hexagon on top of the shape
7. The faces that make up the pentagon or hexagon on the bottom of the shape.
Then joining these meshes and subdividing and smoothing with Weaverbird.
For the mesh faces on the bottom I'm a bit stuck because I have the points that make up the pentagon or hexagon and I have a single point in the middle so to combine these data streams I have done the following but it needs to cope for 2,3,4,5,6... lines not just for one of these...
The whole GH model is a bit messy to be honest... probably some smarter ways of doing this!
Looking Good!
aaron
Latest Mesh, now with cheap 3d printer friendly geometry :)
I scaled the polygons that make up the Convex Hull so that their heights always keep the base of the shape flat (so it will sit nicely on a heated 3d printer bed - it does suffer some smoothing which might cause the printer to try and add some support material, but I'll have to try and print one to see what happens.)
So, next step is to add slots between the arms to accomodate panes.
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
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by