Create a flowing surface from an existing surface

Hi Rhino Pros,

I am trying to create a new surface that flows from an existing surface to a new intersecting surface from a series of fixed lines. This new surface needs to retain as much of the existing surface geometry as possible.

So far, I have tried 2 ways but I am not happy with the result.

Attempt 1. I tried to create a “curve network” surface between an existing curve on the existing surface and new fixed lines. The problem is that the surface bulges out too much and does not retain enough of the tight curve in the existing surface. Refer to images below.

Attempt 2. I tried to trim the existing surface back to where the X axis lines start to curve. I then ran the “curve network” tool between the trimmed surface and new lines. However, the new surface curves out rather than follow the straightness of the existing surface. Refer to contour image bellow.

How do I create an adjoining surface that retains as much of the existing surface geometry but flows continuously and nicely along the new curves without bumps?

I’ve attached sequenced photos and the 3dm to help you understand my issue.

I would be very grateful for anyone’s help! I will donate $10 to charity if you can help me so I can repeat the technique across the rest of my model.

Surface Intersection Question.3dm (1.8 MB)

Sweezy

I dont quite understand what u mean.

But looking at the surface, if you have multiple profile curves, it would be more accurate to use Sweep2 rather than networksrf.

1 Like

Hi Sweezy - I’d keep the whole thing way simpler, as in the attached file - is that on the right track?

[Surface Intersection Question_Maybe.3dm|attachment]

Surface Intersection Question_Maybe.3dm (927.8 KB)

-Pascal

Hi Pascal,

This surface is really beautiful and what I am after.
How did you do it?
I am keen to replicate it on the rest of my model.

If there’s a particular charitable cause you support please let me know in the reply.

Sweezy.

Hi Sweezy - It looks like I started from your ‘Second attempt’

  1. The existing surface is way over defined - I duplicated the edges and rebuilt these to degree 5 and 6 points. The deviation from the original was small enough, I decided to go with the cleaner curves - 7 mm in 10,000 mm…

  2. Loft the two curves to get a clean simple surface.

  3. I connected the ends of the two transition curves with a new curve, in this case using ShortPath but looking at your other attempts it looks like you could use the edge curve of the loft or an extracted isocurve, depending on where the new surface should hit.

4.Loft the curve to the vertical line:

  1. MatchSrf to the original surface at the curve you are using to define the end of the new surface. Use ‘CurveNearSurface’ = On in matchSrf. Match for Curvature, and leave the ‘Other end’ at Position. ‘Match target isocurve direction’. Watch for the ‘Flip’ and click the Flip button if it decides to match the wrong way.

-Pascal

2 Likes

Hi Pascal - This is amazing! Thank you so much.

I was able to successfully recreate the surface following your steps.

**I tried to trim and join the new surfaces together but Rhino was unable to join surfaces. **
Any suggestions on how to join the surfaces together?

At some stage I will create a watertight volume to 3D print.

Sweezy.

Hi Sweezy - I guess you may need a few more control points in the new surface to get its edge close enough to the target to join - the scale is quite large, thousands of units and the tolerance of .01 is small for this scale - however, I would not loosen tolerance to more than .01, Rhino prefers being in that range or somewhat smaller. So, you can insert knots in to the new surface using InsertKnot > Automatic, in V until you get about this many knots:

Then repeat the MatchSrf as before. That should suck the edge over close enough to Join at .01

Also, you can play some games when surfaces are really simple like this - in this case, ShrinkTrimmedSrf the first surface and then UntrimBorder, then turn on control points:

image

Then ChangeDegree to 1 in the U direction. As the surface is linear in that direction, nothing is lost.

image

Next, slide the control points back along their control polygon (DrageMode >ControlPolygon helps a lot) until the edge is right along that initial trimming curve or the edge of the new surface (blue, now):

image

Now you have an untrimmed surface that has just the right shape and edge curve - since the edge is not trimmed, MatchSrf with ‘Match target isocurve direction’ and NOT ‘Match by closest points’ will line up the control points exactly and Join will work on the simple surfaces.

image

-Pascal

1 Like

Never knew about DragMode -> Control Polygon! I’m playing around with it - sometimes it seems to follow the control polygon, sometimes not - am I missing something?

Hi Sky - it should follow the CP but not the extensions - that is something of a bone of contention but extensions, on surface points was removed to clear the clutter and make it easier in cases where the angle between the segments is very small. To go on the extensions, drag along the CP in the other direction and hit Tab to lock the direction, then go the way you want. I know it is not ideal…

-Pascal

1 Like