Osculating Circle and Surface Curvature

Hi,

I am wondering why the Osculating circle component is returning error “Surface curvature could not be determined” for triangular surfaces obtained from NetworkSrf. Shown below, point from SrfDivide item 2 and 3 return the same points (with different surface uv coordinates), but item 2 returns an error for Osculating Circle while item 3 doesn’t.

Are there better ways to build an untrimmed triangular surface from given boundaries such that the topology isn’t problematic like this? If not, how may I cull out the “invalid points”?

Thanks for any advice!

oscCir_v1.gh (18.6 KB)

Surface curvature is determined by parametric derivatives like dx/du and dx/dv and d2x/du2, d2x/dudv and d2x/dv2 For triangular surface, at the point where the control points all coincide these derivatives are undetermined, therefore you get an error. This point is also known as “singularity”.

Are there better ways to build an untrimmed triangular surface from given boundaries such that the topology isn’t problematic like this?

No, not really. What do you need Osc. circle for?

Hello @timothytai,

As @menno already mentioned above, your error stems from the coinciding points at one vertex of the triangular surface that you get by dividing the surface and enforcing a rectangular division.

You can remedy this by simply removing these coinciding points from your evaluation:

If, at any moment, you want the points back, you can reintroduce them after the curvature analysis. They are separately provided at output B of the dispatch component.

Please notice that the last part shows, how to select individual branches from a tree, and is not necessary at all. You can simply skip it, if you don’t need it, and plug the uvP output of the SrfCP to the uv input of the Osc component.

oscCir_v2.gh (24.2 KB)

1 Like

Hi @menno and @diff-arch, thanks a lot for the help! I was using the component to find minimum radius of a given curved surface to check if it is within fabrication constraints.