Surface Curve going to Zero Radius and Tangency

A recurring problem I have not been able to solve is tangency with curves that go to zero radius. I encounter this with ship hulls. Most of the body is simple until you move to areas around the propeller shafts. In the attached example I have used a sweep2 to create a surface. Now I am at the aft end of the ship and I have a triangular hole.

The vertical curve is a close to a right angle with the surface extending outward. Mathematically, this is possible because the radius is zero at the intersection.

No matter how I try to fill that hole with a surface (networksrf, edgesrf, sweep2) tangent on the vertical and horizontal side I get a bad surface there when I join. Even if I trim the vertical edge to create four sides I get the same problem.

The vertical curve is the end of the ship, so I have no flexibility on its position.

I presume the root of the problem is the 3-sided sweep2 going to a zero radius. Unfortunately, zero radius zones appear all the time. There are four f them here alone.

Is there any goo way to generate them?

Problem Zero (1.0 MB)

… it shouldn’t (?)
How are you going to manufacture a radius going to zero in real life?
Even if you manage to make it, it seems a weak spot, prone to cracks and such…

Patch command (with no tangency) works here. Have you tried it?

Sorry but overall this seems a badly designed model… :pensive:
First I would decide “on paper” a better solution for zero radiuses, and then re-design from scratch.

Hello- this model is quite a mess overall, I recommend looking into some of the training material and videos available about how to create clean, simple, and continuous surfaces. In particular, it seems to me using the idea of primary and transition surfaces in an organized way would be the single most helpful change in strategy.


This exists, with curves going to zero radius, in real life. I am trying to model reality. This piece represents a bunch of experiments. As the commentators say, these are problematic at this point, which is why I am asking. In this area alone there are 4 place where a radius needs to go to zero, none of which a satisfactory here.

I agree with Pascal that this model is messy. For instance one edge of the openning ends close to but not on a not of the adjacent surface.

“Bad surface” in what respect? Can you provide an example?

The only purpose of that model is to illustrate the problem.

The problem in trying to help is that there is a kind infinite regress where, I would first want make neighboring surfaces x or y differently so they make sense, but then I’d need to have made a and b differently as well, etc and it amounts to rebuilding the entire thing.
For instance, these three are probably all one primary


These are probably arranged so that 1,2,3 can be one surface, a,b,c likewise and possibly planar, can’t tell, and A and B one thing, with the arrow pointing at what should probably be a separate transition surface that may even be the same surface as your triangular bit.

I’m making this up since I do not know what the inputs are but something like that would start to make some sense to me.


best tipp above by pascal:

and also some nice example in an older post

there is also a lot of info already in those older topics.
did you try to work on those ?

but I agree - it s hard to understand and learn how to get a nice nurbs-Surface layout / hierachie for these kind of geometry … if someone can point to a nice tutorial / theory about this - I would appreciate it as well.

kind regards - tom

1 Like

Here is my staring point

A) In the cyan, I have the shaft bossing given to me in terms of three arcs (radii and locations).

B) Above and below the cyan I have data points that I have omitted for clarity.

C) The green marks the limits of the hull. That is invariant for my purposes.

D) The red circle mars the end of the shaft casting. That is invariant.

E) Blue defines the shape before the shaft housing extends beyond the keel.

Problem 1: The shaft bossing needs to come to a point (zero radius) at the points at the top and bottom of the blue shape.

A thought would be to cheat a bit and create a copy of blue but have a small radii at the corners. That would leave a tiny flat area at blue’s corners.

Problem 2: I need a smooth “loft” from the blue to the red circle. This creates another zero radius problem at the two corners of the blue shape.

Problem 3: the crescent above the cyan shaft bossing creates another radius to zero at the top where it meets the hull. In my experiments, this has been less of an issue because I can end a surface at the point where the radius goes to zero.

@miano Do you have photos of this area of an actual ship? When I model a boat I find it very useful to try to understand how the boat was built which influences/determines the details of the shape. Also the reality of what is possible in building sometimes means the actual vessel differs from an idealized interpertation of the plans. Then I plan my modeling strategy based in part on that information.

There are not a lot of good pictures of this area. I hope to get some when drydocked next year. However, I need to get the model done for the drydocking.

great picture
for sure it is the battleship MISSOURI (BB-63)

1 Like

One approach:
Model the keel/strut and shaft housing without the fillet as separate objects
VariableFilletSrf to create the variable radius fillet between the keel/strut and shaft housing. It can create fillets which go to zero radius at one end.
Trim as appropriate.

Example - Not Miano’s model:
Variable Fillet Approach DC01.3dm (2.1 MB)

1 Like

I’d actually tried that approach in the past. The problem I had was getting the fillet to work around the forward end (tip).

Most of previous attempts made the bossing in one piece. Then I tried to create a filler piece at the stern to bring the radius to zero.

I got a bit of luck by breaking the bossing curves apart. That gave three sets of frames.The top and bottom frames go the full length of the bossing and taper to zero radius at the aft end. The taper to zero radius is then part of a larger piece rather than a filler piece.

That gets rid of two of the three tapers to zero radius visible here. The second is at the top of the crescent shape.

Everything funny happens at the stern. The forward half is 2 surfaces (bow and the rest). The aft half is 14 surfaces.

I have four more of these tapers to zero to go.

For the other to zero radii, I was able to cheat with a small radius. It creates a defect that is hard to see.

I would really be great if Rhino would work with a zero radius like it does with a small radius here.

@miano What is the problem you are having with zero radius? Is it the appearance or is some function not working properly? I use similar transitions with zero radius at one end without problems.

Lotsa, lotsa surfaces become bad after they are joined.

Joined using Join command?

Bad as in identified as bad objects by Rhino command SelBadObjects?
Or do they cause other problems?
Or something else?

If you provide a specific description of the problem and preferably an example of a bad object caused by joining a surface with zero radius then someone may be able to help solve the problem.

I have joined surfaces with zero radius and have not created any objects Rhino has identified as bad.

As in SelBadObjects and the automatic bad object detection.

I’d get surfaces that need untrimsrf to go back to good but joining them would immediately create a bad surface.