Solids · Design · Guide

Model a Projector with Live Solid Features

Build a projector housing whose chamfers, booleans, and fillets stay live while you push the form around and before shelling and splitting it into parts.

30 minRhino 9 for Windows / MacIntermediate
Model a Projector with Live Solid Features

In this tutorial, you’ll complete the overall styling of a projector, give it wall thickness, and split it into parts. Because the solid commands record History, you can keep changing the base surfaces, the lens position, and the fillet and chamfer sizes until you find the form you want. We’ll learn how to keep the model in this “live” state keeping the original geometry around. Then, we’ll learn how to split the housing into parts.

What you'll learn

  • Build a solid from intersecting surfaces with CreateSolid and reshape it live through Record History.
  • Add ChamferEdge , BooleanUnion , and variable-radius FilletEdge features that update when their inputs change.
  • Double-click a fillet or chamfer to edit it after the command has ended.
  • Shell the solid and split it into parts with the TangentComponents option of Explode .
The projector body created from two intersecting surfaces, shown in red and blue, with a chamfered outline and a lens cylinder filleted into the front.

Create the Base Shape

  1. Download and open the model SolidFeatures.
  2. On the Status Bar :
    1. Right-click the Record History pane and set it to Always Record History. Make sure Update Children is also enabled.
    2. Activate the Gumball
  3. Run the CreateSolid command.
  4. At the Select intersecting surfaces and polysurfaces... prompt , set DeleteInput=No.
  5. Then, select the two surfaces in the scene and press to create the solid .
  6. Select the two surfaces and run the SetObjectDisplayMode command. Change Mode=UseView to Mode=Wireframe. Press to end the command. The surfaces no longer hide the solid.
  7. With the surfaces still selected, use Gumball to move the two original surfaces. Notice how the solid updates as you move them.
  8. Run the ChamferEdge command. Type 3 and press to set the chamfer distance to 3
  9. At the Select edges to chamfer prompt, select the solid edge loop. Press . Make sure Preview=Yes and DeleteInput=No are set. Press to end the commmand.
  10. Run the Hide command and follow the prompts to hide the solid you previously created with CreateSolid . Only the chamfered solid stays visible.
  11. Select the two surfaces and run the PointsOn command to turn on the control points of the two original surfaces.
  12. Use the Gumball to move the control points. Both CreateSolid and ChamferEdge record History. Since one solid was generated from the previous one, with Record History enabled, the changes percolate down to the latest result.

Add Details and Find the Form

  1. Continue with your file or download and open the model SolidFeatures-01.
  2. Select the red circle and use the Gumball extrude dot to extrude it into a cylinder. Extrude into the main body.
  3. Run the BooleanUnion command.
  4. At the Select surfaces or polysurfaces to union prompt , make sure DeleteInput=No. Then, select the two solids. Press to end the command.
  5. At the prompt , keep DeleteInput=No, then select the cylinder and the chamfered solid to merge them.
  6. Run the Hide command and follow the prompts to hide the original cylinder and the chamfered solid. Keep the booleaned result only.
  7. Run the FilletEdge command and press Enter:
    1. At the Select edges to fillet prompt and select the common edge between the cylinder and the base solid. Press Enter.
    2. Keep DeleteInput=No.
    3. Use the AddHandle option to add handles at 4 different locations along the edge.
    4. Select each handle to give a different radius.
    5. Press to create the variable-radius fillet.
      Zebra analysis in Rainbow mode on the projector body, showing the variable-radius fillet transition around the lens cylinder.
  8. Run the Hide command and hide the solid you made with BooleanUnion .
  9. Use the Gumball to move the red circle and change the lens position. The fillet surfaces update automatically.
  10. Run the ModifyRadius command and change the radius of the red circle. The fillet surfaces update again.
  11. Select the two original surfaces and run the PointsOn command to turn on their control points .
  12. Use the Gumball to move the control points and keep refining the overall shape. The Boolean, the chamfers, and the fillets all update.
Keep the inputs
History only works while the input objects exist. That’s why every command in this tutorial runs with DeleteInput=No, and the inputs are hidden instead of deleted.
Gumball Drag Modes
Gumball has two modes for moving geometry: Snappy and Smooth. One pays attention to Osnaps and moves geometry referencing Osnap points. The latter moves geometry freely, without constraints. Learn more about Gumball drag modes…

Refine the Shape Details

  1. Continue with your file or download and open the model SolidFeatures-02.
  2. Change the Display Mode to Shaded.
  3. Double-click the fillet you created in the previous section. Rhino enters the FilletEdge edit mode.
  4. Select the handle widgets to modify their locatioin and radii. Press when done.
  5. Select the filleted solid and run the Lock command to lock it. Locked objects stay visible but are not selectable.
  6. Run the ShowSelected command and select the original chamfered solid from the first section to show it again.
  7. Double-click the chamfer to enter the ChamferEdge edit mode:
    1. At the Select chamfer handle to edit prompt , select the handle radius widget in the viewport.
    2. Type 5 and press Enter, to change the chamfer width.
    3. Press Enter to end the command. The fillet built on top of the chamfered solid updates too.
  8. Select the original chamfered solid and run the Hide command to hide it once more.
  9. Run the UnlockSelected command and follow the prompts to unlock the solid.
  10. Double-click the fillet to enter the FilletEdge edit mode again. Keep adjusting the fillet radii until you like the transition.
About History Flow
History is a hierarchical relationship betweent objects. This hierarchy is maintained by keeping the Parent (original) object around. Modifying it, will modify the subsequent Children objects generated from it, as long as this relationship isn’t broken along the way. Modifying the child will break history. Running a command that doesn’t support history will also break the parent-child relationship. Learn about the History Enabled commands in Rhino…

Add Wall Thickness and Split the Parts

  1. Continue with your file or download and open the model SolidFeatures-03.
  2. Select the two original surfaces and the red circle and run the Hide command to hide them.
  3. Run the Shell command.
    1. At the Select faces to remove from closed polysurface prompt , select the flat cap on the cylinder.
    2. Set Thickness=2 and press to create a 2 mm thick shell.
  4. Run the Explode command and set TangentComponents=Yes in the prompt.
  5. At the Select objects to explode prompt, select the solid and press Enter. The surfaces that are connected by the fillet stay together as a single polysurface instead of exploding into individual surfaces.
  6. Select the 3 top objects that come out of the previous step and use the Gumball to move them 50 mm up along the Z-axis.
  7. Run the Loft command.
  8. At the Select curves to loft prompt, select the two open edges of the chamfer on the bottom solid part. Press Enter twice.
  9. In the same way, create a loft surface on the open edges of the chamfer on the top solid part.
  10. Select the top objects and run the Join command. Do the same for the lower objects. The housing is now split into two parts.
  11. Use the Gumball to move the upper part -50 mm down along the Z-axis to assemble the parts.
  12. Run the ClippingPlane command and create a clipping plane to check how the split parts fit together.
Manage History
History’s hierarchy is not made available in the UI. It is up to the user to keep in mind these relationships. However, there are commands that can help manage the file’s history record.
Finished!
Congratulations for completing this tutorial! Feel free to continue using these tools to detail your design or create a new one from scratch. If you have any questions ask us on Discourse or drop an e-mail to our support team: support@mcneel.com.