Elementary modelling question

I have a project on my plate that is a little different than anything I’ve done before. All the boat hulls I’ve done so far have a certain amount of almond shape to them, i.e. the hull in plan view has a curve to it along it’s entire length.

This boat needs to be straight (with precision for manufacturing) for most of it’s length and then shape in for the bow.

I’m struggling with how to model this accurately. What I’m doing is fudge-able for a rendering but not good enough to manufacture from.

I’d really like to use a single surface for a variety of reasons which mostly relate to labour and the hydrostatics plugin. I think this attached screenshot illustrates my problem.

Are you wanting to get continuity with the straight line and the curve connecting to it? G1 or G2 ?
I am interested in boat building , so I’ll follow this thread. One other question is, will you use this surface as part of your full size build? Will your stations attach to this ?

Ryan, can you post your file? It is pretty hard to make stuff up from an image and give any kind of meaningful answer.


This is obviously just an example, exaggerated to demonstrate what I’m getting at. Adding a few more points would make it look better but even then… it’s not exact.

There may not be an answer other then going into multisurfaces and extruding the main part and joining to the bow etc. Just thought I’d ask before I jump to that.

Mark yes, this (being an actual file, not what I posted) would be offset and then used to trim frame/girder surfaces.

example.3dm (96.2 KB)

A degree 3 curve with 4 or more adjacent control points which lie on a straight line will have an exactly straight section.

Any specific reason not to split the straight part and the curved part into separate (but obviously continuous) surfaces?
This would be the “correct” way to model this shape IMHO.

The hydrostatics plugin won’t allow you to use “real time hydros” mode if you have to extract/explode multisurfaces to edit them… Really slows down the process. Adjust a bit. Join. Run hydros. Too much, crap. Explode, move points, join, run hydros etc etc. do that for a few days and it’s worth figuring out how to do it with a single surface so you can watch the displacement and all volume properties update in real time as you drag points around. Only way to really do it efficiently.

Looks like a degree 3 multi-span surface will do it.

See attached…example2.3dm (777.6 KB)

I’ve also had to reduce the weight of the penultimate control points to get something that was closer to your original bow curve. Not sure if this will affect anything down the line though?

…but it won’t be as pretty as multiple bezier patches!

Rob this is exactly what I was hoping for… So far anyway. Many thanks.

Any degree 3 non-rational surface has an exactly equivalent set of Bezier patches.

A fundamental technique for modeling with NURBS:

To create a single curve with both curved and straight portions use/add a sufficient number of co-linear control points/edit points/knots.

To create a single surface with both curved and flat portions use/add a sufficient number of co-planar control points/edit points/knots.

Ryan - no probs, glad I could help.

David - I’ve found that if I model a hull surface (excluding bow and stern) with one bezier patch (let’s say degree6 fore and aft) then I end up with curvature that is much prettier than if I used a degree3 surface with 7 control points. I’m guessing the degree3 surface with 7 control points should be made up of two spans of bezier patches? But it seems to behave a little differently than a single span surface, hence why I’m very keen on single span surfaces where-ever reasonably possible.

@mcvltd I agree a higher order single span curve/surface will have usually have smoother curvature than a lower order multi-span curve/surface with the same number of control points. So the received wisdom is to use only single span curves and surfaces for design to ensure pretty curvature.

But the tradeoff is less local control of the shape. Move any control point in a single span curve or surface of any order, and the entire curve or surface is affected, though the effect is smaller away from the control point. The single span curve/surface has the advantage that the curve/surface will tend to remain “smoother” when control points are moved. However it is more difficult, actually impossible, to limit the changes in the curve or surface to a local area.

Also, the global change behavior of single span curves and surfaces means that it is not possible to have a single span curve or surface with a portion which is straight/flat and a portion which is curved. For higher degree curves and surfaces the difference from straight/flat may be small in some areas but there will still be a difference. If the design will only be rendered or will be built with hand fitting then that difference may not matter or may be inconsequential. But if parts of an assembly, jig or mold are to be accurately machined then that difference may cause problems. This is the problem that the original poster, wynott, has encountered.

I am amused when I see claims that multiple single span curves/surfaces with matching along coincident edges to the desired level provides superior smoothness to what can be achieved with a single multi-span curve or surface of the same degree. For any polycurve made up of single span curves there is an exactly equivalent multi-span curve. For any set of single span surfaces in a “rectangular” configuration there is an exactly equivalent multi-span surface of the same degree.

[quote=“mcvltd, post:14, topic:29568”]
I’m guessing the degree3 surface with 7 control points should be made up of two spans of bezier patches?
[/quote] A degree 3 surface with 7 control points in one direction and control points in the other can be converted to 4 Bezier patches or equivalently 4 degree 3 single span surfaces. (Edit) The equivalent Bezier patches or single span surfaces will each have 4 x 4 handles or control points for a total of 4 x 4 x 4 or 64 handles/control points. In contrast the multi-span surface will have 7 x 4 or 28 control points.

It looks like though the Rhino conversion tool for NURBS to Beziers is limited to curves only. My recollection is for curves the rule is a curve with n spans of degree d has a equivalent set of n-d spans of the same degree.

Thanks for the good info David, that would explain why I couldn’t get the above example to work in a single span!

I shall refrain from my single-span-smoothness evangelism in future. :wink:

Higher degree, single spans are appropriate in many situations. For instance the sheer curves of many sailboats, particularly those with a “classic” theme. But they are not a universal solution.

Is there an obvious source of reading material on this subject because I admit I’m a little lost.

One place to start reading is https://www.rhino3d.com/nurbs though that page is just words, no illustrations. Illustrations can be found at http://www.mactech.com/articles/develop/issue_25/schneider.html which appears as a link on the previous site.

Another way to learn about NURBS is to experiment. Draw a straight line with multiple control points with roughly equal spacing between them. Then move one control point and watch what happens. Try moving another control point. Then try another straight line with a different number of control points, or a different degree.

Why is this section not straight? The collinear control points should cause that side to be straight in-way-of the green line.