Grasshopper

algorithmic modeling for Rhino

Project 2D Voronoi pattern onto a geometric object

Hi all

Is it possible to map voronoi onto a geometry which is shown in my attachment? My idea is to make it light and to save material. This is one of the twelve connectors for an icosahedron and I would like to apply voronoi structure on it, and to have design drivers such as:

1.) Number of Voronoi cells
2.) Size of Voronoi cells (diameter/radius)
3.) Thickness of the edges
4.) Smooth the Voronoi cell by Weaverbird 

Thank you

Views: 2621

Attachments:

Replies to This Discussion

Voronoi cells require a regular pattern of points on the surface or you'll just be using random points and it will look like an alien movie set piece. However, Voronoi is nothing special if you make your regular point collection via taking the dual graph of a nice equilibrated mesh made from Kangaroo 1 MeshMachine. That will give similar hexagons and a few pentagons as Voronoi likes to do.

Making it lighter is one thing but since hexagons and pentagons have no inherent structural locking stiffness, only triangles do, it may make more sense to just use a MeshMachine mesh itself and that would let you use thinner struts for the same strength, perhaps.

With both Voronoi and the dual of a triangular mesh, you usually lose the border struts, but that's just more work to add something useful back.

If I consider the entire piece though and allow the rod holes to also be meshed, I can just use a dual and not lose any border struts.

Attachments:

Hi Nik

I understand what you meant, but then I won't have full control over it like I do with Voronoi. For example, in the definition given by you I cannot freely adjust the thickness of the structure and the number of its polygons if you know what I mean. Voronoi provides more design drivers. But your approach makes sense, too and I quite like it. Just one question though, I just can't make it happen when I opened the file, like there's nothing happening at all. What's wrong with it? I don't even see mine like how you showed yours. Am I missing something?

Attachments:

Terribly sorry,  in your screenshot of the script I see I turned off Grasshopper preview in the toolbarfat the right as I was creating a baked screenshot. There's also the devilish green icon to worry about often, as people habitually use that to view only Grasshopper components they have selected on the canvas.

Ah I see. No my bad actually for not noticing it. That happens sometimes. Algorithm wise, I see there are 14 inputs excluding the first one with the geometry/brep part, is there a thickness control for MeshMachine so that I can freely change the thickness of the honeycomb structure? I have tested the length and boy it took long for it to run. I also notice that the numbers are written as text values in 'panel'. Can they be replaced with number slider? I replaced it for "length" and it works just fine. I was just wondering why you attempted to make them as "fixed" values that's all.

I don't use sliders much since once you even start moving a slider, it activates a slow recalculation so essentially locks up for several damn cycles. I just quick double click the panel to enter a new number. If the script is slow you can also double click a number slider to access a panel that lets you slide a value without invoking a recalculation.

You don't need most of the inputs, which are for controlling the transition to the borders of open meshes. No, there's no manual beyond right-click help.

FixC and FixV are to fix and thus retain open borders, mostly, or sharp creases and there is art in them, meaning tricks you just have to blunder into or search for.

Flip is an alternative remeshing strategy worth changing from 0 to 1 to see the effect.

MeshMachine is only giving a nice even curvature-adaptive (Adapt setting 0.8 or so is more reliable than 1) mesh, merely, not thickening mesh wires into struts.

The struts are currently individual capped mesh cylinders. You could also use very slow nurbs cylinders. They may or may more likely not successfully Boolean union together in Rhino. Their diameter is set in the Mesh Pipe component.

There are other plug-ins for thickening the wires of a mesh. Exoskeleton, Intralattice and my favorite, somewhat tweaky Cocoon marching cubes which is however very robust, and I sometimes run the overly fine mesh result into MeshMachine to make it regular and adaptive, since the Cocoon refine component is hard to control. I mostly enter 1s into most inputs though.

If you turn on menu item Display > Canvas Widgets > Profiler and zoom in close enough to the canvas, you'll see timer readouts for how long each component took for a solution, so I can see that the pipes are the slow part, so I'd normally right click disable the chain early on, and right click turn on preview for the earlier mesh step before I make the pipes. The MeshMachine step takes only 2 seconds, and that's with Iter (internal iterations) at 10 instead of a workable 5.

Also turn on Display > Preview Mesh Edges to see the actual MeshMachine mesh.

I baked it and looked at it carefully. It can be a concept design, but it cannot be printed. It didn't pass Shapeways' test. Yeah too thin, minimum requirement is 2mm.Upload Files

May have to make the ends solid then and massively beef up the body struts.

Now a 1mm radius strut will mean you have to scale your object up in 3D size to add another 2mm to the diameter of your holes.

I have an idea though. If we stared with a 2mm thick shell for the whole model we already rid the interior bulk mass and then we could punch a bunch of holes in that shell far enough apart that we don't re-introduce sub-2mm features between the holes. Then we could also just create cutting cylinders for those holes and manually delete ones we don't like, ones that screw up details of the hole areas.

The reason I want to switch strategy is to avoid having to use a very crude mesh that will fail to work well near the tight features of the hole areas. I can't seem to tweak MeshMachine to give both very rough body triangles along with much finer ones near the hole curvature. The dual becomes full of artifacts.

Playing around, I find the vast simplification that the Rhino Offset Mesh command works well with a mesh with holes in it, to create a thickened solid from a single perforated surface. So I just have to knock holes in a a mesh, thicken it to 2mm and I'm done.

Mesh offset I did manually in Rhino, with the Solid option turned on, to get a shell. Now this as it is leaves bizarre overlap at the cavity areas where the original model surfaces pass close to each other, and those could have some cutting pieces manually deleted.

Otherwise, you could test of Shapeways doesn't care about self-intersecting meshes, or run it through ZBrush Unified Skin or very expensive Geomagic Freeform, or rather cheap 3D-Coat that has voxels like Freeform does. Probably best to just delete any holes that cause the overlap, so do your mesh split manually in Rhino too, after deleting congested area cutting ribbons. Deleting the holes from the inside of the deep cavities should be enough.

The point of this strategy is that nothing else I tried worked well, basically, but making curved into extruded ribbons to cut holes in a mesh works quite well, unlike cutting with mere curves, and the Rhino offset command works amazingly well to make a thick solid even with holes in the mesh.

I did have to filter out overly small mesh dual cells since there was too many where the adaptive mesh required tiny triangles.

You do have to push the button leading into MeshMachine to get it to recalculate a nice mesh for getting the dual cells from.

I'm not even going to include the mesh splitting component since it can be very slow with lots of cells, but Grasshopper can't be stopped like Rhino can for the same near final step.

I'm using a nice fine MeshMachine-created mesh here, so it doesn't match the topology of the cutting ribbons which are made from a cruder MeshMachine edge length goal setting.

If you delete the cavity-located holes, the remaining outer holes will still overlap that tight area so you could cap the outer cutters there perhaps and use them for Boolean union to just cut indents there. Better to leave them solid, perhaps.

You may have to further scale down the dual cells if Shapeways balks about thin areas between cells even though they are 2mm offset in thickness everywhere now.

Oh, the holes have nothing to do with the self-overlap, actually, duh, so that's just a general 3D printing problem. You could model the end pieces separately, or just thicken your initial design to afford enough space so they stop intersecting when thickened into a solid shell.

Attachments:

"If we stared with a 2mm thick shell for the whole model we already rid the interior bulk mass and then we could punch a bunch of holes in that shell far enough apart that we don't re-introduce sub-2mm features between the holes."

This is also what I came across last night! Great analysis Nik! I think this approach is much more practical in terms of material saving. I'm gonna do some test with it. But first do you know where I can get MLoft? I don't seem to have that component. Been looking for it on net but ended up with nothing. Anyway I'm excited about your definition!

P.S. Oh and yeah I can thicken my initial design if it's necessary since it is also parametrically generated which can be done in a sec. Thanks for the tip! The reason why I came here for some help is because I struggled about material and cost of the connector/joint. I thought if I applied Voronoi to it then perhaps I would be able to reduce the cost. I tried but it didn't work. Each connector (the one you see in the picture) costs 45 bucks and I have 12 so yeah... But I do also love the honeycomb approach that you gave earlier. You know it's always good to learn from nature!

Attachments:

 Related: http://www.grasshopper3d.com/forum/topics/skeletal-mesh?commentId=2...

MLoft, yeah I had to search through myriad tabs since to invoke components I double click the canvas and  type keywords, never knowing what plugin is involved, and some plugins sneak into the normal tabs even. I found it in the normal Grasshopper Mesh tab in the Primitive group, and the right click help pop-up lists no plug-in name, and if you open my script Grasshopper itself should announce any missing plug-in by name.

Oh Asperger's!, why don't these guys for free list this info in their damn help entries?! It's not on Food4Rhino either? Since it's not a formal plug-in, Grasshopper can't even alert about it. What if I sent my script to a paying client as a first impression? I'd be even closer to being homeless in Manhattan.

http://www.grasshopper3d.com/group/milkbox/forum/topics/mesh-pipe-a...

I was a lighting designer for over a decade by the way:

http://www.e-dot.com

 Also, free Autodesk Meshmixer will solidify self-overlapping meshes and let you do overall smoothing etc.

Also be aware of the hidden MeshRepair Rhino command and Rhino Analyze> Edge Tools> Show Edges both being crucial to spot mesh errors.

Thanks Nik! Very appreciate it!

As of today Meshmixer has a real manual too:

http://www.mmmanual.com/

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service