Some observations on developable surfaces in Rhino
- Given two curves in space, for example a sheer line and a chine line on a boat that is to be plated with steel or aluminum:
We want developable surfaces, as that is necessary if a flat plate is to be rolled into place during construction. In Rhino we have DevLoft, which normally gives a good result, or the plug-in, D.Loft, from Evolute, which I have found to give better results, and is easy to use.
I have seen in many forums and other places on Google that the use of a 2 rail sweep has often been recommended.
A 2 rail sweep will, in many cases, NOT produce a developable surface, and it is easy to be fooled. It will produce, possibly, a “nice” looking surface. But if you use that surface to cut transverse frames, you can run into serious problems. If you were just building a stitch & glue dinghy you might never know the difference. But if it is a larger boat, and it is expected that the plate will lay nicely onto the transverse framing, then you can run into serious problems.
- Ways to verify the developability of a surface:
There are several analysis tools that can be used: Curvature analysis, draft angle analysis, the environment map, and Zebra. They all seem to be reasonable tools for evaluating the developability and fairness of a surface, and are tools that should be used.
Another, more intuitive and visual method, is to actually sight along an isocurve. This is easy to do, in particular if you use a 3D mouse. Just orient the surface in space until you get a clear view straight down one isocurve. The surface edges at both ends of an isocurve on a developable surface will appear to be parallel, at that location, which means that they lie in the same plane. This check can easily be done at a number of isocurves, and can verify that the surface is truly developable. It is also easy to see when the surface is NOT developable, as it will be very obvious that the two edges are not parallel.
In other words, if you have a truly developable surface in 3 dimensional space, then you should be able to lay a flat bar (surface) along any of its isocurves, without it cutting the surface. That is basically the definition of what it means when a surface is developable.
Using the same set of curves, you can build a truly developable surface, or a surface using a 2 rail sweep. They may both look nice, but they are NOT the same surfaces. I have found that Rhino very often will unroll a surface that is NOT truly developable. And it is strange that unrolling a surface from a 2 rail sweep, and a developable surface from the same two curves, can result in two flat surfaces that are nearly identical. Normally, the developable surface will unroll with no change in its area, while the non developable surface will have some change in surface area. Despite that, the edge lengths may be nearly identical between the unrolled surfaces, and often the surfaces can be oriented to lie upon each other, and seem to be nearly identical. That can, unfortunately, lead one to believe that it doesn’t matter. But it does.
If the surfaces in the model are being used to cut transverse framing, and you use a surface that is not developable, the builder will probably realize that for some reason, as he tries to install the plating, that it does NOT lay onto the framing. In a small boat of 16’ to 24’, this can be a disaster. In a larger vessel, for example a large steel fishing boat, it can be a very expensive disaster.
I have developed a method to use basic commands in Rhino, besides the standard surface analysis tools, to verify the developability of a surface. I realize that sending out a cutting file for a large vessel- plating and framing- is a very serious undertaking, and making a mistake can be an expensive disaster. So any additional means to verify that the plating, which will be used in the 3D model to cut transverse framing, are worth using.
As a refinement on the method of sighting along isocurves, mentioned above, I have been using basic commands to actually generate a flat surface running along an isocurve.
I start by extracting an isocurve, and normally just leave it in place, on the surface, at the position of the visible isocurve.
-
- I draw a line normal to the surface at some point on the extracted isocurve.
-
- Then I rotate the isocurve about the line formed by the normal line, 90 degrees, making a copy so that the isocurve is still there.
-
- Normally I then extend the extracted isocurve at both ends to be sure it runs well away from the surface edges.
-
- Then I move the rotated isocurve to the end of the extended isocurve, and use it to draw a short line at the end of the extended isocurve.
-
- Then I use a 1 rail sweep to generate a flat surface that extends beyond the surface at both ends.
-
- (there are various ways of doing this, using a combination of commands)
If the surface is developable, then that plane, which only needs to be several inches wide, will be obviously tangent to the surface everywhere.
If you try that routine on a surface that is NOT developable, like one made by a 2 rail sweep, then it will be at once obvious that the flat plane that you generated cuts into the surface somewhere.
This might sound like a lot of work, but it can be done at several places on a developable surface in just a few minutes, and gives visual proof that the surface is developable, and that it can then be safely used to cut transverse frames, as well as longitudinal framing if they are to part of the cut file.
I would only use this method at those parts of a surface that have a lot of obvious curvature, like plating wrapping a bow, or lower bottom plating forming the forefoot of a vessel. In areas that are essentially flat it is not necessary.