Odd issue with single span surface

I’m just attempting to fill an awkward hole with some single span surfaces and have run into a bit of an odd issue.

I have a couple of ‘starting’ surfaces which I’m planning on refining and chopping up later-on but wanted to get them both nicely matched into each other first.

When I tried matching ‘Surface A’ into ‘Surface B’ the control points from ‘Surface A’ would get screwed up. Thought this was odd as both their degrees were the same. Then saw that the edges didn’t match up even though the control points did.

Rhino is telling me that both surfaces have the same degree in U (degree 5)

I then imported the surfaces into ICEM Surf which showed ‘Surface B’ to be degree 10!

I’ve absolutely no idea how this has happened…have I missed something obvious here?

File below…
Surfaces.3dm (91.9 KB)

Snapshot of surfaces in Rhino…

Snapshot of surfaces in ICEM Surf…

check surface B with the _list command.
looks like the CVs have individual weights (not all 1).

select all CVs of this surface and set weight to 1 - check again if export - import behaves better.
which format do you use for export from rhino to ICEM ?

kind regards - tom


Good catch.

In general two surfaces with different weights on the relevant control points cannot exactly match, even if the degrees, number of control points and knot parameter values are exactly the same.

That appears to solve the problems. MatchSrf adjusts control point locations but not weights.

In general for precision modeling rational surfaces (some or all weights not equal to 1) are best avoided. An exception is for the special cases such as spheres, cylinders, etc where the non-unity weights are required to exactly represent conics.

1 Like

Oh my goodness, thanks @Tom_P
Never thought to check the weights. As @davidcockey says, I always leave the weights of my surfaces at 1 (or at least I thought I did!). I’ve probably been cocooned in my non-rational ICEM bubble for too long…

Surface A was created ‘normally’ from two single span curves then altered by changedegree command and moving the points around.

Surface B however, was created by snipping off the end of a 2.5mm tangential fillet with split by iso curve with a shrink.

When I investigate that fillet it’s a degree 2 rational surface with a weighted centre control point. See below…

Does anyone know of a way to get Rhino to automatically make tangential fillets that are single span arc fillets (degree 6)? Or are all Rhino fillets rational for the reasons David has stated above (exact conic representations)?

@mcvltd FilletSrf in V7 has an option to use a G2 (curvature continuity) blend surface rather than a circular arc surface. The G2 blend surface will be nobn-rational, single span of degree 5 with 6 control points, and will not be close to a constant radius (circular arc) fillet which has G1 (tangency continuity). Rhinoceros Help

Note that a circular arc fillet surface may be single or multi-span depending on the maximum angle of the fillet.

A circular arc fillet can be rebuilt to a non-rational degree 3 surface using RebuildUV in the V direction. Note that the result may be multi-span in the V direction.

Why degree 6, or did you mean degree 5 / order 6 with 6 control points?

1 Like

Thanks @davidcockey , will take a look at BlendSrf and see what it produces for me.

When I worked in the Class-A dept of an Auto manufacturer we surfaced in single span only so tangential arc fillets were degree 6 (order 7) because is was deemed to be the least number of control points but the most accurate to an arc within manufacturing tolerance.


David, I think you meant FilletSrf rather than BlendSrf.

I tried the G2 option for FilletSrf, then did a ChangeDegree on it to reduce it to degree 3 in v. For most of my purposes I can get away with the reduced accuracy of a degree 3 fillet (in comparison to an arc fillet) in favour of the non-rational surface.

Thanks for the tip!

Correct. I’ll correct my previous post.