Welcome to MakerHome

We've completed our yearlong print-a-day project! New projects will be posted at www.mathgrrl.com/hacktastic.

All mathgrrl designs and associated images and files on MakerHome are licensed under the Creative Commons Attribution Non-Commercial Share Alike license. If you want to use designs, images, or files outside of the terms of this license, please email request@mathgrrl.com.

Monday, September 9, 2013

Day 14 - Dodecabubbles

Inspired by JMP's Bubble Frames on Thingiverse, today we have a dodecahedron frame for dipping into bubble solution to make a minimal surface.


STL file: http://www.geekhaus.com/makerhome/day14_dodecabubbles.stl
Tinkercad link: https://tinkercad.com/things/lq8dAbpz4GI-day-14-dodecabubbles

Settings: MakerWare "Low" with raft and supports, with a model at 80% of original size taking just over an hour.

Technical notes:  The vertex and edge data for the frame of the dodecahedron was taken from Mathematica using PolyhedronData["Dodecahedron", "Edges"]. Since I couldn't figure out how to get a tubular wireframe directly, I cobbled the vertex and edge data together manually as shown below the fold, and then exported to .stl. Unfortunately this made a non-watertight model with ragged holes in the joins, which didn't print correctly. Luckily all it took was using "Close Holes" in MeshLab to close up the model and make it suitable for printing. Both versions of the model looked the same in MakerWare, but Tinkercad could see the difference.

Stuff you might want to change:  The edges of the model are a bit too thick, so next time I print I'll redesign them to be thinner.  In addition there are divots at each vertex that would be better if smoothed out.  In the long run it would be nice to see how five Platonic solids behave as bubble frames.

Mathematica code to generate the model:

Graphics3D[{JoinForm["Round"],
  Tube[{
    {-Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {-2 Sqrt[1 + 2/Sqrt[5]], 0, 2 Root[1 - 20 #1^2 + 80 #1^4 &, 3]}}, 0.1],
  Tube[{
    {-Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Root[1 - 100 #1^2 + 80 #1^4 &, 1], 1/4 (-1 - Sqrt[5]),Root[1 - 20 #1^2 + 80 #1^4 &, 2]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 1], 1/4 (-3 - Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 2], 1/4 (-1 - Sqrt[5]), Sqrt[5/8 + 11/(8 Sqrt[5])]},
    {Sqrt[1/4 + 1/(2 Sqrt[5])], -(1/2), Sqrt[5/8 + 11/(8 Sqrt[5])]},
    {Sqrt[5/8 + 11/(8 Sqrt[5])], 1/4 (-1 - Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20 #1^2 + 80 #1^4 &, 2]},
    {Sqrt[5/8 + 11/(8 Sqrt[5])], 1/4 (1 + Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Sqrt[1/4 + 1/(2 Sqrt[5])], 1/2, Sqrt[5/8 + 11/(8 Sqrt[5])]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 2], 1/4 (1 + Sqrt[5]), Sqrt[5/8 + 11/(8 Sqrt[5])]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 1], 1/4 (3 + Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Root[1 - 100 #1^2 + 80 #1^4 &, 1], 1/4 (1 + Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 2]},
    {-(1/2) Sqrt[1 + 2/Sqrt[5]], 1/2, Root[1 - 100 #1^2 + 80 #1^4 &, 1]},
    {-(1/2) Sqrt[1 + 2/Sqrt[5]], -(1/2), Root[1 - 100 #1^2 + 80 #1^4 &, 1]},
    {Root[1 - 100 #1^2 + 80 #1^4 &, 1], 1/4 (-1 - Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 2]}}, 0.1],
  Tube[{
    {-Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Root[1 - 100 #1^2 + 80 #1^4 &, 1], 1/4 (1 + Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 2]}}, 0.1],
  Tube[{
    {-Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Root[1 - 5 #1^2 + 5 #1^4 &, 1], 0, Sqrt[5/8 + 11/(8 Sqrt[5])]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 2], 1/4 (-1 - Sqrt[5]), Sqrt[5/8 + 11/(8 Sqrt[5])]}}, 0.1],
  Tube[{
    {Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20 #1^2 + 80 #1^4 &, 2]},
    {Sqrt[1/10 (5 + Sqrt[5])], 0, Root[1 - 100 #1^2 + 80 #1^4 &, 1]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 3], 1/4 (-1 - Sqrt[5]), Root[1 - 100 #1^2 + 80 #1^4 &, 1]},
    {Sqrt[1/8 + 1/(8 Sqrt[5])], 1/4 (-3 - Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 2]},
    {Sqrt[5/8 + 11/(8 Sqrt[5])], 1/4 (-1 - Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 3]}}, 0.1],
  Tube[{
    {Root[1 - 20 #1^2 + 80 #1^4 &, 1], 1/4 (-3 - Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Sqrt[1/8 + 1/(8 Sqrt[5])], 1/4 (-3 - Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 2]}}, 0.1],
  Tube[{
    {Root[1 - 20 #1^2 + 80 #1^4 &, 1], 1/4 (3 + Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Sqrt[1/8 + 1/(8 Sqrt[5])], 1/4 (3 + Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 2]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 3], 1/4 (1 + Sqrt[5]), Root[1 - 100 #1^2 + 80 #1^4 &, 1]},
    {-(1/2) Sqrt[1 + 2/Sqrt[5]], 1/2, Root[1 - 100 #1^2 + 80 #1^4 &, 1]}}, 0.1],
  Tube[{
    {Sqrt[5/8 + 11/(8 Sqrt[5])], 1/4 (1 + Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 3]},
    {Sqrt[1/8 + 1/(8 Sqrt[5])], 1/4 (3 + Sqrt[5]), Root[1 - 20 #1^2 + 80 #1^4 &, 2]}}, 0.1],
  Tube[{
    {Root[1 - 20 #1^2 + 80 #1^4 &, 2], 1/4 (1 + Sqrt[5]), Sqrt[5/8 + 11/(8 Sqrt[5])]},
    {Root[1 - 5 #1^2 + 5 #1^4 &, 1], 0, Sqrt[5/8 + 11/(8 Sqrt[5])]}}, 0.1],
  Tube[{
    {-(1/2) Sqrt[1 + 2/Sqrt[5]], -(1/2), Root[1 - 100 #1^2 + 80 #1^4 &, 1]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 3], 1/4 (-1 - Sqrt[5]), Root[1 - 100 #1^2 + 80 #1^4 &, 1]}}, 0.1],
  Tube[{
    {Sqrt[1/4 + 1/(2 Sqrt[5])], -(1/2), Sqrt[5/8 + 11/(8 Sqrt[5])]},
    {Sqrt[1/4 + 1/(2 Sqrt[5])], 1/2, Sqrt[5/8 + 11/(8 Sqrt[5])]}}, 0.1],
  Tube[{
    {Sqrt[1/10 (5 + Sqrt[5])], 0, Root[1 - 100 #1^2 + 80 #1^4 &, 1]},
    {Root[1 - 20 #1^2 + 80 #1^4 &, 3], 1/4 (1 + Sqrt[5]), Root[1 - 100 #1^2 + 80 #1^4 &, 1]}}, 0.1]
}]

No comments:

Post a Comment