Grasshopper/Rhino - Snap Fit Basket

by connelltrainor in Craft > Digital Graphics

393 Views, 3 Favorites, 0 Comments

Grasshopper/Rhino - Snap Fit Basket

Screenshot 2022-04-30 at 15.06.47.png

Goal:

Create a “Kit” of 3D printed Press-Fit Parts

Design a set of 3D printed components that either fit together or fit onto existing materials (cardboard, dowels, pins, arbitrary objects in your home).

Use Rhino/Grasshopper to design a set of mating joints with variable tolerances and print a test set to check for fit. Use your testing to determine the proper tolerances and fit for your final parts, and print a set.

I was inspired by the "Rhino Tutorials" 3D puzzle page, to create a set of 'plates' with slots that could be joined together to make some sort of elaborate plate/basket.

Basket Shaped Object

Screenshot 2022-04-28 at 19.31.58.png
Screenshot 2022-04-28 at 19.30.48.png
Screenshot 2022-04-28 at 19.30.55.png
Screenshot 2022-04-28 at 19.31.13.png

In Rhino I created a polygon box shape to model my basket from.

Creating Basket Shell

Screenshot 2022-04-28 at 19.45.18.png
Screenshot 2022-04-28 at 19.41.10.png
Screenshot 2022-04-28 at 19.41.02.png
Screenshot 2022-04-28 at 19.39.07.png

I shelled the box to create something resembling a basket.

Modifying Shape & Filleting

Screenshot 2022-04-29 at 16.43.43.png

By adding fillets and increasing 'thin' dimensions I created a box resembling the final shape of the basket I desired.

Creating Spaced Cross Sections

Screenshot 2022-05-02 at 11.28.52.png
Screenshot 2022-05-02 at 11.27.46.png

I started in Grasshopper now to create a flow that could take cross-sections of the brep (basket shell) at evenly spaced intervals. I used sliders to control the spacing distance. I initially developed this code on a simple shelled cube.

Extruding Cross Sections

Screenshot 2022-05-02 at 11.23.10.png
Screenshot 2022-05-02 at 11.22.43.png

I extruded these cross-sections at a controlled distance using a slider.

Repeat Along Y-axis

Screenshot 2022-05-02 at 11.24.12.png
Screenshot 2022-05-02 at 11.23.50.png

I repeated the process using the same flow but now using the Y-axis to contour (take cross-sections) and extrude to gain crossing geometries resembling the basket.

Finding Points of Intersection

Screenshot 2022-05-02 at 11.32.55.png
Screenshot 2022-05-02 at 11.32.44.png
Screenshot 2022-05-02 at 11.34.44.png

By comparing the cross-sections in both directions, I was able to use the 'BBX' block to 'solve intersection events for two breps'. Using the line of intersection I found the halfway point of each using a bounding box.

Finding Areas of Intersection

Screenshot 2022-05-02 at 11.36.12.png

I then separated the bounding box into two halves using the halfway point found in the previous step. The volumes below and above this point were defined depending on the slice thickness used in Step 5 to extrude the cross-sections.

Removing Areas of Intersection

Screenshot 2022-05-02 at 11.38.15.png
Screenshot 2022-05-02 at 11.38.24.png
Screenshot 2022-05-02 at 11.39.33.png

Using a Solid Difference between the two volumes (the extruded cross-section + the bottom half of the intersecting volume), I was able to cut out the slots you can see above.

Repeat for Y-Axis

Screenshot 2022-05-02 at 11.40.45.png
Screenshot 2022-05-02 at 11.40.40.png

The process is repeated for the perpendicular cross-sections. The opposite (top) cut-outs are used to cut out slots in the extrusions.

Challenge: Finding the area of intersection and the midpoint of this area was relatively simple, however in order to cut out a volume I struggled to find an appropriate boundary for the volume in the z-axis. Using a bounding box for the original brep, I was able to bound the top of the intersection volume as seen above.

Chamfering Slots

Screenshot 2022-04-30 at 15.13.49.png
Screenshot 2022-04-30 at 15.14.14.png
Screenshot 2022-04-30 at 15.14.55.png

I then added chambers to the opening of each slot. As seen in class this should help two plates fits together.

Baking & Exporting

Screenshot 2022-04-28 at 19.49.39.png
Screenshot 2022-04-29 at 18.20.18.png

I baked then baked and exported each plate individually. The image above shows one of my first attempts, however, the original shell was too thin. When I came to bake and export I realised that the slots cutting into the plates left too little material for the plate to be strong enough once printed.

Final Design

Screenshot 2022-04-29 at 20.13.48.png
Screenshot 2022-04-29 at 20.13.39.png

After printing some trial pieces I refined the design to the one seen above. I learnt that the bigger I could print the plates the better the fit seemed to be between two perpendicular sets. I like the pentagon shape since it isn't so symmetrical. Here is the final design I would attempt to print all 10 pieces for.

Printing

Screenshot 2022-04-30 at 15.19.48.png
Screenshot 2022-04-30 at 15.20.11.png
Screenshot 2022-04-30 at 15.20.30.png

I had some difficulty printing the plates. I struggled to achieve good plate adhesion at the sharp corners of the plates. After re-calibrating my plate bed and increasing temp from 55 - 65 degrees, the print worked better.

Final

IMG_5807.jpeg

here you can see all the plates fitted together. The bowl was challenging to fit all together. The slot fit is quite tight as expected, however, once each plate is slotted in position it makes a really rigid basket/bowl as desired. The chamfers on the edge of each slot were essential for allowing each piece to slot into one another.