Grasshopper

algorithmic modeling for Rhino

Hey Guys,

my first post here, and I need your experience in this dilemma I am facing.

https://www.dropbox.com/sh/munvt4fogdrs379/AABqPR2aa0j2UzbZIACSkOOw...

the vault surfaces in the file in this link are extracted from Revit, I usually use the command : UNFOLD to unfold surfaces, but with this here, I am converting the mesh to a nurb, but when I unfold, all the little parts unfold separately. is there a way to do this from the extracted file without remodelling everything from zero ? and how can I use grasshopper to aid me in such exercises, if its possible.

Thank you in advance :) https://www.dropbox.com/sh/munvt4fogdrs379/AABqPR2aa0j2UzbZIACSkOOw...

Views: 2260

Attachments:

Replies to This Discussion

Hi Mary,

You can export geometry as Solids from Revit. This would avoid the conversion from mesh keeping your geometry clean for unfolding..

Best,

F

Hey Filippos,

exporting to a ACIS solid is not solving the problem. Ive tried it already.

Regards,
Mary

What is the problem with exporting as solid?

By 'unfold' I assume you mean unroll?

If you unroll with the explode option off it will not make all the little parts you mention..

Because these are well-behaved mesh surfaces, you can convert your meshes to single trimmed NURBS surfaces using Patch on the border curve. There are problems doing so if there is sharp kinks in the surface that there are not enough control points to match well, but these seem fine. Just be aware of using enough spans and tweaking the flexibility to get within-tolerance edge matching so your final assembly doesn't leak in the rain.

Now how do I unwrap that flat? It may have slight compound two or more directional curvature that may freak out normal commands, but what's the standard command for this in Grasshopper or Rhino?

Indeed the Rhino command Unroll is uncooperative, won't even try!

"At least one surface you are trying to unroll is not developable because it is doubly curved. If you want to unroll it anyway, try using the Smash command or adjust the relative tolerance on the UnrollSrf command line. Unrolling doubly curved surfaces will produce inaccurate results."

And Smash...just asks for *curves* on surface to unroll, well let's do the border ones, those being the only ones...and it's very slow...

...well, your scale is so off the charts at a quarter million units out in space and 5K wide objects that normal Rhino tolerance is utterly tiny so I can even join extracted border lines playing around...so I will scale down by 1000X first.

That broke my Grasshopper Patch trimming...so...I must turn my flexibility to 100...and it still fails since I forgot to also translate away from 500K units away from the origin...so with 1/1000th scale *at* the origin, my patch is working again.

Now Rhino Smash gives a terrible result that can't even be rendered with shading so I must select it to even see it:

So...I reset my tolerance to much finer in the Rhino settings:

Now I can Smash away:

Alas, Grasshopper hasn't got a Smash, so...we search and find a script:

http://www.grasshopper3d.com/forum/topics/smash-command-from-rhino?...

However, that gives an invalid brep output that can't be re-trimmed, and again I find in side the script a tolerance setting of 0.01 but we are in centimeters so that's silly, I'll edit it to 0.001 and now it works:

Now Grasshopper, I notice, hasn't been fully joining my mesh edge curves, even though upon baking, Rhino does it just fine.

OK, I just have to right click toggle the Preserve Curve Direction option for join and it works so now I can split my unrolled surface with my original border curve manually to thus simplify the unrolling, I guess:

But the result is not accurate enough, after I manually move them together and rotate in Z to the same angle:

The longest edge length is also off by about 0.1%, but that's OK. Some strangeness is going on with double curvature, even slight, that throws off the result.

That's some start of a possible solution though. The Rhino Smash command gives the same result.

Ah, the problem is that my patch strategy is giving a *severely* doubly curved surface you just can't see after trimming and that's causing massive distortions as Rhino tries to also flatten the outside crap:

The original patch has an everyday right edge above, but the left edge is stretched much longer than that due to the weird curvature that is not the fault of the mesh edges but of the way patch works!

That's some ideas anyway.

Because patch is fairly well behaved despite the crazy curvature, manually constructing a flat target surface with straight edges the same lengths as the patch surface might work better. I'm not sure how though. Serious trigonometry I'm afraid.

Attachments:

Here is another strategy completely. Your mesh just sucks and can't be unfolded since it's not fine and regular enough, so I've invoked a convoluted strategy to remesh it after Kangaroo MeshMachine was way too tweaky and full of failure modes, I indeed make a patch, the back to a mesh via custom mesh settings, then to a polysurface and that can be unfolded:

Is unfolding a plug-in though? Yes, it's a part of TTToolbox:

http://www.food4rhino.com/project/tttoolbox

Now if you need a simple flat NURBS surface you could get the border and make a patch again, and the patch will be undistorted, just a simple trimmed single surface.

Actually, the result above is separate little surfaces that won't fully join, but in fact join into five pieces, so I have to tweak the custom meshing to get it to really join into one polysurface, but then it STILL has bad joins:

Grasshopper is truly bad for end users since algorithms are lacking. Plug-ins were supposed to make up for that, and indeed Exact Flat exists for $27K with $5K a year maintenance fee for upgrades:

http://www.exactflat.com/store/c1/Featured_Products.html

Even with the fine meshing it's not *quite* developable (unfoldable along hinges) so there are little gaps and overlaps. Can I tease out a border curve anyway? Nope! Joining the edge curves of the joined surfaces is a mess:

And I was even wrong about remeshing being needed since your original mesh will unroll too as a polysurface:

And it works for joining properly, so my remeshing screwed it up, merely. That's a confusing glitch, actually, meaning this is not a robust system yet and you're getting lucky, but here is the border converted to a flat NURBS patch:

To make it robust you may need a slow Kangaroo or Kangaroo2 flattening via hinges and some slight elasticity added too to let those gaps stay closed while a huge force tried to flatten the faces.

I understand now that the mesh/polysurface faces are what keep it from distorting much, but the unfold algorithm of TTToolbox is primitive so just rips things apart instead of incorporating a bit of elasticity as an option.

Attachments:

Fabtools also has an unroll component:

http://www.grasshopper3d.com/group/fabtools

In hindsight now that I came around right back to unfold, I think you simply failed to join your mesh-derived NURBS surfaces into a polysurface?

Hey Nik, apologies for the late reply! this is amazing content, thank you so much for the intuitive presentation, there is too much info though, and I am new to grasshopper so I think I am gonna spend some time on this, trying to figure out and decode your different approaches, thanks again ill get back to you soon :),

Mary D

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service