# Rhino Curve Based Modeling

## Contents

# Modeling with Nurbs

**using curves as a basis for generating 3d geometry**

## Introduction

### Curves as basis for geometry

In the previous workshop we worked with quite a straightforward method of generating 3D geometry. With CSG modelling we were able to use a set of primitives as basis for our 3D geometry of the design. This method however has a few drawbacks. There is a problem with what you can generate with the CSG because there is a fix set of primitives and the options for changing the geometry are limited . This results in an design environment which has some serious constraints in what kind of shapes you can make. Although the formal complexity can be quite substantial with CSG the control and ease of generation of these shapes can be lacking. If you want to design a building with straight walls, floors and ceilings and maybe some single curved elements then the CSG will do fine. However if you want to design more complex shapes with doubly curved elements then it can become a struggle or impossible. That is one of the reasons why CSG is less used in aesthetic design where form freedom is essential to the creative design process.

If you look at industries where aesthetic design plays a mayor role like industrial design and the car industry you will see that they often use a different type of geometry which supports the required form freedom. This geometry type is called NURBS. The mathematical description of a NURB is completely different from CSG. And as we know a few elements which are influenced by the mathematical description are:

- Accuracy of the geometry ( important for manufacturing)
- The shapes it can generate
- The ability to adjust the shape
- The workflow of generating the shapes.

Due to its accurate mathematical description of even the most complex shapes it can be used in design and manufacturing.

The form freedom is quite extensive.

There are range of tools available to effectively adjust the geometry and to support formal exploration

Because the geometry is based on curves , the workflow will be completely different from the CSG workflow.

In this workshop we will look at the use and possibilities of NURBS modelling. The method we will use is called curve based modelling. The name already explains its concept. The 3D geometry is made with the help of curves and lines. The process has some similarities with traditional sketch design on paper. The lines defined on paper represent parts of the 3d design. With curve based modelling we use these lines as a basis for making the 3D geometry. This strong link with sketch design can be found in the software used in the car industry and industrial design where with the use of tablets with pen input, designers sketch the design in the computer and convert these lines into curves which can be used for generating the 3d design.

### Nurbs

Certain properties of NURBS geometry make the NURBS perfectly suitable for designing complex geometries like double curves surfaces. The form freedom which NURBS supports and the possibilities to adjust them give the designer a wide range of 3 dimensional forms to explore. To be able to make the right decision a designer will need a basic understanding of the topology of the geometry which will be used in the design process. NURBS geometry are widely used in computer aided design CAD, computer aided manufacturing CAM and computer aided engineering CAE software. It supports industry standards like IGES, STEP and ACIS. The ability to intuitively and predictable adjust the curves and surfaces make it an power full geometry suitable for design. The NURBS are a generalized derivative of the Bezier curve. (Pierre Bezier worked as engineer for Renault , development started in the 1960’s to find a method to represent curved lines and surfaces for car design).

Bend lines created in Rhino are called CURVES, that are based on Bezier curveBezier Curves and are used as the basis for NURBS modelling within Rhino. The way the curves are defined makes is possible to draw straight lines and smooth curves.

### concept behind NURBS

The concept of the structure of the lines was inspired on techniques used in the shipbuilding industry at the beginning of the 19th century. The wooden planks of the ship hull where bend by adding weights at different points on the plank. The amount of bend of shape of the bend could be adjusted by increasing the weight or the position of the weights.

The concept of deformation was digitally implemented in to the curves definition. With the effect that the curve in not only defined by the start and end point of the line but also by the weights between the two. These position and strength of the weights will determine the amount of curvature. The amount of weights between the start and end point are defined by the Degree . Degree 1 will mean that there are only the start and the end point. This will generate a straight line. Degree 3 will contain next to the start and end points two weights to define the curve. By moving the two points, which are called appropriately Control Points, in the middle the curve will bend. Moving it further and the curve will bend more. By increasing the degree more Control Points are added. Most of the time however the curve is defined to a degree 3 curve for a curved line and a degree 1 for a straight line.

Parts of the geometries topology is comparable with the Bezier curve. The surface supports the same use of weighted vertices to define the curvature and shape of the geometry. The geometry itself can be seen as a combination of two sets of "parallel" curves placed at a crosswise angle, with the mesh defined between the curves. Resulting effect is that the surface can support two different degrees, one in each direction. These curves on the surface are called ISOCURVES. The ISOCURVES will behave almost the same as a Bezier curve. Selecting and moving a vertex on a surface will basically deform the ISOCURVES causing the surface to deform. The more ISOCURVES on a surface, the more vertices are generated to deform the surface OR the higher the degree of the curves, the more vertices will be generated per ISOCURVES and surface as a whole.

The NURBS surface contains several different components. We have already found out that the NURBS surface contains ISOCURVES. The ISOCURVES are the sets of crosswise angled curves on the surface. They are in fact the curves where the surface is based on, but are part of the surface itself.

## Rhino Curve based modelling

With Rhino it is possible to create more or less complicated surfaces based on curves. These curves are created directly by line elements like polylines, arcs etc., or indirectly by extracting line elements from early created surfaces.

Modeling in rhino environment starts with curves and mostly ends with curves. This means that almost everything made in Rhino environment could be easily developed to be constructable. There are special curve editing tools available in Rhino that help designers to easily manipulate curves, specially various kinds of splines. Using these controllable splines one can easily build NURBS objects (NURBS stands for Non Uniform Rational B-Splines: Those objects that usually called free-forms by Architects!).

The workflow of curve based modelling is quite straight forward.

- You create a set of curves
- With the help of the curves you make surfaces
- These surfaces you can adjust by directly editing the surface or adjusting the curves the geometry was made from.

## Creating Curves

One of the big advantages of using Rhino is the simple interface. It is not cluttered with options you most of the time won’t use and its layout is very efficient. We already know that there are several ways on how to activate a command.

- Typing in the command on the command line (for the more seasoned users)
- Use the tabs on the shelf (can be useful however you will get flooded with icons)
- Using the pull down menu (straightforward option because the commands are named)
- The use of the toolbox (very effective due to its simple organization of icons)

If you look at the '**Curve** pull down menu you will see an arrow behind almost every command. This means there are additional commands available. They all will create, for example, a line but all in a different way. Most of these options you won’t use, but some can be quite useful.

If we look at the Toolbox we see only 7 icons related to generating various curves and lines. This the genius behind the layout of the Toolbox. In the bottom right corner of the icon you will see an arrow. If you click on this arrow a flyout will appear with the additional commands. Most of the times it enough to only select the icon in the toolbox. Because of its simple layout of only 7 main icons it is very easy to use.

There are 7 main icons in the toolbox to generate various curves. They all speak for themselves. For a straight line you will use the Lines command, for a curved line the Curves command etc. Always check the command line for additional options once you activate the command.

There is one command which is not ideal for accurate drawing. This is the Curve command as it is displayed in the Toolbox. This option makes a CV curve. Every time you click the mouse a Control Vertex is added generating the curve. However we know that the control vertex only sits on the begin and end point of the curve. The rest in between are used to pull the curve into shape. How this works out is very difficult to predict. So placing the intermediate CV’s becomes a bit of a gamble. To tackle that problem we have an Interpolated points curve. When you draw a curve with this option the curve will go through the points you have generated by clicking the mouse. It therefore gives much more control over the initial shape of the curve.

You can also type in the location of the next point of the curve by using the command line. That helps you to accurately define the curve. Or one could use the Grid snap option so every point is place on a grid point for more accuracy. Keep in mind though this is not always necessary. When you are sketching you also don’t use a ruler and grid paper to make sure the lines have a certain length. You can do the same thing in the computer, just sketch the lines and afterwards they can be made more to scale.

When you create a curve or line and you want to close it , select the close option in the command line or place the last point on the start point.

## Editing the curves

Once you created the curves you can start editing them.

#### Rebuild curve or surface

If the amount of CV's are to low or to high you can rebuild your whole curve with the correct amount of CV's and degree. This technique is often used in " Patch Modelling " to simplify the patches.

You can rebuild your curve or surface by ** Edit > Rebuild **

Select the amount of CV's and the needed degree of the curve or surface.

### Moving the CV’s

The most simple and quite effective way of changing the shape of a curve is to move its Control Vertices. We know that the curvature of a line is based on the position of the CV’s. Selecting them and moving them will alter the curvature. However if you have a straight corners you can use the same CV’s because they also appear at the beginning and end of the line, in this case at the corners. To activate the option of editing the CV’s click on the icon in the Toolbox. As long the command is active the object can’t be selected only the CV’s. To deselect the option RMB – click on the same icon.

You can add additional CV’s by **Edit > Control Points > Insert Control Point**

### Combining curves

**Join:** You can join multiple curves together , also straight lines with curves if they are connected. This is a simple option where there is a hard connect( no deformation at the connecting point) between curves. You can use the Join icon in the toolbox.

**Match: Curve > Curve Edit Tool > Match**

this is a more advanced method of joining curves. They will align the curves so that the edges are blended together. There are 3 options available

- Position – a hard connect
- Tangency – curve blended together
- Curvature – complete smooth transition between the curves

**Connect curve: Curve > Connect Curves**
In this case the curves don’t need to be connected, with this command they will be extended till they meet. Be aware that connection is based on the extension of the first curve tangent to its end point. Both curves extensions should be able to meet.

### Detaching curves

**Split a curve:** The curves can also be deconstructed or parts cut out. There are two main options to do this. You can define a point on a curve and split it at that location in two, or you could use a cutting line crossing the point where you want to cut the curve. In both cases we use the option of **Edit > Split** or the split icon in the toolbox.

There appears an option in the command line which enables you to select a point on the curve if the Split command is activated. If this option is not selected then the cutting curve can be selected. The curve is split and both parts remain.

**Trim a curve:** Trimming does the same splitting a curve with one difference it will delete the cut off part. Be aware that the selection of the curves is in the opposite order of the Split command. Check the command line!

### Edit Curves

And there are some additional editing options available which speak for themselves.

**Curve > Extend Curve:** different options of extending a curve. This allows the extension of the curve tangent to the end of the curve or with the same curvature of the end of the curve.

**Curve > Fillet Curves:** makes a fillet between two curves (rounding of the edge) This option is widely used in engineering. Sharp corners are from a structural point of view not ideal so often these corners are rounded off.
This option works with two separate curves.

**Curve > Fillet Corner:** makes a fillet in a corner of a single curve. This option is similar with the **Fillet Curves** tool. However the input in this case is a single curve.

**Curve > Chamfer Curves:** makes a 45 degree angled line between two connecting curves.

**Curve > Offset Curve:** makes an offset perpendicular to a curve