5 | Accurate Modeling

Rhino uses a standard ‘3d space’ in which to create models. There is a World Origin, the 0,0,0 location for the X Y and Z directions, and the three directions, or axes, radiating from that location. This origin and the World orientation of the X, Y and Z axes cannot be changed. X, Y and Z axes extend, in theory infinitely, in both directions, with positive numbers on one side of the origin and negative on the other. In this basic and widely used system, any location in space can be specified by an X, a Y, and a Z coordinate.

Construction Planes

Modeling input in Rhino is, by default, relative to the “Construction Plane” or ‘CPlane’that is active in the viewport. Each viewport has one active construction plane which determines, among other things, how drawing and modeling input is placed in space. There are many ways to use, set, save and restore construction planes - these important details are covered here XXXX-link. In this guide we’ll cover the basics of construction planes.

The construction plane is infinitely large, however the display in the viewport shows only the part that is covered by the grid.This grid includes the origin (or 0,0,0 location) of the plane and four quadrants surrounding that point.

Infinite Cplane Cplanes extend into infinite space

Modeling operations will often be in the vicinity of the grid, for convenience, but it is not necessary to draw on the grid itself - again, the plane is infinite, for all intents and purposes. A key point about CPlanes is that they may, but are not required to, be aligned with any particular relationship to the World. While the overall 3d space of a Rhino model is based on a single ‘World’ Origin and X,Y, Z axes, each CPlane has its own origin and its own axes and orientation. While the default CPlanes in the default Rhino viewports are all at right angles to one another and are oriented to the World, CPlanes in different views may or may not necessarily align in any predictable way to one another or to the World.

Tip
The World axes are shown in the lower left of each viewport.

So, why have CPlanes? CPlanes provide the basis for drawing or modeling input. All of the ‘action’ in a particular viewport takes place on the construction plane. The location and orientation of the cplane in the view determines where and how geometry is created, moved, edited. There are a number of ways to override the cplane, but default behavior is that interactive user input goes to the construction plane.

For example,start the Circle command and click twice to set the center and radius in any viewport. The resulting circle is ‘sitting on’ the CPlane for that viewport. Other viewports will show the circle as a straight line if the view is oriented to look at the circle from one side, or as an ellipse if the view of the circle is oblique.

Cplane per Viewport Each viewport has its own Cplane orientation

Rhino assumes by default that user-typed coordinates are using local CPlane coordinates and not World ones. This is important because CPlane coordinates for the same point in space will be different in different viewports if the CPlane is not the same in each view. It is crucial to pay attention to the active viewport and CPlane when interacting with Rhino.

Active Viewport The blue title indicates the active viewport, where the geometry will be created

Ortho

The ‘Ortho’ setting indicated at the status bar determines whether or not the cursor will be constrained to ortho axes when the user is providing input. If ortho is enabled, moving the mouse on the CPlane, for example when drawing a polyline, will be constrained to the nearest Ortho axis. By default the Ortho axes two axes parallel to the X and Y axes of the current construction plane. The effect is best understood by trying it - in the Top view, start the Polyline command and place a point to start - make sure Ortho is not enabled in the status bar - place a few more points - the polyline follows the mouse pointer exactly and on click, a point is placed. Without exiting the command. Click on the Ortho pane in the status bar to enable ortho and carry on placing points in Polyline - notice that now the polyline is now forced to follow either the X or Y directions.

  • Holding the Shift key will toggle the Ortho state as long as it is held down. This allows ortho to remain disabled, for example, but enabled temporarily inside a command with the Shift key, or vice versa.
  • The default for Ortho is two axes at 90 degrees - this can be changed using OrthoAngle to any number - it may be convenient to set an ortho axis every 15 or 30 degrees, for example. OrthoAngle always assumes the direction parallel to X is zero and counts the degrees in counterclockwise direction.

Snapping

One of the most useful as well as the most easily accessible tools for accurate modeling is “snapping’. Snapping places approximate, interactive, user input at a precise location, so that accuracy is not dependent on feel, or ‘eyeballing’ or over-reliance on tedious building of reference geometry. Rhino has grid snapping - using the CPlane grid, and object snapping, which snaps to existing objects in the scene.

Grid snap

The construction plane in each viewport displays a grid by default - grid lines are typically spaced such that they make some sense in the current scale and unit system. Grid snapping - the Snap command, or more conveniently from the status bar (image > status bar) forces user input from the mouse to snap to specific locations on the grid. Typically this would be set to the grid line intersections but might also snap to some fraction of the space between grid lines.

To test this, zoom the view in the Top viewport so that a few of the grid squares are clearly visible and start any curve drawing command - Circle, or Polyline will do fine. When Rhino prompts for the location of the input, move the mouse around and notice that the marker ‘snaps’ to grid line intersections. Using Polyline, start drawing by placing points as you like and while placing these, toggle Grid Snap on and off by clicking the pane in the status bar- you can do this while the command is running. You’ll see the input change between constrained to the grid, and unconstrained. As a rule, unless there is a reason to do otherwise, grid snap should be enabled only when needed, as it can interfere with other input like object snapping.

Image

Object Snap

Object snapping (“Osnaps”) is similar to the grid snap constraint, but the snapping is to specific features of existing geometry in the scene. Object snapping can override the normal tyranny of the construction plane to allow you to snap to points in space as well as in the construction plane.

A commonly used osnap is the End osnap. This snaps the cursor to curve endpoint, including surface edges and the ends of segments within joined curves (‘polycurves’) . Use the Line command to place a line in the scene - you can then use the End osnap in subsequent operations to accurately and exactly snap input to either end of the line. Osnaps can be most conveniently controlled from the Onsap panel. If the panel is not showing it can be enabled from the status bar.

Image > status bar Image > open osnap panel in default location

To test osnaps, open the OSnap panel and check the End osnap one - leave the others un-checked for now.

Tip: Right click on an un-checked Osnap checkbox to check it and at the same time un-check all others.

Image

Make sure Grid Snap is not enabled. Use the rectangle command to draw a rectangle in the top view. Then start the circle command. Before placing the center of the circle, make sure End osnap is set, and then hover the mouse near one of the corners of the rectangle. The marker will be ‘sucked’ onto the exact corner point of the rectangle - these corners are the ends of the four line segments that make up the rectangle. If you click while the snap is showing, the center of your circle will be located exactly on that corner.

Finish the circle.

To delete the rectangle, click to select it, and then tap the Delete key.

Now start a new geometry creation command - for example, Box. Choose the Center option at the command line and, this time, let’s snap to the center of the circle as the location for the center of the box… In the Osnap panel, set the check mark by the ‘Cen’ osnap - this is for snapping to the centers of circles, arcs, closed polylines etc. Hover the mouse over the circle itself - not the center of the circle. Notice the marker snaps to the circle center - click to place the center of the base of the box and finish making the box.

Note you can now use the new box’s edges for object snapping - the edges have Ends and Mid locations that can be snapped to as well as Near, which pulls the marker onto any nearby curve or surface edge. Try the Move command to move the circle from its center to one of the top corners (End OSnap) of the box. In this case, the object snap has been used to override the CPlane - the circle is now above the original plane in which it was made. You could also create a new circle off of the CPlane by snapping its center to the top corner of the box.

Object snaps have several variations - the basic Osnap toolbar shows what are called ‘persistent’ osnaps - that is, if they are set, or checked in the box, they will be in effect until un-checked. So for example, if End is set, any time Rhino is asking for a location, the mouse will snap to nearby end points.

‘One shot’ osnaps are enabled for the duration of just one input. All of the persistent osnaps have ‘one shot’ versions - in the case of the End osnap for example, if End is not checked in the osnap panel, typing ‘end’ at the command line and Enter at any time when Rhino is prompting for a location, will enable End for that one pick only. You can see the one shot snaps by holding down Ctrl or Shift and hovering the mouse over the osnap panel. Note the list is quite long, so Ctrl will show some and Shift will show others. Images > ctrl down and shift down

Some One-shots do not have persistent equivalents, such as Between, which lets you pick two points and snaps to a point exactly between them. This snap as well as OnSrf, and others, need to be explicitly invoked at the time they are needed. Links to Help topics for details on snaps

Suspending Osnaps

While Object snapping is a powerful and necessary tool for accurate modeling, there are times when, like Grid Snap and Ortho, it gets in the way. You can disable object snaps from the object snap panel if they get in the way.

Image

But, since this is tedious,holding down the Alt (Option) key temporarily blocks OSnapping and, does not interrupt the workflow as much. Keeping the Alt(Option) key down while picking point locations toggles the state of the Osnaps - if enabled in the panel, Alt will disable them temporarily; if disabled, holding Alt will enable whichever snaps are checked in the panel, while Alt is down..

OSnaps can be set or removed by typing or using the Onsap panel while inside a command.

Typing an Osnap while inside a command will override the settings in the OSnap panel for the one pick only. For example, If Osnaps are enabled several Osnaps are set, and you are actively using them but for one pick would like End osnap only, type in End and Enter - then only End will be active, whether or not it is checked in the panel.

Snaps can be used any time Rhino is asking for a location in space - check the command prompt, there will be prompts like “Start of line” or “Point to move from” or “Center of rotation” and many, many more - these are prompts for points in space and OSnaps or Grid Snapscan be used to set them accurately.

Detailed descriptions of all of the object snaps can be found here Link to Help-https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm?

Coordinate entry

Sometimes it will be convenient or necessary, when Rhino is asking for a point location, to provide the exact X,Y and Z coordinates directly at the command line - this is in general allowed any time Rhino is asking for a point. The coordinates are entered with commas separating the coordinates and with no spaces in X,Y,Z order, for example

4,8.5,3 (plus )

Remember that coordinates are assumed to be CPlane coordinates. To force Rhino to read World coordinates, prefix with the letter W.

W4,8.5,3 (plus )

0,0,0 of course is the CPlane origin and W0,0,0 is the World origin.(Often these will be the same). You can always just type 0 or w0 for CPlane and World origins as well and Rhino will understand that you mean 0,0,0 or W0,0,0.

To test this, use object snapping as well as coordinate entry - make a box (Box command) anyplace, away from the CPlane origin. Select the box by clicking on it - it will turn yellow to indicate it is selected -, and start the Move command (under the Transform menu)) . At the prompt for the ‘Point to move from’ snap with End OSnap to a corner of the box. The command line prompt is now for the “Point to move to”. Type in 0,0,0 and . You’ll see the box moves so that the corner - the one originally snapped to - is on the CPlane origin.

Absolute vs relative coordinates- Point coordinates entered as in the example above are ‘absolute’ coordinates - that is, they explicitly set the x,y, and z for the point. When that is known, it is very helpful, but there are many cases where the coordinates are not known in absolute terms but are relative to some other point. For example, -3 units in x, 6.5 units in y and 10 units in z from some other point. In these cases, relative coordinates can be used. Relative coordinates are specified by prefixing the coordinates with either a “r” or the “@” symbol.

Try it - start the Line command and snap one end to a top corner of the box you made above. That sets the base point of the line, now, rather than clicking to set the other end, type in

-3,6.5,10 and

The line is created with the end point 3 units to the left of the start point, 6,5 units in Y and up 10 units in Z of the current CPlane.

Angular coordinates - You may also enter angular and relative angular coordinates. These are specified by an angle and a distance - from the origin in the case of absolute angular coordinates and from a previous point in the case of relative angular coordinates. Angular coordinates are specified by prefixing input of angle(in degrees), distance with the “<” symbol.

Select and delete the objects in your test file and start Polyline. Set the first point at the origin in Top - (type 0 and ) and for the end of the first segment type in

<30,10 plus

Next type in

r<45,5 plus

Press to end the command.

That ‘r’ tells Rhino that relative to the previous point, you want the next point to be 5 units away and at 45 degrees.

Gumball

The Gumball is a user interface ‘widget’ in Rhino for manipulating objects in space. It has an origin point and three axes, red, green and blue, analogous to the 3d space X, Y and Z directions. It also has some other controls including circular handles for object rotation, square ones for scaling and planar icons for both moving and scaling objects.

Image

The gumball can be enabled and disabled from the status bar Gumball pane. Other settings for the gumball are in the pane’s context menu.

Images

The details of Gumball operation are covered here XXXX -link In this guide we’ll just look at the basic operation of this powerful tool. Etc etc

1.3.1 Command-line

This is a widely used method to access commands in Rhino especially among users familiar with the commands they commonly use. Commands are run by typing their names (or the first few letters of it) in the Command Prompt. Typing in the command prompt shows a list of all commands starting with the same letters. Frequently used commands show on top of the auto-complete list. Right-mouse-click on the command line to view recently used commands. You can also press Enter to run the last command (or right-mouse-click or space key), and press Esc to cancel a running command. When inside a command, the command prompt area shows the command instructions and options. Many Rhino commands do not support dialogs and hence command options can only be set through the command prompt area.

box help

The command history area shows recent commands and options used. You can press F2 to view the command history and all the options used. Right-mouse-click on the Command prompt area shows a menu with all recent commands used that you can select directly from to repeat.

box help

1.3.2 Toolbars

Rhino toolbars contain buttons that provide shortcuts to commands with various options. You can float a toolbar anywhere on the screen, or dock it at the edge of the graphics area. Rhino starts up with the Standard toolbar group docked above the graphics area and the Main toolbar as the sidebar on the left.

Tooltips

Tooltips tell what each button does. To access the tooltip, move your pointer over a button without clicking it and a small tag with the name of the command appears. In Rhino, buttons can be set to execute multiple commands and set specific options. The tooltips also indicate which buttons have dual functions as in the following example.

box help

Cascading toolbars

A button on a toolbar may include other buttons in a cascading toolbar. Usually, the cascading toolbar contains variations of the base command. After you select a button on the cascading toolbar, the toolbar disappears. Buttons with cascading toolbars are marked with a small black triangle in the lower right corner. To open the cascading toolbar, hover over the black triangle and left-mouse-click. You can select a button from the cascade toolbar, or peel out by clicking on the top margin of the toolbar.

box help

1.3.3 Menus

You can find most of the Rhino commands in the menu bar. Each menu groups similar commands together. There are many submenus within each drop-down menu to further group similar functionality. For example the Curve menu includes curve creation and editing commands and under Circle to see all the different ways to create a circle. Third party plug-ins sometimes add their own menus to the menu bar.

box help

1.3.4 Custom access

There are a few ways to customize your access to Rhino commands. The main objective is to increase productivity for repeated commands and sequence of commands. The pop-up menu is accessible when you press the wheel (or middle mouse button). You can think of it as an on demand toolbar that you can add or remove buttons from or create your own custom buttons with custom macros. For details about how to customize toolbars check the toolbars help topics.

box help

The context menu shows when you press the right mouse button for a second then release. You can add to it additional commands that would be readily accessible with mouse control.

box help

You can set up a custom keyboard access. Rhino comes with a few preset keys that can be edited by the user. For example F1 opens the Help, Ctrl+S to Save and Ctrl+Z to Undo. You can find the full list under the Rhino Options under the Keyboard section (open by running the Options command).

box help

Aliases allows setting custom command names to run existing commands and macros. Macros allow setting one or more commands with specific options to run all at once. Rhino has few preset aliases such as ZE for Zoom with Extents option and M to Move. You can change and add to the list of aliases, save them and share with other users.

box help

Most recently used commands are accessible when you right mouse click on the command area. You can add your choice of command on top of the list by setting the Rhino options > General, then enter your command macro in the top field as in the following image.

box help

1.3.5 Commands access tutorial

Create a box then scale and move using 3 different ways to access commands in Rhino.

box help

1.4 Modeling aids

Interactive digital 3D modeling can be challenging without guides, constraints and ways to organize and manage geometry and data. Modeling aids help locate and manage 3D geometry. Modeling guides include grids, coordinate axes and smart tracking mechanisms. Constraints include ortho, geometry constraints, filters, selection constraints, gumball, and construction planes. Layers help organize geometry and assign some attributes. Geometry in Rhino also has attributes that can be managed using the properties panel. Document and application preferences can be set in the Rhino document properties and the rhino options. We will cover most used parts in the following sections and the rest of the document, and you can reference the full details in the Rhino help file.

1.4.1 Grid and Grid Snap

Grids are a handy visual reference of the orientation and the scale of the modeling space. You show, hide, change the number of grid lines, spacing and intervals in which you can snap to.

box help

Grid Snap helps snap on grid intersections. You can also toggle Grid Snap on and off by pressing F9 or typing the letter S and pressing Enter. Pressing F7 hides or shows a reference grid in the current viewport of the graphics screen at the construction plane.

1.4.2 Osnap

Object snaps constrain the marker to an exact location on an object such as the end of a line or the center of a circle. These are very important tools to help model accurately and quickly. You can customize Osnap to follow one or more constraints. To quickly use only one constraint, right mouse click on it to disable the others. Another right mouse click on it will restore the previous Osnap state. One special Osnap is Project. If checked, your geometry will be projected to the view construction plane even if you snap outside of it.

box help

1.4.3 Smart Track

Smart Tracking uses temporary reference lines and points that are drawn in the Rhino viewport using implicit relationships among various 3D points, other geometry in space, and the coordinate axes' directions. Smart Track uses OSnap settings to create the reference lines.

box help

It is also possible to set up persistent modeling guides that appear when selecting points. Use AddGuide and RemoveGuide to add and remove these guides.

1.4.4 Selection

Rhino supports different ways to select geometry. Selection commands allow selecting all objects in the file that are of a certain type or share certain attributes.

box help

A cross or box window selection is used to select geometry by dragging the mouse (with left button down) around a specific area inside a viewport.

box help

The selection filter allows isolating certain object types. The window selection would then select only the types permitted by the selection filter. For example, if only “Curves” is checked, then no other object type is selected even if they fall within the window.

box help

1.4.5 Gumball

Gumball displays a widget on a selected object which is used to facilitate direct editing. The Gumball provides move, scale, and rotate transformations around the Gumball origin.

Dragging Gumball arrows move the object in the arrow direction. Note that pressing the Alt key makes a copy of the object.

box help

Moving the Gumball handles scales the object in the handle direction. If dragged with the Shift key down, the scale becomes uniform in both directions

box help

Dragging Gumball arcs rotate the object.

box help

Dragging the arrow handle extrudes the object. With Shift, it extrudes in both directions.

box help

Other Gumball functions can be accessed with a right mouse click at the center handle.

box help

1.4.6 Layers

Layers are important to organize and access objects in the document, and are used by most modeling software. You can assign meaningful names to layers and set common attributes such as colors and materials. You can quickly hide, lock or select the objects in any layer, and move objects between layers. For details about the different parts of Rhino layers and related commands, please refer to the layers section in the help.

Default layers with new document using one of the Rhino templates: Multiple layers are created with different colors. Default is designated as the current layer (new objects are placed in the current layer). No material is assigned.

box help

Layer table functions are used to manage layers (add new layer or sublayer, delete, move within the table, filter and other functions.

box help

Right mouse click on any layer shows all commands related to the selected layer. For example you can set as the current layer, change any property, create a sublayer or select all the objects within that later.

box help

1.5 Coordinate system

1.5.1 Overview

The coordinate system is used to describe the location of points in space. The most common one for architectural applications is the Cartesian coordinates. Rhino uses two Cartesian coordinate systems: construction plane coordinates and world coordinates. World coordinates are fixed in space while construction plane coordinates are defined for each viewport. Rhino also follows the right-hand-rule to define the relative directions of X, Y and Z axes directions. That means when the right hand thumb points in the positive x-direction and the forefinger points in the positive y-direction, then the middle finger points in the positive z-direction. Also if the thumb is pointing in the Z direction, rotating towards fingertips points to the positive angle direction. There are three World planes (XY, XZ, and YZ) that meet at the origin point. The location of any point in space is described with three ordered numbers (tuple). The World origin is located at (0,0,0). Points in Rhino can be defined in either absolute or relative coordinates. You can also use polar notation to describe a point.

box help

The following examples show how to specify points coordinates in Rhino relative to the construction plane and world coordinates.

  • Construction plane coordinates: Enter x,y,z values to place points relative to the current construction plane. You may omit z and y values (they are set to 0 in this case). Examples:
    0 = (0, 0, 0) in CPlane coordinates
    1,3.5 = (1, 3.5, 0) in CPlane coordinates
    1,3.5,6 = (1,3.5,6) in CPlane coordinates
  • World coordinates: When the construction plane is different from the World planes, you need to specify that your point is relative to World coordinates by preceding the x,y,z by “w”. Examples:
    w0 = (0, 0, 0) in World coordinates
    w1,3.5 = (1, 3.5, 0) in World coordinates
    w1,3.5,6 = (1,3.5,6) in World coordinates\
  • Polar coordinates: Use distance, angle and z value ( from CPlane origin) Examples:
    17 &lt 45 (radius &lt rotation angle) 17 &lt 45,8 (radius &lt rotation angle,z)
  • Relative coordinates: This helps locate a point relative to the last point used.
    Suppose last point used was (1,1,0):
    @3,4 = 4,5,0 (move 3 units in the x direction and 4 units in the y direction from the previous point).
    Alternatively, use “R” or “r” instead of “@” to express relative coordinates:
    R3,4 (or r3,4)
    You can also use relative polar coordinates:
    r4 &lt 45 or @4 &lt 45

1.5.2 Construction planes

Construction planes (CPlane) are used in modeling software to orient and guide modeling. They align to the World origin and direction by default but can change to be relevant to the model. Creating moving and viewing geometry in Rhino is highly influenced by the orientation of the construction planes. For example, points you create always land on the construction plane unless you use coordinate input (key in as text), use elevator mode, or object snaps.

Rhino default parallel views have their own construction plane that is parallel to the view itself but they share the World origin. Perspective view uses the World Top construction plane.

cplanes

Rhino supplies a rich set of commands to realign the construction plane, and synchronize other viewports to follow if needed. If your model has specific directions that you need to use often, then you should save in the named construction plane table. This way you can reference quickly and not have to recreate every time you need them.

cplanes

1.5.3 Construction planes tutorial

Create the following model with the accurate measures as indicated in the image.

cplanes tutorial

1.6 Geometry

Modelers support various geometry types. The most common types are NURBS and polygon meshes. NURBS is the primary geometry type in Rhino, and it enables high precision free-form modeling in very small tolerances. The following is a quick practical overview of key concepts. For details about NURBS geometry, refer to chapter 3 in the Essential Mathematics for Computational Design.

1.6.1 NURBS geometry

Rhino uses NURBS curves and surfaces as its primary method to represent geometry. NURBS is an accurate mathematical representation of curves that is highly intuitive to create free forms and edit them.

NURBS Curves

When representing curves using NURBS, the control structure makes it easy and predictable to edit. The control structure of a curve consists of a list of points that are used to construct the curve and also to edit it. Rhino Curve command draws a NURBS curve by default. For example, here are the steps to create a curve.

nurbs curves

At any point after you create the curve, control points can be turned on (use PointsOn command) and dragged to adjust the curve interactively (use PointsOff command, or Esc to turn off control points when done), as in the following.

nurbs curves

Other than control points, you need to pay attention to the curve degree. The degree determines how smooth a curve is. In simple terms, degree 1 creates polylines, degree 2 creates arcs, and degree 3 creates smooth curves. Higher degrees simply increase the smoothness and are not very commonly used. The degree of the curve in the example above is set to 3 (the default when you run Curve command), but there is a degree option that you can change. Here is how our curve looks when set to degrees 1 and 2 using the same control structure.

nurbs curves

It is possible to join two curves together if their end points coincide. The new curve is called polycurve (or polyline if it consists of lines).

nurbs curves

Notice that joining smooth NURBS curves together creates a “kink”. Deleting the control point directly on the kink fixes the curve continuity, but you can also join curves smoothly using commands such as BlendCrv.

nurbs curves

NURBS surfaces

Surfaces in Rhino are created using NURBS. You can think of them as a network of NURBS curves in two directions. They are infinitely thin, infinitely flexible, mathematically defined digital membranes. Surfaces are represented on screen by either some outline curves plus some interior curves called isocurves, or by a shaded picture which makes a surface appear to have some substance. How surfaces are painted on the screen is dependent on the display mode in the viewport, and does not affect the surface NURBS structure in any way. The important thing to remember about surfaces is that they are defined with great precision at every point. They are not approximations.

nurbs surfaces

Two NURBS curves can be turned into a surface using Loft command. Notice that the control structure (the collection of control points) is very similar to the curves used to make the lofted surface. In the same manner, a NURBS curve can be edited by dragging control points, NURBS surfaces are modified when dragging control points.

nurbs surfaces

There are a few concepts associated with NURBS surfaces that are useful to remember. NURBS surfaces are rectangular with two main directions referred to as the “u” and “v” directions. The two directions do not have to be linear, so surfaces may bend in space. It is always useful to change the color of isocurves going in u-direction (e.g. set to red) from those going in v-direction (e.g. set to green). It keeps you aware of the general structure of your surface. To do that, go to Rhino Options > View > Display Modes > [your mode] > Objects > Surfaces > Isocurve color usage

There is the idea of a “degree” in NURBS surfaces, and it defines the level of smoothness of the surface. With degree 1 surfaces, you end up with a faceted surface that has creases surrounding each unit area surrounded by adjacent control points. The higher the degree, the smoother the surface, but you typically need more control points to achieve it. Commonly used degrees are 1, 2, 3 and 5.

nurbs surfaces

NURBS surfaces typically have a rectangular boundary. If the surface is non-rectangular, then it is likely to be “trimmed”. Trimming involves defining a boundary (using curves). The underlying surface remains rectangular, and you can always Untrim the boundary to go back to the original surface. Adding holes to a surface is the same as adding an irregular boundary. It involves trimming an inner boundary. Again, the underlying structure of the NURBS surface remains intact in all cases.

nurbs surfaces

It is possible to Join surfaces together to make a bigger object. That happens if the two surfaces can be joined along at least one edge with the model tolerance. If you don’t plan carefully, the two surfaces might not connect smoothly. There are tools in Rhino to blend surfaces with the desired smoothness (or what is technically called continuity). One example is to use the BlendSrf command. It is also possible to blend or round the edges connecting two surfaces stitched together using a command such as FilletEdge and BlendEdge.

nurbs surfaces

1.6.2 Solid geometry

Rhino NURBS surfaces are infinitely thin; they have zero thickness. Enclosing a volume can be achieved with one or more surfaces stitched together as one object. The Solid menu includes all primitive forms such as Box, Sphere, Cylinder, etc.

nurbs polysurfaces

The more common way to create a closed polysurface or solid in Rhino is to join enough single surfaces together to enclose a space producing what is called a boundary representation, or brep for short. A box is an example of this type of object. We call these objects solids, but it is important to remember that there is nothing inside them. They are volumes in space enclosed by the infinitely thin surfaces. If you remove one side of a box and look inside you will see the backsides of the five surfaces.

nurbs polysurfaces

You can also create breps by extruding or offsetting surfaces. Shell command is another example of turning an open surface or polysurface into a solid with thickness.

nurbs polysurfaces

You can create solids from curves as input using commands such as Slab.

nurbs polysurfaces

There are modeling operations that work only with solids; most importantly the Boolean Operations. Commands such as BooleanUnion, BooleanDifference, and BooleanSplit ensure that the results remain solid.

nurbs polysurfaces

1.6.3 Extrusion geometry

Another object type that is related to a polysurface and a solid is the lightweight extrusion object. Lightweight extrusion objects use less memory, mesh faster, and save smaller than the traditional polysurfaces.

In models containing large numbers of extrusions represented by traditional polysurfaces, performance can be sluggish due to the relatively high demand on resources. If the same objects use a lightweight extrusion type, the model is more responsive and leaves plenty of memory available.

nurbs polysurfaces

In Rhino commands like Box, Cylinder, Pipe, and ExtrudeCrv create lightweight extrusion objects by default. They take up much less file size and can be very useful for dense architectural models with numerous rectilinear components such as structural elements. Note that editing these objects might result in converting them to Breps (typically when the operation result has no reasonable extrusion replacement that can be found).

1.6.4 Mesh geometry

Rhino creates, edits, and otherwise uses polygon meshes. Polygon meshes are sometimes used to depict the same type of objects as surfaces, but there are important differences. Polygon meshes consist of a number, sometimes a very large number, of points in space connected by straight lines. These straight lines form closed loops of three or four sides, that is, polygons. The mesh geometry is described by 3D corner points (mesh vertices) creating faceted faces and straight edges. The mesh also describes the relationships between points to create edges and faces. Rhino supports mesh operations to edit meshes, boolean and repair.

You can create mesh models in Rhino using triangular or quad mesh faces. Meshes can be open (boundary edges are called naked) or closed. Mesh edges can also be non-manifold (connect to more than 2 faces).

nurbs polysurfaces

Meshes are used to create shading and renderings on the screen. If you display a NURBS surface in shaded mode, you actually are looking at the polygon mesh derived from that surface. All polysurfaces in Rhino, have a render mesh attached to them to help create shading and rendering. The render mesh can be made more or less accurate based on speed and resolution requirements. Note that it is relatively easy to go from smooth breps to any resolution render mesh, but it is hard to turn a faceted mesh into a smooth brep. Meshes are also used for 3D printing. Deriving accurate meshes from surface models is important. Rhino has several tools to help accomplish this.

nurbs polysurfaces

1.6.5 SubD geometry

Rhino SubD objects are high-precision Catmull Clark subdivision surfaces. They can have creases, sharp or smooth corners, and holes. The Rhino SubD object is designed to quickly model and edit complex organic shapes. Unlike traditional mesh-based SubD implementations, Rhino SubD objects are NOT a subdivided mesh object. Rhino SubD surfaces are predictable, measurable, and manufacturable. They can be converted to either high-quality NURBS or mesh (quads or triangles) objects when needed. Rhino supports many commands to create SubD objects as primitive geometry or from curves using extrusions, lofting or sweep. It also supports a rich set of editing tools.

nurbs polysurfaces

1.6.6 Transition between geometry types

Rhino supports converting between geometry types. For curves, a smooth NURBS curve can be turned into arcs or lines using Convert command.

nurbs polysurfaces

For surfaces, there are four main geometry types: NURBS, extrusions, SubD and meshes. There are a number of commands in Rhino to convert between surface types. In the image below, there are few examples of transition between geometry types: (1) Extrusion (2) To NURBS (3) To Mesh (4) To SubD (5) To NURBS

nurbs polysurfaces

1.6.7 Geometry transformations

The common transformation commands include Move, Scale, Rotate, Project and Mirror. Those can be done in Rhino through running commands with these names. Some of them can be directly accessed using the Gumball control. There are other more complex transformations such as Twist, Stretch, Bend and Flow. All transformation commands are accessible through the Transform menu

1.6.8 Geometry tutorial

Model a Doric column and then use advanced transformation commands to modify.

cplanes tutorial

1.7 Units and tolerances

1.7.1 Overview

Rhino is always modeled in real full scale. So if your building is measured in meters, you should use “Meters” as your units in Rhino. You can set your model units under Document Properties>Units. It is important that you check your units before starting any modeling. Units affect the scale of your model.

units

Rhino modeling involves two types of operations. One is exact, and the other is approximate. For example, when you create a circle, you specify the exact location in space for the center, and exact radius. Now if you project this circle on a NURBS surface, this cannot be an exact operation in NURBS modeling. The amount of approximation is made within some tolerance. You can set that tolerance in the “Absolute tolerance” field. The smaller the tolerance, the tighter the model, but it may involve more complex structure, or take longer to calculate. You should consider what the model will be used for downstream when deciding what tolerance value to use. If the model is only used for visual representation, or renderings, then tolerances can be relaxed. If you will pass the model to be printed or analyzed in some engineering application, you need to check acceptable tolerances in the target application. Angle tolerance is used to evaluate if two curves or two surfaces are tangent within that tolerance.

1.7.2 Attributes and data

Modeling objects consist of two parts: geometry and data. You can think of data as information that describes the geometry attributes such as name, color, material, linewidth, group affiliation, etc. Data also includes custom information specific to the modeler or the workflow.

Rhino objects have attributes that can be accessed and set directly using the properties panel. Each geometry type has a different set of data and attributes associated with it, and they all appear as icons under the properties main tab.

units

Users can attach custom data to objects using a user string. You can add functional attributes such as length or area, but you can also create your own key and value that is specific to your modeling workflows. For example, you may tag all your roof panels with the “Area” Key and the area of each panel is calculated and attached. It also changes dynamically when the panels are scaled.

units

Rhino plugins can access objects’ user data and attach any information that can inform how certain objects display or behave.

Designers typically organize their model geometry and data in layers. This helps isolate and group data in one place. For example, you might put all your lights in one layer, site geometry in another and so on. Other than grouping data, layers allow you to hide, select all objects, or assign attributes. For example, you can assign color, lineweight or material to the layer instead of objects. There is extensive information about layers in the Rhino help file.

units

Selection tools by object type or attributes are other important tools to help navigate your model. For example, you might need to hide all points in the model. You can run SelPt, then Hide commands. You might also want to delete all duplicate geometry in a model. The command SelDup selects geometry that perfectly overlap (within your document tolerance), then runs the Delete command. It is also possible to select objects with a certain name or color. Knowing how to use selection commands can improve your productivity.

units

There are also specialized tools to identify specific information about your model. For example, you might need to identify and zoom to a naked edge in a dense mesh using ShowEdges command. This is important with mesh modeling to create clean closed mesh ready for 3D printing.

units

1.7.3 Attributes tutorial

Modify layer and object attributes and add user text such as area or volume to an object.

attributes tutorial

1.8 Visualization

Communicating and presenting design work to others is an integral part of any creative workflow. Rhino includes a variety of options for visualizing and rendering. Display modes, interactive rendering and a myriad of third-party plugins for rendering ensure you can capture and communicate your design intent as you create.

1.8.1 Display modes

Display modes in the Rhino viewport can be selected via the viewport drop-down menus or by way of the Display panel at the right of the Rhino UI.

display panel

Display modes can also be created, customized and saved through Rhino Options > View > Display Modes.

display modes

1.8.2 Rendering

Rendering controls for the default Rhino Render as well as the interactive rendering display mode called Raytraced can be accessed in the Rendering panel. If you are using a separately installed rendering plugin in Rhino, refer to that plugin’s documentation for UI locations. The Render drop down menu, then Current Renderer flyout can be used to switch between rendering plugins.

rendering

1.9 2D drawing and annotation

Extracting 2D drawings out of 3D models is common to most 3D modeling applications. In Rhino there are few commands to help section through models, orient planar curves to any plane and extract outlines of scenes. Section and Contour commands help extract one or series of sections through a model. Sections remain in the true location of the 3D modeling space, but can be moved or oriented to any plane using Orient command. In essence, a section is the result of intersecting a plane with the model. Rhino has a robust Intersect command that can also be used to create sections.

Perspective or parallel views of a model can also be extracted as planar line drawing along with hidden line information and boundaries using the Make2D command in Rhino.

Section, Contour and Make2D create vector drawings consisting of curves and points that are actual geometry objects in Rhino. Those can be snapped to and annotated. If you simply need an image of your section, or would like to look inside your model in the viewport, then you can use another set of commands. ClippingPlanes and ViewCapture are two very commonly used commands that are used for that purpose.

Rhino also supports a special paper space viewport called Layout. It supports placing views of the model to scale, add paper titles and Print to PDF and other formats.

1.10 Files

3D modeling applications save geometry and data to a file using a specific format. When a file format is publicly available (open source), other applications can easily add support to open files using that format. This helps promote interoperability among different applications and flow of information. Rhino publishes its 3DM file format in OpenNURBS allowing other applications to fully support it.

Some applications only support a limited number of geometry types, or specialized object types. This makes interoperability more challenging, and some data is bound to be lost in the conversion. Rhino pays great attention to file I/O and supports many different import and export formats, making it possible to model in Rhino and then export your model to downstream processes, or import models from other software applications into Rhino. For a complete list of import and export file types refer to the Rhino Help > Contents > File I/O > File Formats.

rendering

1.11 Lighthouse Tutorial

Model the following lighthouse using Rhino.

cplanes tutorial