contents.gifindex.gifprev1.gifnext1.gif

Shaping and Fairing Curves

To understand how to use the curvature overlay technique in ProBasic and ProSurf, it is best to start by studying curves. The process is nearly the same for surfaces, but it is easier to see when applied to curves.

FAI00005.gif

Follow these steps:

FAI90000.gif Start the ProBasic or ProSurf program

FAI90000.gif Display the Curve set of menu choices as shown above

FAI00006.gif

FAI90000.gif Select the Add Curve function

FAI90000.gif Pick (enter) about eight points to define a curve like the one shown above

FAI90000.gif Space the points evenly along its length

FAI90000.gif Do not worry about fairness at this point

FAI00007.gif

For rough fairing, you need to use the Move Point command in the Edit set of pull-down commands as shown in the picture above. All entities are defined by points and all entities can be shaped (by eye) using the Move Point command.

FAI00008.gif

FAI90000.gif Use the Move Point command to change the curve into a shallow bowl shape as shown in above

FAI90000.gif Try to maintain an even spacing of the points

FAI90000.gif Fair the curve by eye

As you can see, the curve achieves the fairest shape when the points are evenly spaced. This even spacing is not mandatory, but it is a good goal. Think of the traditional spline batten and the spacing of the ducks along its length. The ducks are evenly spaced, except for the areas of tighter curvature, where their spacing is evenly reduced. This works exactly the same for B-spline or NURB curves, since they are mathematical equivalents of the draftsman's spline.

At this point, the curve may look fair, but there is no way to know for sure, unless you plot it out full size and use your eye to judge its shape. On the small computer screen and with the "jagged" display of the curve, it is impossible to fair using the Move Point command. You could "Zoom In" until you have enough resolution, but only a part of the curve will be visible to judge fairness by eye.

That is why the program provides a tool called the dynamic curvature curve overlay technique to magnify the bumps, wiggles, and inflection points in a curve. It is turned on as follows:

FAI90000.gif In the Curve pull-down menu, select the K_Curve Toggle command

FAI90000.gif "Pick" the defined curve.

FAI00009.gif

You should now see an orange curve drawn on top of the defined NURB curve, something like the one shown above. The command is called a "toggle" because to turn off the display of the k-curve, you simply pick the curve again with the same command; once to turn it on and once to turn it off.

This curve (sometimes called a 'K' curve, since many books use 'k' to represent curvature) represents the curvature of the curve overlaid on top of the curve it represents. Its shape is very, very sensitive to the shape of the curve it represents. Try the following:

FAI90000.gif Use the Move Point command to move one of the curve points

FAI90000.gif See how a small change in point position causes a large change in K-curve shape

(Note: you will learn about a fine-tune move% command shortly which you will use to perform fairing.)

Key points about the K-curve:

1. The k-curve will lie on the inside, concave side of the NURB curve

2. The k-curve will cross the NURB curve at all inflection points

3. If the NURB curve is exactly flat, then the k-curve will lie on exactly top of the NURB curve

4. If you make the k-curve reasonably smooth, then the underlying NURB curve will be very fair.

5. The shape of the k-curve is important, not its size

FAI00010.gif

Sometimes, the k-curve is so large that it is drawn off the visible part of the window. The size of the k-curve can be reduced (but not its shape) by using the downward 'K' arrow on the tool bar. Every time you "click" this toolbar button, the magnitude of the k-curve is reduced. The picture above shows the same k-curve after the K-down toolbar button has been picked three times. Be careful not to reduce the magnitude of the k-curve too much, because you will reduce its sensitivity to the unfairness of the NURB curve.

FAI90000.gif Click the K-Down toolbar button three times

FAI90000.gif Click the K-Up toolbar button three times

FAI00011.gif

Likewise, if the k-curve is drawn very close to the NURB curve itself, you may wish to increase its sensitivity or magnification by using the K-Up arrow on the tool bar. It has the opposite effect and the K-down arrow.

FAI90000.gif Click the k-Up toolbar button three times

FAI90000.gif Click the k-Down toolbar button three times

So how do you know when you have enough magnification of the k-curve?

You have enough magnification if the k-curve visibly changes shape when you move one of the defining points by the building tolerance (perhaps 1/32 of an inch or one mm). The distance a point is moved is always dynamically displayed in the status line while you are dragging the point. If the magnification is set too low, then the k-curve will not show unfair changes in the shape of the NURB curve. If the magnification is set too high, then the k-curve will be drawn outside the window and will be overly sensitive to editing changesand will be difficult to smooth. Note that with enough magnification, you could fair the curve to within 1/1000th of an inch. Keep in mind that there is no such thing as perfect fairness. You only have to fair the curve to within building tolerances. However, it is preferable to err on the side of too much magnification, rather than too little.

FAI00012.gif

For those who are interested, this picture shows how the k-curve is calculated. The process is as follows:

At each defining point, the program:

1. Calculates the curvature value of the NURB curve. Curvature is the reciprocal of the radius of curvature of the curve at that point. (k = 1 / rho) The curvature is zero when the curve is flat, increasing in value as the curve becomes more rounded.

2. The normal vector of the curve at that point is calculated.

3. A k-curve point is determined a distance along that normal vector from the NURB curve.

4. The distance along that normal is equal to the curvature value times the k-curve magnification factor.

5. A polyline is drawn connecting the k-curve points of each defining point.

The magnification factor adjusts the scaling of the k-curve and does not change the character of its shape.

[Note: A more exact curvature curve display is show later in this tutorial.]

FAI00013.gif

This screen shows two arrows pointing at two adjacent defining NURB points. The curve in the area of the left arrow is relatively flat, because its k-curve point is closer to the NURB curve than the k-curve point at the right arrow. If the goal of fairing is to smooth the k-curve, you could approach this problem in one of two ways. One, you could pull the left-arrow curve point away from the k-curve to create more curvature and cause the k-curve to move away from the NURB curve. (Move the NURB curve in a direction opposite to the direction you wish to move its k-curve point, but wait until the fine tune Move% command is introduced, since you won't have enough control with the Move Point command.) Two, you could move the right arrow point towards its k-curve point. Remember that many different curve shapes will create a smooth k-curve shape. You, the designer, have to decide on the shape you want and use the k-curve to guide you with the final fairing. If you wanted the curve to be rounded in that area, you would move the left arrow point. If you wanted the curve to be flatter in that area, you would move the right arrow point.

This same kind of problem arises with the traditional hand drafting approach using a batten and ducks. One way to fair a batten is to temporarily lift one or more of the ducks, thereby relaxing and fairing the batten and the resultant curve. If this technique is done too often, however, the batten will be designing the boat rather than the designer.

FAI00014.gif

This screen shows a typical k-curve shape for a NURB curve that has inflection points, one of which is marked by the cursor arrow. Many times this is a clear indication of an unfair spot on the curve, although some curves (like S-shaped curves), are supposed to have inflection points. The goal is not to get the k-curve to lie on one side of the NURB curve, the goal is to smooth the k-curve. This means that the underlying NURB curve is very fair.

Use the "saw-tooth" up-and-down nature of the k-curve to determine how to fair the curve. Look for a k-curve point which is a valley between two peaks or for a k-curve point which is a peak between two valleys. In the picture above, the point to the left of the cursor arrow has a k-curve point which is a valley between two k-curve peaks. If you move that point down, its k-curve valley will disappear and the two surrounding k-curve peaks will be lowered, thereby smoothing the overall k-curve. With a little bit of practice, you will be able to quickly fair a curve.

FAI00015.gif

To flatten out a NURB curve, you need to get the k-curve to lie exactly on top of the NURB curve. This picture shows the results of flattening the curve using just the Move Point command. It is not very exact because the standard Move Point command is too coarse of a modification tool.

FAI90000.gif Turn on the Move Point command

FAI90000.gif Adjust the shape of the curve by eye to obtain a flat portion like that shown above

Detailed k-curve fairing is done using the Move% command in the Edit set of pull-down commands. The Move% command works exactly like the Move Point command, except that when you drag the point on the curve, the point only moves a small percentage (1%) of the distance in the direction you drag the cursor. When this is done with the k-curve turned on, you can dynamically and accurately control the shape of the k-curve.

FAI00016.gif

FAI90000.gif Turn on the Move% command in the Edit set of pull-down commands

FAI90000.gif Adjust the curve (just like using the Move Point command) to obtain a flat portion

The picture above shows the results of flattening and fairing the curve using the Move% command. If you think that the k-curve moves too much for a very small change in curve shape, then you probably need to use the k-Down toolbar button to reduce the sensitivity and magnification of the k-curve.

FAI00017.gif

This picture shows a different curve shape, faired by eye using the Move Point command.

FAI90000.gif Select the Move Point command

FAI90000.gif Edit the curve by eye to get the shape shown in the picture above.

At this point the curve is only roughly faired by eye.

FAI00018.gif

FAI90000.gif Select the Move% command

FAI90000.gif Fair the curve as shown in the picture above

This picture shows the same curve after fairing was performed using the Move% command. Note the peaks in the k-curves at the ends of the curve. Otherwise, the k-curve (and NURB curve) is very fair. The peaks in the k-curves at the ends indicate that there is a non-zero curvature at each end of the curve. It doesn't necessarily mean that the curve is unfair. It depends on what kind of shape you want at the ends of the curves. A different end condition is achieved in the following example.

FAI00019.gif

FAI90000.gif Select the Move% command

FAI90000.gif Fair the curve as shown in the picture above

This picture shows a slight variation of the curve with no k-curve peaks at the ends. The k-curve matches the NURB curve in the ends which means that at those points the curvature goes to zero.

FAI00020.gif

This picture shows the Options-Set K_Curve dialog box for k-curve options. The "K Scale Factor" magnification factor relates to the K-Up and the K-Down toolbar buttons. The "K Curve Steps" field refers to the number of intermediate steps along the NURB curve to calculate the curvature. The default is 1 which means that the curvature curve is calculated and drawn at each defining point. If this value is set to 2, the program will calculate and display the curvature at each defining point and at each intermediate position between defining points. For a value of 3, then there will be two intermediate k-values calculated and drawn between defining point, and so on.

FAI90000.gif Open the Options-Set K_Curve dialog box

FAI90000.gif Set the "K Curve Steps" field to 5

FAI90000.gif Pick the OK button

FAI00021.gif

You will now see a more accurate curvature curve drawn, like the one shown above. The k-curve is smooth, but one might wonder if the two k-curve "humps" should be removed. Try it and see what happens.

FAI90000.gif Select the Move% command

FAI90000.gif Move the defining points to try and remove the "humps" in the k-curve

It can't be done, or at least, not very easily. As you might guess, the exact shape of the curvature curve is not always important for fairing. What is important is that the k-curve does not have any abrupt changes or unwanted inflection points. As you increase the step size above 1, the k-curve takes on a more accurate shape, but it actually makes it more difficult to fair the curve. That is why we recommend that the step size be left at 1.

Since you can only control the shape of the curve by moving the defining points, you only need to display the k-curve based on the curvature calculated at those points. By increasing the step size and drawing a more accurate k-curve, you confuse the fairing process by displaying k-curve shape that you have no control over. For NURB curves and surfaces, you can also control the shape by changing the "knot parameterization" or the "weight values". These changes are discussed in another tutorial.

FAI90000.gif Select the Options-Set K_Curve dialog box

FAI90000.gif Set the step size to 1

FAI00022.gif

This picture shows a faired k-curve for an S-type of NURB curve. Remember that the inflection point is defined as the place where the k-curve crosses the NURB curve.

FAI90000.gif Select the Move Point command

FAI90000.gif Move the curve points to create the rough S-shape

FAI90000.gif Select the Move% command

FAI90000.gif Drag (fine tune) the points to smooth the k-curve as shown in the picture

FAI90000.gif Select the Curve-K_Curve Toggle command

FAI90000.gif Pick the NURB curve to turn off the k-curve display

Do all rough shaping with the Move Point command and do all fairing with the Move% command.

Now you are ready to tackle the fairing of surfaces. The k-curve technique is the same, but it is applied to one or more of the rows and columns of the surface.