Pufferfish "Offsrf" component : screwy result

Hi Daniel,

Could you add an option to force crease splitting at tangents ?
The CreaseSplitting option is “Enabled” in Rhino, but it seems to be ignored here.

1 Like

Can you post the geometry?

Hi Daniel,

FYI for the brep Brep.Faces.SplitFacesAtTangents should be called.

https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Collections_BrepFaceList_SplitFacesAtTangents.htm

I’m not familiar with C# for else I’d add it myself.

-Willem

Not in front of a computer right now, but if you make a random closed polyline, and fillet the corners, you will get an example.

You could do it like this:


(set the type hint to bool)

    Brep[] outBlends,outWalls;
    Brep[] offset = Brep.CreateOffsetBrep(brep, distance, solid, extend, tolerance, out outBlends, out outWalls);
    if (split && offset[0].Faces.SplitFacesAtTangents())    
      A = offset;    
    else
      A = offset;

Just tried out the Sasquatch OffsetSrf component and it did seem to work pretty well. I put a few RhinoPolyhedra objects, minus one face, through it, and got good results.

But then I tried it with the polysurface that inspired this thread. (Thread is about creating compound miters in Rhino, and having Shell and OffsetSrf both fail. But if I could draw it manually, shouldn’t we be able to get Grasshopper to do it automatically?)

Anyhow, I took the object that broke Rhino OffsetSrf and Shell and plugged it into Sasquatch OffsetSrf aaaaaand… it broke:

Here’s the definition, with previews that highlight edges and naked edges for clarity: Sasquatch Offset Srf Fail.gh (27.5 KB)

What’s weirdest to me here is that if I move the offset distance slider around, I get a variety of different failures. Sometimes the result disappears entirely.

Questions:

  1. Is there something about polysrfs with both convex and concave edges that is special and creates problems for offsets?

  2. Do convex and concave edges that share vertices make it especially tricky?

Most likely Sasquatch is just using that same method from Rhinocommon.

Do you think my hypothesis about mixed concave and convex edges creating a problem for offsetting polysrfs with planar subsrfs is right?

Ok, there you go :

Give crease a chance.gh (14.8 KB)

I struggled 10 minutes with the C# component, but at least I learned something.
Was that the intent in not posting the ready-made component ?

Anyways, thanks Baris. It works.
The Sasquatch component has a “Sharp edge” input, but it does not affect the tangent crease splitting.

In crease the volume.gh (11.0 KB)

3 Likes

Pufferfish has a “Split Kinky Surface” component that would also split that at the creases I believe, can’t remember if I included breps there.

10 minutes is not so bad for a beginner in C#, I’m sure we’ve all struggled a lot longer with much simpler things :grinning:. Good job to figure it out.

No, you didn’t. It works only for surfaces.
Moreover, it doesn’t split at tangents which is to my mind the best use case for such a component.

Rhino’s dreadful habit to make single surfaces from polylines with tangent curves requires a remedy.
In Rhino, it’s ill-named “Divide along creases” with the “Split at tangents” option.
To my knowledge, there is no equivalent in Grasshopper.

… here we go again… In my opinion…

I will keep reminding you to speak for yourself because it pissing me seriously off.
Creating single surface from polyline with tangency is something I absolutely love.

I see in R6 there is now a SplitAtTangents option that didn’t exist in R5 Rhinocommon. I’ll update it when I stop supporting R5. Currently my component just splits at untrimmed surfaces creases. Thanks for checking.

I always speak for myself of course.
If that pisses you off , you might want to not read forums
I’m curious though… what’s so lovable about “flat-and-curvy-at-the-same-time” surfaces ?

You don’t speak for yourself. You create general messages with ‘I’ never existing , pretending you speak for everyone.
The reason I (mark my word) like the simple surfaces is the way they are displayed which is important with highly complex models I (again) often deal with.

Hi Piotr - note that, for this purpose, you could turn off Show tangent edges and Show tangent seams in your display mode.
-wim

I am absolutely aware of and often use it.
To me this is more the case of a language used in this discussion rather than software ‘do’s and don’ts’. I don’t like whining.

So for you, it’s a display issue… OK.

I am currently working on a 1.6GB model on a laptop, and I don’t have any serious display issues.
For all my disappointment with Rhino 6, I have to say : at least display performance has become much closer to what one can expect at this day and age.

Oh… but wait… maybe you’re still using Rhino 5 ? I strongly recommend the upgrade in your case.

My issue with having no splits at tangents is that it makes for very bad face editing and solid modeling.
That’s the reason why these types of surfaces don’t exist in parametric modelers, and that, when exported to STEP, they are automatically split.

I’m curious as to what kind of “Highly complex” models you do, and how you manage to process these “both flat and curvy” surfaces for fabrication purposes (if fabrication is involved).

I didn’t mention any display issues. RH6 and WiP here.
I find it very usefeul having single surface when tangency occur. It visually simplifies the model and reassure me at the same time that things are modelled correctly.