Scale curved surface along normals

I would like to scale an inner surface of the cylinder along its normals, but don’t know another way except manually moving the control points.
I am trying to make features on the cylinder surface behind the ball on the attached image more prominent.
Is there any smart way to do that?

Hello - I’m not sure I understand completely what you’re after but MoveUVN may help ( the N=Normal part) on the surface points?


Thanks for the quick response.

That sounds definitely like something that might help me.
I could achieve what I want by making the surface to the left from the selected ball (the most detailed one) planar, then scaling in Z and flowing it along the inner cylinder surface again. However, I find FlowAlongSrf not very convenient in this case since I could not get FlowAlongSrf to make output properly aligned and have to do additional transformations.

have you tried with offsetSrf?

Sorry, I did not finish the sentence:
That sounds definitely like something that might help me (MoveUVN), but I cannot move any sliders or introduce any changes in the popup window. I have Rhino 5 SR14.

OffsetSrf does not preserve the cylinder’s inner diameter

the move UVN works only on surfaces, not polysurfaces. If you have more than one, you have to explode them and edit manually.

Thanks for the response, but I have separate surfaces there.

can you upload the file? I don’t quite understand what do you want.

I made a wake on the liquid behind the ball inside the cylinder. I want to make it more visible, i. e. I want to make waves higher normally to the surface, while keeping the surface borders where they are now. I would like to do that without making the surface planar or fiddling with the control points manually.
OffsetSrf offsets everything, so the surface with the wake becomes misaligned with the cylinder.

wake_test.3dm (1.5 MB)

Hi Dave - MoveUVN works on selected control points - is that what you’re doing?


1 Like

I guess the moveUVN is what you are looking for but working with less control points at the begining and then use Matchsrf.

1 Like
  1. Create “Sweep 1 rail” surface by using the blue curve (extracted from the edge) as a rail, and the white curves as profiles with the History enabled.

  2. Modify the white curves’ control point count if necessary with the “Rebuild curve” command.

  3. Use UVN or move manually the control points, scale a pair of them symmetrically with the Gumball, or any other way to tweak them the way you want. You can even turn off the control points of a white rail and rotate it along the center axis to change its position, thus modify the “waves” of the surface.

To me, this seems like a convenient way to have adjustable surface as long as the History is enabled. By keeping the first two curves totally flat you can even make the wave start to appear somewhere inside the surface, rather than starting from its edge.

PS: “Loft” with the white curves will give you even smoother results, but will not match the left and right sides of the surface. However, if you use the green curves (I used “Rebuild curve” to convert the blue curve into a green one with Point count 18 and Degree 3) for the “Loft” command, the resulting surface will be tangent to the cylinder’s split edges. Then you can tweak the control points of the green curves to achieve the waves. For the duplication of the green curves I put the original curve in the middle, then I created several copies of it on the left side and from those copies I made mirrored copies on the right side. This way, modifying the left curves will affect the opposite side as well (if you want symmetrical result).

wake_test Sweep 1 rail.3dm (2.6 MB)

To see the changes of the surface waves accurately, I used the following custom mesh settings:

1 Like

I would like to thank everyone for the replies and suggestions. It looks like Rhino community is one of the most responsive and helpful out there.

Hi Pascal. No, I did not operate on the control points. That worked, thanks!

1 Like

Thank you, that is very helpful!

I cannot open the file you attached since I own only Rhino 5, but I think I understood your approach and will try to reproduce it.

1 Like

I managed to achieve what I wanted using MoveUVN.
Nonetheless, I wonder - is there a way to somehow “attach” selected control points of the surface to some curve, so that it would be possible to transform the surface with the curve? I have something like SoftMove in mind, but for some reason I could not manage to get SoftMove with curves to work on my surface.

CageEdit CageEdit | Rhino 3-D modeling

The CageEdit command deforms objects smoothly using two-, and three-dimensional cage objects.
The control object can be made with the Cage command or can be an existing surface or curve.

1 Like

Yes, that’s exactly it, thank you!

That’s right, you can assign selected control points to a reference curve and then editing another target curve will transform the surface as well. Sometimes I use this technique to smooth out surfaces whose control points are uneven. To do so, I create a polyline with straight sections snapped to every consecutive control point that I want to adjust. Then I create a smooth curve that I use as a target shape with the “Flow along curve” command.

1 Like

I just saved the model as Rhino 5 file type. Cheers! :slight_smile:

PS: The copied model is 100 units away from the original one. I added it to your scene show the alternative modeling with green lines. I also made all isocurves hidden to make the 3d models appear visually cleaner.

wake_test Sweep 1 rail (Rhino 5).3dm (2.6 MB)

1 Like