# Rhino Guided Exercise Task: Model the following Lego piece in Rhino. ![Lego Piece](https://fablabbcn-projects.gitlab.io/learning/educational-docs/assets/lego_piece.jpg) --- ## Interface 1. **Views** - Rhino uses multiple viewports to display your model from different angles (Top, Front, Right, Perspective, etc.). - You can maximize a viewport by double-clicking its title or switch between views using the *Viewport Tabs*. 2. **Layers Pane** - Layers help organize your model by separating different parts or components. - Use the *Layers* panel to create, rename, and manage layers. Assign objects to layers to control visibility, color, and linetype. 3. **Properties Pane** - The *Properties* panel displays information about selected objects, such as their dimensions, material, and layer. - It’s also where you can adjust object attributes like color and linetype. - Most important for 3D printing: open/closed. 4. **Selection Filters** - Use selection filters to limit what types of objects can be selected (e.g., curves, surfaces, points). - Access filters via the *Selection Filter* toolbar or by typing `Sel` + the object type (e.g., `SelCurve`). 5. **OSnaps (Object Snaps)** - OSnaps help you accurately place points by snapping to specific locations on objects (e.g., endpoints, midpoints, centers). - Common OSnaps: End, Mid, Cen, Int, Perp, Near. Enable/disable them in the *OSnap* toolbar or status bar. 6. **Commands and Command Window** - Rhino is command-driven. Type commands in the *Command Line* or use toolbars/menus. - Press `Enter` or `Right-Click` to execute a command. Use `Esc` to cancel. - Pressing `Enter`, `Right-Click` or `Space` when the Command Window is empty will repeat the last command. - The *Command History* shows previous commands for reference. 7. **CPlane and World Coordinates** - The *Construction Plane (CPlane)* defines the active working plane for drawing and editing. - The *World Coordinate System* is the global reference for all objects. Use `CPlane` commands to adjust the working plane. --- ## Drawing 2D Shapes 1. **Rectangle** - Command: `Rectangle` - Draw rectangles by specifying corner points or using options like `Center`, `3Point`, or `Vertical`. 2. **Circle** - Command: `Circle` - Draw circles by specifying the center and radius or using options like `Diameter`, `3Point`, or `Tangent`. --- ## Moving Objects 1. **With the Gumball** - The *Gumball* is a interactive tool for moving, rotating, and scaling objects. - Click and drag the arrows to move, the circles to rotate, or the squares to scale. - Hold `Alt` while dragging to create a copy of the object. 2. **With the Move Command** - Command: `Move` - Select objects, specify a base point, and then a destination point. - Hold `Shift` to constrain movement to perpendicular directions. Use `Tab` to lock movement along a specific axis. --- ## Selecting Objects - **Left to Right Selection**: Selects objects entirely within the selection window. - **Right to Left Selection**: Selects objects that touch or are within the selection window. --- ## Making Volumes There are many strategies to create 3D volumes: using primitives, Boolean operations, extruding, revolving, etc. ### Extruding - Command: `Extrude` - Select a 2D shape (e.g., a rectangle or circle) and use the *Gumball* or specify a distance to extrude it into a 3D volume. ### PushPull (New in Rhino 8) - Command: `PushPull` - Click and drag faces of a 3D object to modify its shape interactively. ### Offset - Command: `Offset` - Create a parallel copy of a curve or surface at a specified distance. --- ### Boolean Operations 1. **Boolean Union** - Command: `BooleanUnion` - Combines multiple objects into a single object. 2. **Boolean Difference** - Command: `BooleanDifference` - Subtracts one object from another. 3. **Boolean Intersection** - Command: `BooleanIntersection` - Keeps only the overlapping portion of objects. #### Using OSnaps 1. Build a **Cylinder** centered on one of the top face pins. - Command: `Cylinder` - Use OSnaps like `Cen` to place the center accurately. 2. Move the cylinder down to its position using the **Move** command. - Command: `Move` - Use OSnaps like `End` or `Mid` for precise placement. 3. Create 7 more copies with the **Array** command. - Command: `Array` - Use options like `Rectangular` or `Polar` to create copies in a pattern. 4. Use **BooleanUnion** and **BooleanDifference** to combine or subtract the resulting closed polysurfaces. --- ### Exercise Build the rest of the Lego piece using a combination of the above strategies and commands. --- ## Other Important or Neat Commands - **Distance**: Measure the distance between two points. - **Trim**: Cut objects at their intersections. - **Join**: Combine multiple objects into a single object. - **Fillet**: Create rounded edges between curves or surfaces. - **Chamfer**: Create beveled edges between curves or surfaces. - **FlowAlongSrf**: Deform an object to follow a surface. - **Sweep**: Create a surface by sweeping a profile along a path. - **Loft**: Create a surface by blending between multiple curves. - **Zoom Selected All Viewports**: Zoom to the selected object in all viewports.