Hi, I’m hoping for some help in understanding how to approach simple surfaces in Rhino and getting high quality results. I often find that the surfaces I create don’t match the continuity of the input curves. Often this is visual; All of my inputs will be tangent/curvature, Rhino will say that my surface is also Curvature or Tangent, yet the result is subpar from a visual perspective and using Rhino’s environment maps.

For example, below I have created 4 simple curves and used the Sweep 1 rail command. My rail is Curvature continuous and my cross section curve is degree 2.

This results in a surface that has tension or a “seam” where there is none on the input curves. This can be seen when using the Emap diagnostic tools. (red circled area).

These seams exist where my input curves meet each other. Rhino says that my input curves are continuous. On the zebra stripes below, you can see the areas of tension.

What can I do to avoid these sorts of problems? It is very frustrating that I can’t get consistently visually good surfaces with very simple inputs. What am I doing wrong? Will a surface of this sort of geometry (two single curve straight sections blended with a double curve section) always result in a surface that looks like this, and I’m overthinking it?

Well without having the model I’d say you’re overthinking it a bit. You have a surface that changes from basically flat to curved, fairly quickly, that’s going to be ‘visible’ in some way. The analysis mesh settings you’re using aren’t dense enough for the Zebra striping to really show if there’s a “problem” or not, it could be a spot where the curve is tangent instead of continuous or it could just be the mesh. If you are trying to investigate this, don’t forget the CurvatureGraph tool.

Continous curves do not guarantee continous double curved surfaces. This is true for any Nurbs/Beziermodelling software. Always match/blend with surface tools. Curves only give you a starting point and a rough surface position.

Okay, so that’s a case of what Tom said. Curvature continuous joints in your curves does not necessarily equal nice surfaces, the surface creation commands don’t “care.” In this example just using the “refit rail” option in Sweep1 does seem to help a lot to smooth it out.

If you absolutely need that surface to be a couple perfectly straight extrusions with a blend between them, then that’s how to you need to model it, 3 separate surfaces.

Apply “Match surface” (Continuity = Tangency; Preserve other end = None; Isocurve direction adjustment = Automatic) to either end of the middle surface.

(Optional) Use “Merge surfaces” with “Roundness = 0” to either end. That will merge the 3 surfaces into a single one, but keep in mind that there will be a hidden crease line where the surfaces edges were located prior that step. Any modification of nearby surface control points will result into a lost continuity.

correct. It might be a good idea to make sure that your initial surfaces would match positionally and that they are “pulled backed” with the same distances. This will always yield a perfect blend surface. Never blend at trimmed surfaces. Rhino has some deficits on matching, but with some experience you will get good results as well.

when i use “refit rail” it results in geometry with approx double the amount of data as a simple sweep. So all of these points and spans are necessary to define a surface like this or can it be done in single span surfaces relatively quickly?

I see. So you are building the surfaces that you want to blend right up to each other, “trimming” them back by splitting and shrinking so you have two “untrimmed” edges with which you can create the blend. Thanks!

Hi Mark - in your example, I think I’d expect a clean surface here too… OK, I see, was thinking you’d sweep the other way - if the arc-ish thing is swept on the three-part curve, the far edge becomes, in effect, a sort of ‘loose’ offset (i.e. preserves point structure) from the rail curve - offsetting does not preserve continuity - in this case, Offset > Loose=Yes of your rail curve gets the same condition in the output:

This is not about CAD functionality, its actually about understanding the geometrics behind. Matching a surface means to solve for continuity. Basically what you do with curves is 1dimensional. For curvature continuity you make both curves to share its position, its direction of flow and its curvature at a certain point. For surfaces you need to match this for 2 principal directions. You deal with two curvatures, two directions. One direction influences the other, and so obviously building from curves does not automatically maintains continuity. Of course there are special case where this works out. Another aspect of a good blend is having a nice curvature flow throughout the whole blending surface and so getting good highlights/zebras. This basically means no wavy curvature flows. This however means both reference surfaces must allow to maintain a good flow when blending. And this can geometrically best guaranteed if they positional match in the middle. If there is a offset or its not in the middle of the blending, the curvature must bump or shift as well, which in the end result in a bad reflection. The curvature graph is your best friend it always should as be as smooth as possible, no waves, no unwanted and abrupt accelerations, no (or on rare occasions single) inflictions.

or just simply using 1 rail curve and 1 cross section curve, overbuilding, and then trimming back?

Additionally, there is nothing in Rhino that tells me sweeping the shorter degree 2 curve on the longer 3 part curve will result in the “loose” offset that you describe. How can I know this so that in the future I avoid making mistakes like this? will it just come with experience?

Basically what you do with curves is 1dimensional. For curvature continuity you make both curves to share its position, its direction of flow and its curvature at a certain point. For surfaces you need to match this for 2 principal directions. You deal with two curvatures, two directions. One direction influences the other, and so obviously building from curves does not automatically maintains continuity.

But I am building curves in 3 dimensions with two directions. My rail curve and cross section curves combined together create a surface that moves in two directions. Why would this surface not match the continuity of the curves, but projected into 3 dimensional space?

Maybe my knowledge of the underlying mathematics is lacking. Is there a good reference that you are aware of for understanding this that I can dig into?

Another aspect of a good blend is having a nice curvature flow throughout the whole blending surface and so getting good highlights/zebras. This basically means no wavy curvature flows. This however means both reference surfaces must allow to maintain a good flow when blending. And this can geometrically best guaranteed if they positional match in the middle. If there is a offset or its not in the middle of the blending, the curvature must bump or shift as well, which in the end result in a bad reflection. The curvature graph is your best friend it always should as be as smooth as possible, no waves, no unwanted and abrupt accelerations, no (or on rare occasions single) inflictions.

This all makes a ton of sense to me and I will incorporate this into my build strategy! Thank you so much for the help.

Hi Mark - going the ‘other way’ maintains the curvature continuity in the surface, is all I am claiming, not that it makes the surface you want. Being curvature continuous is not in itself a measure of quality - you can get a ‘nicer’ flow and reflections if the transition part is more progressive, so to speak in its acceleration - these are both G2, but the nearer one is perhaps more what you are shooting for. Note the difference in graph on the red input curves