Surface exact shape when editing it via control points

Hi everyone,

I am trying to modify the shape of a planar surface so that it passes smoothly through a set of points. Basically, those points are located on a XY rectangular grid and their Z-heights vary along the surface.

The first idea I got to solve this problem was to use control points. However, I realized that I don´t have much control over the location where the surface really is during the translation (in Z) of one of its control points (see figure below):

Just for info, the control points on those planar surfaces where generated as follow:

  1. Degree change (U and V from 1 to 5)
  2. Patch of two edges
  3. Patch of two edges + ShrinkTrimmedSrfToEdge

Do you guys have any idea of how to use control points and still have control over the local position of the surface? I am aware that I could play with weights here, but the idea is to make this process automatically with GH afterwards. So a standardize procedure would work better.

If not, is there any other way of achieving the desired results?

I would really appreciate any help.


I have not tried this myself, but it seems possible to iteratively move the CP up in small steps and at each attempt test for the position of the topmost point on the surface, until you come close enough.

// Rolf

Hi Gustavo, you could try a 2Point rectangle with Deformable activated. Then if you need more control points , just put more in on the option of U and V. Of course I don’t think this helps with the Grasshopper part. Give it a look. ——Mark

there is no direct way of gaining control of the surface in this manner. for a simple surface you can use a set of curves and loft to create the exact elevation. another idea would be using heightfield with interpolate surface through samples. you can control the height through the shades of black. while 100% black would be the full height 50% then naturally half of the height. probably not very precise but implementable in grasshopper. the least option would be using patch as you did with a set of points, but from all the suggestions this is by far the least precise so i would probably recommend the first method.

i believe rhino 6 has something like iso curve match in a surface, which might give you another option.

You could try the Patch command using the original planar surface as a Starting Surface. Experiment with Preserve Edges checked, or put points on the original plane where you don’t want the plane to change.

If you can make a simple shape using the dot to be the highest point, say like a cone,
you can do drape command and let surface be created.
need a planar surface at the bottom to where the drape would stop.

You can use your grid of points as input for the command SrfPtGrid. That will create a surface that passes thru the points.

Dear all,

Thanks for the replies. The first method proposed by RichardZ and the one jim suggested worked perfectly. Find below the small differences in curvature between those methods.

@jim: Do you know if I can find this command (SrfPtGrid) on GH? There is a “Surface From Points”, but it has the same effect that Patch has (excessive smooth so that the surface doesn´t follow the given points).