I’m trying to get my head around how the unroller methods work in a bit more detail than simply showing the flattened brep. The hope is to eventually add to the unroller method functionality by applying dihedral angle values to the edge labels. I suspect I won’t make much progress on that distant goal until I understand this method better. Python is new to me.
I’ve attached a file that executes an unrolled surface but, it is not clear to me how I get some of the other functionality associated with the “Unrollsrf” command one finds natively in Rhino (labelled edges etc.).
The other 2 items for the “PerformUnroll” method (Point3D and TextDot) seem to be the way to accomplish this but I’m having trouble getting these values to return.
A naive question: Is this method expecting me to provide a Point3D and TextDot value or is it deriving it for me from the “Rhino.Geometry.Unroller” object like it returned the flattened Brep? I thought it was the latter, but I can’t seem to get it to work.
Please forgive the denseness. Any help is appreciated.
Python Unfolding Script V4.gh (9.4 KB)
See attached.
Brep_Unroll_TextDots_EntryLevel_V1.3dm (120.0 KB)
Brep_Unroll_TextDots_EntryLevel_V1A.gh (9.9 KB)
BUT … 1. is C# AND 2. the Unroller works when it works most notably with regard the TextDot layout (hope dies last).
I could elaborate far more on that (it’s just an entry level indicative thingy) and by-pass completely the Unroller Rhino Methodr for some proper layout (and all the dots) … but there’s no auto translation (C# > P).
Update: added some stuff and the Unroller does a better job
Brep_Unroll_TextDots_EntryLevel_V1C.gh (121.5 KB)
But still … some dots are LOL . See Face 10 with no dots …
… that appear in some other place:
2 Likes
This is really impressive and very kind. Once upon a time I knew a bit of very basic C+ but C# is just beyond me. The truth is, there is more I need to do with this data beyond the routine that you have so thoughtfully written. The polygons need to be contiguous and the edges need to contract as a function of their bending. It is worth substantial vodka to have this problem solved. If there is still lingering interest, let me know at info@studioecesis.com.
Well … given the opportunity and since you are in the AEC market sector I would strongly advise the C# route to glory. P may appear easier (at start) and currently is trendy and this and that … but C# is kinda a BMW M3/M4 : fast/hot saloons/coupes come and go BUT they always are judget against the benchmarks.
Brep_Unroll_TextDots_EntryLevel_V1D.gh (121.3 KB) Brep_Unroll_TextDots_EntryLevel_V1D.3dm (173.5 KB)
Get the above as well and spot that the Unroller does more silly things meaning that one should completely by-pass that thingy.
That said I have various C#'s (internal to the practice) that do that kind of by-pass … but … I don’t have things (in R/GH environment) that cut the mustard for production/real-life because Rhino is just a surface modeller and for pragmatic AEC/BIM matters I use solely AECOSim/GenerativeComponents (and MCAD/PLM stuff the likes of CATIA/SiemensNX).
Ugly news: In order to do with R/GH what CATIA/NX do (i.e. sheet metal unfold (unroll)) you’ll need 1++M years and 2++M bottles of Vodka.
That said: these things that you are after are done solely using connectivity. A Brep (and a Mesh as well) has 3 classes of geo: Vertices, Edges and Faces meaning that the possible conn Trees are 9. If we are talking about Brep Lists (real-life) these Trees are 2 dimensional …
…where path.Indices[0] is the index of the Brep in the Brep List and path.Indices[1] is the index of the master item in the related branch (path.Indices[0]) of the items Tree (in V, E, F one dimensionTrees).
So as a challenge get a List and try to do this kind of stuff :
Or this for a Mesh List:
Sorry for the delay in responding. Frankly, you are kind of rocking my world. A lot to process here. I heard about Catia a long time ago but what you are showing me indicates it look as powerful as anything else I have been playing with. I do work extensively in Revit also but from what I’m hearing you say the Catia camp is a more promising avenue. It looks like they have already addressed the way material radiuses around bends and how one might compensate for that in the original pre-bent piece of material. Thank you for the information. On a couple deadlines at present but will look into this more again later. I really appreciate the advice.
For 99.99999% of cases related with advanced solid modeling (or modelling) CATIA is UNLIKE anything that you know: for instance if Revit has a power of 1 for doing solid modeling, CATIA has 1K. That said Rhino is NOT a solid modeller and thus you can’t compare it VS C/NX.
Have in mind that for “ordinary” AEC designs CATIA may be an overkill (if we forget the BIM part of the story). But as designs these days follow the bottom to top mentality (meaning assembly/component stuff etc etc) and/or look more and more as “machines” and/or are rather “unconvensional” and/or adopt the holistic PLM route … well …see what Frank Gehry did.
That said I hate Revit. AECOSIm eats that thing for breakfast … but has a very steep learning curve and thus the vast majority of users (most notably ex Autocad users) go for Revit - that’s why AutoDesk got Revit after all.
1 Like