Project Surface against Curve Network?

Hi all,
OK, there’s probably no such command as “project surface against a network of curves”, but is there any smart way of achieving a “square” surface being “projected” (or any other trick) to a network of curves.

Problem: a surface which is drawn with the curves as the edges, would often end up having a bad isocurve structure, as illustrated at figure #2 in the picture below. I want the structure #3 in the final result.

Notice that the picture is only illustrating a very typical situation, where you after much work and tricks eventually end up with the desired contours (as in fig #1 above), but still want the SURFACE (the isocurves) of #3 above.

So, what’s the best “standard approach” to achieve #3 starting from #1, given that you do not - by any means - have access to the curves / geometry for the “extended” surface to cut from.

// Rolf

Hi Rolf - see if the attached file helps.


ControlSurfaceStructure.3dm (107.3 KB)


Ah, so you

  1. projected the extracted wireframe on the (bad isocurve) surface,
  2. then remove the “bad” surface and
  3. replaced the surface with a new one created by a Patch of a the projected wireframe

That was smart! A thousand thanks, why didn’t I think of that (wasted so many hours…)

But this really, really should be encapsulated into one single command “PatchRectIsoSrf”, kind of.

But for a start, yes, this will be my standard approach for many many surface problems from now on. Just imagine how much problems this final “square iso” surface will save me from! Wow!

// Rolf

Well… not quite, I think.

  1. Make a NetworkSrf (or whatver)that has the right shape but the wrong structure.

  2. Make a surface that has the desired structure in about the right place - e.g. make a plane, change degree, add knots as needed, etc.

  3. ExtractWireframe from the NetworkSrf, delete that surface.

  4. Patch with the extracted wires as the input, and in the Patch dialog, choose Starting Surface. Select the customized plane as the starting surface, set Pull to zero so that only the structure and not the shape of the starting surface is taken into account. Un-check ‘Preserve edges’ for the same reason.

  5. Presto.


Ah, OK, so the projecting was not necessary, just patch directly “from” the extra surface’s isocurves (extracted with extract wireframe) as the “starting surface”.

Is that more correct?

Also, what if I have some dents or curvatures on the target original surface which was made with Control Point Editing (not based on curves)?

I assume that the only option then is to project the iso curves from the “square surface” as I first (mis)understood your approach?

// Rolf

If I understand, you’d noodle the original (network surface in our example) as much as you like, then extract the wireframe. If need be, boost the isocurve density of the network surface before extracting the wireframe, or add some point objects on the dents as extra input to the patch. The ‘starting surface’ is a completely separate thing that only determines the structure of the eventual patch surface. Note that if the starting surface is not dense enough in the area of the detail/dents, then the patch will not be able to conform to the shape very well.


OK, I seem to mess up which surface / wireframe belongs to which step in the process.

Now I followed your example as intended.

I found that one can even recreate the isocurves of a sphere (here 1/4 or the upper half of a sphere, 1/8 that is). I rotated the sphere (1) 45 degrees as to “expose” both sides of the sphere-surface equally (I could have rotated also the top (at “1” in the picture) so as to place all the peaks/corners of the sphere to the exact same distance from the “Starting Surface” (2).

Although the Patched surface looked, um, “strange” at first, it looks just fine after cutting off the excess surface (3) using the boundary curves of the sphere.

// Rolf