SplitFacesAtTangents x SplitKinkyFaces

Hello dear colleagues,

I recently ran into a issue with SplitKinkyFaces. I work very often with sweep breps. These breps are created from polyline as a cross section and nurbs curve as a rail. After all the operations, I want a “pretty” output (in grasshopper component) with all the edges displayed. I use Brep.Faces.KinkyFaces to display all edges correctly in GH.

Everything worked until today, when one of my not-closed brep ended up as valid brep but with area == zero and with no centroid. It occurs only in one case. Result of that method is true, so it should work correctly but gives weird result.

I searched for solution and found there is also a SplitFacesAtTangents method. Which seems to do the same.

So my question is, what is the difference? Is it possible that SplitKinkyFaces methods will destroy Brep, even if result is true and brep is valid and looks fine according to its properties?

Thanks for you time and reply.


Hi @janotaondrej91,

SplitKinkyFaces is similar to SplitFacesAtTangents in that they both split faces at curvature discontinuities.

SplitFacesAtTangents splits Brep faces with creases into G1 pieces. These degree = 1 surfaces can be created by extruding, sweeping, or lofting polylines, for example. Note, because kinked surface can cause problems down stream, Rhino always splits kinked surfaces when adding Breps to the document.

SplitFacesAtTangents splits Brep faces at G2 (tangent) discontinuities. The DivideAlongCreases command uses this.

Probably not. But we’ll need to see a model and have a way to repeat what you’re seeing.

– Dale

Thank you @dale for you reply.

Now, it is quite clear. Regarding the issue:

I have been using SplitKinkyFaces method for some time and this problem never happened. This is for the first time. Method doesn’t destroy brep but mass/area properties are calculated with result in volume/area = zero and centroid cannot be calculated if used.

I can’t provide you with the test file as it all occurs in code (Visual studio) and it cannot be presented without wider context.