# 15-394 Assignment 3: Slicer and Model Maker in Grasshopper

### I. Introduction

In this assignment you will modify a Grasshopper program that slices a solid object to produce a laser-cuttable model. You will then produce such a model, laser cut your parts, and assemble it.

The slicer program is an extension of the program shown in this 3D Puzzles with Grasshopper video. To aid your understanding of the slicing algorithm, you might benefit from watching this video. Note: the Grasshopper component referred to as "Planar Surface" in the video is now called "Boundary Surface".

Start with this Slicer assignment Grasshopper program. You can use the torus Rhino file as test data for this program, as we did in class. Load the torus file into Rhino. In Grasshopper, load the slicer program and right click on the Geometry parameter component in the top left corner, then choose "Select One Geometry" and click on the torus in the Rhino window.

### II. Generate YZ Cutting Slices

The grasshopper code generates both XZ and YZ model slices, but only the XZ slices are further manipulated to lay them out in a grid suitable for laser cutting and applying labels to them. There is a large tan circle where the corresponding code for the YZ slices and labels needs to go. Write this code.

Note that there is a bug in the Solid Difference (SDiff) component that can interfere with correct cutting of your slots. This Grasshopper forum discussion gives details of the bug and offers a solution.

### III. Create a New Shape to Model

You can use the torus to test your code, but in this step you should create your own 3D shape and run it through the slicer. Note that many complex shapes will not slice correctly because the algorithm is rather simple-minded. One approach to consider is lofting between two contours to produce an interesting 3D surface. As long as there are no z-overhangs, slicing should be successful. But you are not required to use a loft; any non-boring shape that you can model successfully is fine. Simple regular shapes like cubes are boring; pick something more interesting.

Remember to adjust the Thickness slider to match the actual thickness of the cardboard you intend to use. For thin cardboard a value of 3.3 mm should work well.

### IV. Laser Cut Your Model

Bake the generated XZ and YZ slices into Rhino. Don't forget to turn off the Isocontour lines so they don't show up in the DXF. To do that, click on the baked object, and in the properties box on the right edge of the Rhino window, in the Isocurve Density section, uncheck the "Visible" box.

There are two additional steps you need to take before exporting the slices as DXF files. First, we need to convert the text tags from annotations (which the laser cutters ignore) to actual curves. To do that, select the annotations and type the Rhino command "Explode". They will be replaced with outline curves. Second, because the Grasshopper shapes are 3D, Rhino will try to put several copies of each line in the file, which means the same line will be cut multiples times. To prevent this, select the entire model in Rhino and type "Make2D" in the command window. Accepting the default settings should be fine. Note that this will deposit a new set of shape outlines in the Rhino window, offset from the original shapes. It is these new outlines that you'll want to write out as a DXF file.

The grid-based layout is simple but not the most efficient use of space. Feel free to edit the DXF file and move items around to pack them more closely before laser cutting.

If you set your units to centimeters, remember that the laser cutters think everything is in millimeters so you will need to scale up your file in the laser cutter client program by a factor of 10.

You can look at your labeled slices in Grasshopper to see where each slice fits. Put your model together, take a picture of it that makes it easy to see tha model structure, and post the picture to Piazza.

### VI. Super Extra Credit

If you're really into Grasshopper, find a way to pack the slices together efficiently instead of spreading them out in a space-wasting grid. I don't know if there's an easy solution to this. Find it and you'll earn super extra credit.

### Hand-In

Hand in a zip file handin.zip containing the following:
1. Your Grasshopper program (a .gh file).
2. Your Rhino file (a .3dm file) with the object you used as input to your program.