Points and Solids31 Mar, 2002 By: John E. Wilson
Rhino is a powerful, yet modestly priced, 3D-modeling program from Robert McNeel & Associates. It runs on most computers using a Windows operating system. Visit www.rhino3d.com to learn more about the program's capabilities and requirements or to download an evaluation version. In the two previous months, we explored Rhino's tools for creating surfaces. This month, we'll take a look at points, which are the most basic of all 3D objects, and at solids, which are a specialized form of surfaces.
Most Rhino surfaces are based on curves, and typically you construct curves by specifying points--endpoints for lines, center points for circles, control points for splines, and so on. Moreover, these points are likely to be scattered throughout 3D space. Specifying 3D points has always been problematic in virtually all 3D-modeling programs because the movement of pointing devices, such as mice, is restricted to a plane. Most programs do allow you to enter x, y, z coordinates from the keyboard any time you are prompted to specify a point's location, but people generally prefer to use their pointing device. To accommodate this preference, Rhino provides the following tools to help you use your pointing device in specifying the location of points. (For details on using these tools, and other Rhino drawing tools, see the Modeling Aids section in Rhino's Help.)
Object Snaps. When you activate a particular object snap, such as an endpoint snap, the cursor automatically moves to the corresponding point on an existing object when it approaches such a point. Most CAD programs support a variety of object snaps, and Rhino supports all of the object snaps you would expect--such as quadrant, center point, and intersection. To facilitate your use of object snaps, you can click Osnap on Rhino's status bar to display the Osnap dialog box. This dialog box, which remains open as you work, has check boxes for you to conveniently turn on or off the most common object snaps. Rhino also has some specialty object snaps that you can initiate only from the command line, the Tools/Object Snap pulldown menu, or the Object Snap toolbar. One of these specialty object snaps locks the cursor to a surface, and another snaps to a point midway between two specified points.
Construction Planes. Similar to other 3D modelers, Rhino has a movable plane (known as the construction plane) you can use for drawing with your pointing device. Even though your pointing device is still restricted to 2D movement, you can draw curves with 3D coordinates by positioning the construction plane first. Furthermore, each Rhino viewport can have its own construction plane, which enables you to begin drawing a curve on one construction plane and then switch to other viewports and construction planes as you specify other points.
Planar Mode. In addition to the snap-to-grid and ortho drawing modes found in most CAD programs, Rhino has a drawing mode called Planar that helps you draw in 3D space. When the Planar mode is turned on, you can select a point on the construction plane and use your pointing device to specify other points at that same distance from the construction plane. For example, to draw an arc centered at the world coordinates of 2,1,4 and is parallel with the world xy plane, you can type 2,1,4 in Rhino's command line and press Enter to set the center of the arc. Then you can freely use your pointing device in the Top viewport to specify the endpoints of the arc.
Elevator Mode. This is a temporary mode that you activate by depressing the Ctrl key as you specify a point. Its effect is similar to a point filter. For example, to draw the same arc used as example in the previous paragraph, you move the screen cursor in the Top viewport to the world coordinates of 2,1,0 and depress the Ctrl key as you click your pointing device. This locks the cursor movement to a vertical line that passes though 2,1,0, and you can switch to either the Front or the Right viewport to set the world z coordinate for the center of the arc.
Figure 1. Rhino has tools for easily creating solids in nine basic forms. These solids, which are generally referred to as primitives, are used as building blocks in creating complex solid models.
Although you usually concentrate on surfaces as you construct Rhino models, sometimes it is more convenient to construct models as solids. Similar to other programs for creating solid models, Rhino can create solids from basic, primitive shapes as well as from profile curves that are moved through space to define the volume of a solid. You can access Rhino's tools for creating and modifying solids from the Solid pulldown menu. Although this menu offers a full set of tools for creating primitives, extrusion is the only method offered for creating a solid from a profile. The menu does not include revolving, sweeping, or lofting as methods for creating a solid, as do most solid modelers.
In actuality, though, Rhino offers far more methods for creating solids than most solid modelers because you can also use most of the profile-based methods listed in the Surface menu to create solids. This is because there is no basic difference between Rhino solid and surface objects; a solid is simply a completely closed surface or polysurface (which is a set of joined surfaces). For example, you can create a solid sphere by selecting Sphere from the Solid menu, or by selecting Revolve in the Surfaces menu to fully rotate a 180-degree arc about an axis. The object type of each sphere is the same--a NURBS surface. You can use both solid and surface editing/modification operations on them.
The first nine items in the Solid menu are for creating primitives, as shown in Figure 1. Typically, you use these primitives as building blocks to create complex models. As do most other solid-modeling programs, Rhino can create primitives in the form of boxes, spheres, cones, cylinders, and tori. Rhino does not, though, have a wedge primitive. And Rhino cone and cylinder primitives cannot have an elliptical cross-section. The ellipsoid primitive has both its horizontal and vertical cross-sections in the shape of an ellipse, and the paraboloid primitive has the shape of a headlight reflector. There is an option to cap the paraboloid or leave it open.
The tube primitive is a straight cylinder that has a center hole. Rhino will ask you at the command line to specify the center of the tube, its outside and inside radii, its direction, and its length. The results are similar to simultaneously extruding two concentric circles. Pipe, on the other hand, is similar to a one-rail sweep using circular start and end profiles. Rhino will first prompt you to select a rail curve, and then to specify the radii of the starting and ending circles. Options allow you to create a hole in the center of the 3D feature, and to either cap its ends or leave them open.
Select Text in the Solid menu to transform Windows' TrueType text into 2D curves, planar surfaces, or 3D solids. Rhino will display a dialog box for you to enter the text you intend to transform and to specify its font, font style (such as bold or italic), height, and the type of object that is to be created (curve, surface, or solid). If you select solid, you will need to specify its thickness. The text is placed at the origin of the drawing plane in the current viewport.
Extrude Planar Curve in the Solid menu initiates the same Rhino command that Extrude in the Surfaces menu does. When you invoke the command from the Solid menu, though, an option that caps both ends of the 3D object is automatically chosen. You can select any number of curves in defining the solid. However, if the selected curves are not planar or do not form a closed loop, the resulting extruded feature will be open on both ends.
Figure 2. First the primitives for creating a typical solid model are selected, as shown in 2A. Then, the primitives are moved to their proper positions, as shown in 2B. 2C shows the finished model. The white colored primitives have been combined with the Union Boolean operation, and the red colored primitives were subtracted from them.
Choose Extrude Surface in the Solid menu to create a solid from the edges of an existing planer face. Rhino will issue command-line prompts for you to select one or more faces, and to then specify the extrusion distance. The extrusion direction is always perpendicular to the selected face.
The remaining items in Rhino's Solid menu are for modifying solids. Choose Fillet Edge to round the sharp edges and corners of a solid. Rhino will prompt you from the command line to select the edges you want rounded and to specify the fillet radius. Although you can enter several different fillet-radius values, the last one you enter sets the radius for all of the selected edges. The corner of two simultaneously filleted adjacent edges is mitered, and the corner of three simultaneously filleted edges is rounded.
Select Cap Planar Holes to cover the open planar areas of a model. Rhino will issue a command-line prompt for you to select the surface objects you intend to cap, and will then cover all of their planar openings. However, openings with edges that do not define a planar surface will not be covered. Extract Surfaces in the Solid menu detaches a selected face, such as one side of a box, from a solid. You can then move or modify the face, or delete it to leave a hole in the model. As an option, you can create a copy of the selected face rather than detach it.
The three Boolean operations--Union, Difference, and Intersection--use the shared volume of two or more solids in three different ways to modify the solids. Union joins two or more selected solids and consolidates their shared volume. The Difference operation requires two sets of solids with the volume that the second set shares with the first set being subtracted from it. Volume in the second set not shared with the first set disappears. The Intersection operation creates a solid from the volume shared by two or more solids. Volume that is not shared disappears. Often you will use the Boolean operations with primitive solids to create a complex solid, as shown in Figure 2. You can also use these Boolean operations on surfaces, but because surfaces have no volume, the results depend on surface properties, such as the surface's direction, and are more difficult to predict.