Grasshopper

algorithmic modeling for Rhino

i have a 1 degree surface which is just a bunch of patches. in rhino if you divideSurfaceOnCrease and explode a 1 degree surface you are left with all the individual patches that make up the surface.

 i am wondering if brep explode can have an option to DivideSurfaceOnCrease or just make a new component for it so we can explode ot to the individual patches.  

Views: 8485

Replies to This Discussion

Hi Robert,

Generally Rhino splits extruded, lofted and swept surfaces at creases by default -- therefore, so should do Grasshopper, too. This might not be the case with some imported geometry or, especially, if the command _CreaseSplitting in Rhino v5 or this plug-in is used in v4 (I do not recommend it).

If then you are dealing with a polysurface, you can use the Grasshopper "Brep components" and retrieve all faces.

- Giulio
_______________
giulio@mcneel.com
McNeel Europe, Barcelona
i have tried brep components on a few different surface and it did not split any of them. i tried this in .6 and .7 same result.

here is an example (in .7)
Attachments:
How did you get this surface? Was it a Rhino command or did you import it? Or have you created it by scripting it? Anyways, it's just one single surface of degree 1x1, so all I can really say is that exploding alone will not be enough, but it's an exception really...

- Giulio
it is just a 1 degree surface i lofted in rhino yes. but i want to be able to split it at its "faces" in grasshopper. to do this in rhino you need 2 steps

1. Surface > Surface Edit > Divide Surface on Creases

2. then explode

i just want to be able to do the same thing in grasshopper. so i guess i just need a "divide Surface on Crease" component which i can probably script in C# component?
Robert, sorry I cannot reproduce the creation of such a surface, unless
> the _CreaseSplitting in Rhino v5 is set to SplitAlongCrease=No (non-default) or this plug-in is used in v4.

Please do not use these special commands unless you are really sure about their necessity (not this case), as they can make many operations fail and are useful only in few cases.

Could you please give me a bit more information about the creation of such a surface?
Thanks,

- Giulio
some background

you can produce a 1 degree surface in a few ways but ultimately in my case i am adding an option to the minimal surface plugin that build the surface in any degree you want . the reason for a 1 degree surface is that it gives you 4 sided patches that are east to use for other options. lets say for instance you set the U= 1 degree and the V = 3 degree. you are left with developable strips that can be unrolled and fabricated


for my issue you can simple create a surface as follows. no special plugins are required and only use default rhino commands for either V4 or v5

1. loft a surface ( or make any curved surface anyway you like)

2. rebuild the surface to be 1 degree

3. go to Surface > Surface Edit > Divide Surface on Creases

4. explode the surface

you should be left with individual patches for each "face"

a second test is to

1. loft a surface ( or make any curved surface anyway you like)

2. rebuild the surface to be U = 1 degree, V= 3 degree

3. go to Surface > Surface Edit > Divide Surface on Creases

4. explode the surface

you will be left with strips of surface (that can be unrolled)
Thank you Robert, I understand your needs now...

Is it possible that actually either of these methods do not always give perfectly developable surfaces, but approximations -- for example in the case of the hyperboloid neither will work, perfectly, right? (tried with attached file).

Anyways, the .Net SDK OnBrep.SplitKinkyFaces() method should have similar result as the Rhino command mentioned. RhinoCommon Breps do not have this method yet.

- Giulio
Attachments:
KinkyFaces of course.

yes i realize that unroll surf cannot always find the exact solution but in theory it should exist since the strip is just 2 curves that need to be flattened in relation to each other. i used terra-flat and it gives almost no deformation.

but the technique is mostly used for models anyway so a little stretching is ok. surprisingly i tested a few min surf and the most stretching i got was 0.18%. ok for a model but not so good for full size.

but the reason i really wanted this was for something unrelated to fabrication where i needed the "faces" of the surface and thought this would be the easiest way to get them.

thanks for the help

-robert
Hi Robert, i`m working on a surface which i want to divide into equal segments, my only problem is that i can`t manage to work with the surface degree 1 in grasshopper as a surface, i would like to knwon how did you achieved the surface on the rhino file because grasshopper did recognized it as a surface.
Roberto.
in the example above i used NurbSurface.CreateThroughPoint() comand in a c# node. but if you just want to cut up a surface into equal parts you can just use iso curves and loft as straight sections .
thank you for replying so quickly to my question, y did manage to create a useful 1 degree surface for GH, the real problem i`m now experimenting when i try to divide the surface in such a way that y can develop it with only one panel, it seems that it will be difficult to succeed trying to divide it using isocurvs and distance, here is a pic of how i`ve managed to divide the surface but still panels would be different size on a 0 to 7 cm variations, it would be of great help if you knew another method to achieve this, i,m posting my rhino file, GH file and a picture of what i`m trying to achieve.
Thanks for your help!
Attachments:

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