Welcome to MakerHome




We've completed our yearlong print-a-day project!
All new material is now at Hacktastic: www.mathgrrl.com


Tuesday, January 21, 2014

Day 148 - Shrinking and Remeshing the Fidget Cube

Now that the hinges on the Fidget Cube are smaller (see yesterday's post), we can make the cube itself smaller. Let's start by going down from cube length 20mm to cube length 15mm:


And now down to 10mm! This tiny fidget cube actually works, and it is very quick to print. I think this is pretty much the limit of how small we can go without the hinges becoming too short. (In fact, to get this print to work I had recode the outside hinges to be a bit larger so they wouldn't break apart when the model unsnaps for the first time.)


STL file for 15mm: http://www.geekhaus.com/makerhome/day148_fidgetcube_red.stl
STL file for 10mm: http://www.geekhaus.com/makerhome/day148_fidgetcube_white.stl
Thingiverse link: http://www.thingiverse.com/thing:230139

Settings: MakerWare .2mm/Standard with linear fill, with the 15mm model printing in about 40 minutes and the 10mm model printing in about 20 minutes.

Technical notes, MeshLab flavor: Nicbane commented on Thingiverse that my original models did not slice with Slic3r due to being non-manifold, meaning that somewhere in the mesh something bad happens, for example more than two faces meeting at the same edge, or faces being connected only by vertices, as shown in this picture from Martin Sälzle at PCL Developer's Blog:


Although MakerWare's slicer could handle whatever weirdness was happening from my OpenSCAD STL file, apparently Slic3r couldn't. I couldn't see the problem in MeshLab so I tried as many repairs as I could do without MeshLab crashing, which turned out to be the following list of repairs (all under Filters --> Cleaning and Repairing):
Remove Duplicate Faces
Remove Duplicated Vertex
Remove Faces From Non Manifold Edges
Remove T-Vertices by Edge Flip
From looking at the edge/vertex counts, I think the only one of the above that did anything was the T-Vertices repair, but better safe than sorry. According to Nicbane this did the trick.

Interestingly, the T-Vertices repair in MeshLab only works without crashing for STL files generated directly from OpenSCAD and not for STL files that are generated by the Thingiverse Customizer. I think this might be because the Customizer already fixes the problem somehow; perhaps running the T-Vertices command on an already-fixed model crashes MeshLab?

Monday, January 20, 2014

Day 147 - Fidget Cube with Smaller Hinges

After more testing we figured out how small we can make the hinges on the Fidget Cube and still have it print reliably in one piece. (The answer: 1.5mm radius.)


STL file: http://www.geekhaus.com/makerhome/day147_fidgetcube_black.stl
Thingiverse link: http://www.thingiverse.com/thing:230139

Settings: MakerWare .2mm/standard in about 90 minutes, with no raft and no supports, one one piece. In the Customizer settings below, 1.5mm is the smallest that I could make hinge_radius before things got unreliable. However, hinge_clearance could safely be reduced if a stiffer model was desired.
snub = yes
cube_height = 20
stacking_clearance = .3
hinge_radius = 1.5
hinge_clearance = .5
Fun fact: The picture below shows what it means to "design to fail". To make the Customizable Print-In-Place Fidget Cube we went through a lot of iterations of testing, re-testing, and failure.


UPDATE: The Print-In-Place Fidget Cube was Featured on Thingiverse today! Thank you, Thingiverse!

Sunday, January 19, 2014

Day 146 - Customizable Print-In-Place Fidget Cube

Today we finished our customizable print-in-place fidget cube model. By changing just a few parameters in OpenSCAD code, we can decide whether the fidget cube will have a snub configuration (as shown below), set the sizes of the blocks and the hinges, and fine-tune the clearance between moving parts. It still amazes me that this model can print in place, all in one piece, with functioning hinges - especially since during the print some of the hinges are horizontal while others are vertical!


STL file: http://www.geekhaus.com/makerhome/day146_fidgetcube_blue.stl
Thingiverse link: http://www.thingiverse.com/thing:230139

Settings: Replicator 2 with MakerWare .2mm/standard in about an hour and a half. In addition to looking cool, the snub sides reduce the print time by about 30 minutes and save some plastic. We used a custom profile to get linear fill instead of hexagons. No raft or support are needed! Customizer settings were as follows below (although I suggest setting hinge_clearance lower for future models).
snub = yes
cube_height = 20
stacking_clearance = .3
hinge_radius = 2.5
hinge_clearance = .5
Technical notes: I tried to keep my previous OpenSCAD projects (Days  96, 112, 113, and 133) well-written and commented so that people could learn from what I was learning. But I'm notoriously bad at rotating and reflecting objects mentally so this code is full of random transformations to put objects where I needed them to be. It isn't efficient and it isn't pretty, but here it is:

// mathgrrl print-in-place fidget cube

//////////////////////////////////////////////////////
// PARAMETERS ////////////////////////////////////////

// Decide whether you want the pieces to be full cubes or snub on one side
snub = "yes"; // [no:Cube Pieces,yes:Snub Pieces]

// Choose a side length for the cubes, in mm
cube_height = 20; 

// Choose a stacking clearance factor, in mm (controls distance between cubes)
stacking_clearance = .3;

// Choose a hinge radius, in mm
hinge_radius = 1.5; 

// Choose a hinge clearance factor, in mm (controls distance around hinge parts)
hinge_clearance = .45;

// Other variables that people don't get to choose
$fn=24*1;
fudge = .01*1;
corner_radius = .1*cube_height;
outside_height = .4*(cube_height-2*stacking_clearance);
inside_height = (cube_height-2*stacking_clearance)-2*outside_height;
cone_height = 1.4*hinge_radius; 

//////////////////////////////////////////////////////
// RENDERS ///////////////////////////////////////////

rotate(-45,[0,0,1])
translate([0,0,2*cube_height])
rotate(90,[0,1,0])
union(){
// one row of four cubes
row_assembly();
// another row of four cubes
translate([0,2*cube_height,2*cube_height])
rotate(-90,[1,0,0])
mirror([0,0,1])
mirror([1,0,0]) 
row_assembly();
}

//////////////////////////////////////////////////////
// MODULES ///////////////////////////////////////////

// one row of the assembly
module row_assembly(){
union(){
color("blue") 
hinged_cube(180,[1,0,0],[1,0,0]);

color("red")
translate([-cube_height/2,cube_height/2,0])
mirror([0,1,0])
translate([-cube_height/2,cube_height/2,0]) 
rotate(90,[1,0,0]) 
hinged_cube(0,[1,0,0],[0,0,0]);

color("green")
translate([cube_height,cube_height/2,cube_height/2])
rotate(-90,[0,1,0])
rotate(180,[1,0,0])
mirror([0,1,0])
translate([-cube_height/2,cube_height/2,0]) 
rotate(90,[1,0,0]) 
hinged_cube(180,[0,1,0],[0,1,0]);

color("yellow")
translate([-cube_height,cube_height,cube_height])
rotate(-90,[1,0,0])
rotate(90,[0,0,1])
rotate(-90,[1,0,0])
hinged_cube(0,[1,0,0],[0,0,0]);
}
}

// one cube to rule them all
module hinged_cube(the_angle,the_vector,the_mirror){
difference(){
// cube and cylinders to start
union(){
// cube with inside top and bottom cylinders carved out
difference(){
// start with clearance cube in corner
translate([cube_height/2,cube_height/2,cube_height/2])
rotate(the_angle,the_vector)
mirror(the_mirror)
rounded_cube([cube_height,cube_height,cube_height]); 
// take away inside top cylinder with clearance
translate([cube_height,0,0])
rotate(90,[0,0,1])
rotate(90,[0,1,0])
translate([0,0,stacking_clearance+outside_height+inside_height])
cylinder( h=outside_height+fudge, 
r1=hinge_radius+fudge+hinge_clearance, 
r2=hinge_radius+fudge+hinge_clearance);
// take away inside bottom cylinder with clearance
translate([cube_height,0,0])
rotate(90,[0,0,1])
rotate(90,[0,1,0])
translate([0,0,stacking_clearance-fudge])
cylinder( h=outside_height+fudge, 
r1=hinge_radius+fudge+hinge_clearance, 
r2=hinge_radius+fudge+hinge_clearance);
}
// top cylinder on outside hinge
translate([0,0,stacking_clearance+outside_height+inside_height+hinge_clearance])
cylinder( h=outside_height-hinge_clearance-corner_radius/2, 
r1=hinge_radius, 
r2=hinge_radius);
// bottom cylinder on outside hinge
translate([0,0,stacking_clearance+corner_radius/2])
cylinder( h=outside_height-hinge_clearance-corner_radius/2,
r1=hinge_radius,
r2=hinge_radius);
// inside hinge cylinder
translate([cube_height,0,0])
rotate(90,[0,0,1])
rotate(90,[0,1,0])
translate([0,0,stacking_clearance+outside_height])
cylinder( h=inside_height, 
r1=hinge_radius, 
r2=hinge_radius);
// attacher for inside hinge cylinder
translate([cube_height,0,0])
rotate(90,[0,0,1])
rotate(90,[0,1,0])
translate([0,0,stacking_clearance+outside_height])
rotate(45,[0,0,1])
translate([-.8*hinge_radius,0,0])
cube([1.6*hinge_radius,2*hinge_radius,inside_height]);
// inside hinge top cone 
translate([cube_height,0,0])
rotate(90,[0,0,1])
rotate(90,[0,1,0])
translate([0,0,stacking_clearance+outside_height+inside_height])
cylinder( h=cone_height, 
r1=hinge_radius, 
r2=0);
// inside hinge bottom cone 
translate([cube_height,0,0])
rotate(90,[0,0,1])
rotate(90,[0,1,0])
translate([0,0,stacking_clearance+outside_height-cone_height])
cylinder( h=cone_height, 
r1=0, 
r2=hinge_radius);
}
// take away middle cylinder with clearance
translate([0,0,stacking_clearance+outside_height-hinge_clearance-fudge])
cylinder( h=inside_height+2*hinge_clearance+2*fudge, 
r1=hinge_radius+fudge+hinge_clearance, 
r2=hinge_radius+fudge+hinge_clearance);
// take away top cone with clearance
translate([0,0,stacking_clearance+outside_height+inside_height+hinge_clearance-fudge])
cylinder(h=cone_height, r1=hinge_radius, r2=0);
// take away bottom cone with clearance
translate([0,0,stacking_clearance+outside_height-cone_height-hinge_clearance+fudge])
cylinder(h=cone_height, r1=0, r2=hinge_radius);
}
}

// module for making rounded cubes from convex hull of corners
module rounded_cube() {
dist = cube_height/2-corner_radius-stacking_clearance;
hull() {
// seven of the eight vertices of a cube
translate([dist,dist,dist])
sphere(r=corner_radius); 
translate([-dist,dist,dist]) 
sphere(r=corner_radius);
translate([dist,-dist,dist])
sphere(r=corner_radius);
translate([-dist,-dist,dist]) 
sphere(r=corner_radius);
translate([dist,dist,-dist])
sphere(r=corner_radius);
translate([dist,-dist,-dist]) 
sphere(r=corner_radius);
translate([-dist,-dist,-dist]) 
sphere(r=corner_radius);
// don't include the eighth if snub desired
if (snub=="yes"){
}
else{
translate([-dist,dist,-dist]) 
sphere(r=corner_radius);
}
}
}

UPDATE: Featured on 1/29/2014 as Thing-of-the-Day by AlexHuff at 3dideaform.com.

UPDATE: The print-in-place fidget cube made an appearance on the Adafruit blog with a comment from emmet himself (original creator of the printable snap-together fidget cube): 
Guest Curator Emmett Lalish has this to say about this 3DxMechanicals project: “This is why I love Thingiverse: I post a snap-assemble design, then someone figures out how to print it pre-assembled. It definitely pushes the boundaries of what’s printable and how the slicers work. This is how we push the technology forward.”
UPDATE: From this post by Kevin Osborn on the Ultimaker forum, I learned that you can pick up prints of my fidget cubes at the MakerBot retail store!

Saturday, January 18, 2014

Day 145 - Print-in-Place Fidget Cube

On Day 142 we printed a copy of emmett's Folding Cube model from Thingiverse. That model works wonderfully but assembly was a little difficult both because it was physically hard to snap together and because I am very bad at visualizing rotations and mirror images. For me it was challenging to put the correct pieces in the correct orientations in the correct places!

So today we made a print-in-place version using OpenSCAD, with the hopes of making a customizable version tomorrow. We put stickers on half of the faces; as you move the cube around by the hinges you can change from a stars-outside configuration to a stars-inside configuration.


STL file: http://www.geekhaus.com/makerhome/day145_fidgetcube_yellow.stl
Thingiverse link: http://www.thingiverse.com/thing:230139

Settings: MakerWare .2mm/standard. We did a LOT of testing to get the hinge clearances and the distances between cubes to work. In tomorrow's customizable version you'll be able to choose those tolerances according to your machine and filament.

Technical notes: Wait until tomorrow and we will post OpenSCAD code and some more detailed notes.

UPDATE: Here are the Customizer settings that will make something equivalent to this model:
snub = no
cube_height = 20
stacking_clearance = .27
hinge_radius = 3
hinge_clearance = .45

Friday, January 17, 2014

Day 144 - Volumes of Hanoi

The semester has begun and we are back to teaching calculus. Later this semester we will cover Volumes of Solids of Revolution with the "disc method" and the "shell method", and when we do, we'll use today's print as a 3D example. This model was developed last summer in collaboration with RM and BL, the crack team of 3D Printing Lab Assistants who helped set up the JMU MakerLab.  The design was meant to evoke the famous Towers of Hanoi puzzle, which you can play for yourself at SoftSchools. The center piece was exported from Mathematica, and the rest of the model was made in Tinkercad (which came back from a sleep today after a large update - so glad you are back, Tinkercad!).


STL file: http://www.geekhaus.com/makerhome/day144_volumesofhanoi.stl
Tinkercad link: https://tinkercad.com/things/7FSHrMlA6rp-day-144-volumes-of-hanoi
Thingiverse link: http://www.thingiverse.com/thing:228779

Settings: The model in the STL file above is very tight when printed on .3mm/low, but a fairly good fit at .15mm/high with MakerWare on a Replicator 2. I highly recommend doing partial test prints to test the clearances involved.

Technical notes, calculus flavor: The piece in the center of the model is the solid of revolution obtained by rotating the region bounded by the graph of the function f(x) = -x^2 - x + 8 and the x-axis from x=0 to x=2. When taken apart, the pieces look like this:


The leftmost set of pieces represents an approximation of volume of the center solid of revolution with four discs, and the rightmost set represents a different approximation of that solid with four shells. The discs each have the same height but their radii are determined by the function f(x). The shells each have the same thickness but their heights are determined by the function f(x). This particular solid of revolution and pair of approximations kicks off Section 7.2 of the book Taalman/Kohn Calculus (the best book! I am totally unbiased!).

Stuff for the future: We are working on a customizable model, so stay tuned!

UPDATE: Tinkercad posted a link to this model on their Facebook site on January 18: https://www.facebook.com/Tinkercad . We love you, Tinkercad!

Thursday, January 16, 2014

Day 143 - Shapeways delivers!

Does it count as a print-a-day print if something I designed and sent to Shapeways was delivered today?  I think it does, at least the first time it happens! Our design from Day 136 was difficult to print on a filament machine, so we sent a copy to Shapeways:


Shapeways link: https://www.shapeways.com/model/1620258/six-handles-fancy.html

Settings: Shapeways "white strong flexible" and about $30.

Wednesday, January 15, 2014

Day 142 - Fidget Cube

Still underwater with the first week of school, so today we're printing emmett's great Folding Cube model from Thingiverse. The eight pieces print separately and then snap together with conical hinges to make an assembly that folds into two types of cubes, one with rounded corners and one with straight-cut corners. This type of folding cube is well-known but I think emmett is the first to design a 3D-printed version.  It works wonderfully!


Thingiverse link: http://www.thingiverse.com/make:62226

Settings: MakerWare .2mm/Standard with no raft and no supports.

Technical notes: This model prints very nicely but I couldn't get the hinges to assemble as printed. By cutting off the tips of the cones on the hinges and carving out notches when necessary I managed to force the cube together, but it was difficult. However, despite the difficulty and force involved with getting it assembled, it works really well. You can open and close the cube both ways with just one  hand without even looking at it. Good activity for boring bus rides or while waiting in line. :)

Tuesday, January 14, 2014

Day 141 - Companion Dodecahedron

So the spring semester started yesterday, and I'm already fully underwater with one calculus classes, three 3D-printing classes, and a lot of trips to plan. So today we print something that we didn't have to design: cobbal's most excellent Companion Dodecahedron from Thingiverse. I so wish I had thought of this design myself!


Thingiverse link: https://www.thingiverse.com/make:62048

Settings: MakerWare .3mm/low with raft and support.

Stuff to change: The support was impossible for me to remove from the bottom face. Next time try this without raft or support?

Monday, January 13, 2014

Day 140 - Three Pi

My son loves pi. The number. He and a friend at school have actual arguments about who has memorized and/or written down the most digits of pi. The other day he designed and printed a pi in Tinkercad from scratch to give to his friend; I love the little bend he put into the leg! Tonight I printed a couple more for him from 2ROBOTGUY's Pi Thingiverse design as a surprise. :)


Tinkercad link: <<coming soon, Tinkercad is down tonight>> (black model from CGR)
Thingiverse link: http://www.thingiverse.com/thing:3818 (blue model)

Settings: MakerWare .3mm/low in about 7-8 minutes per pi.

Sunday, January 12, 2014

Day 139 - Stereographic Spheres

Henry Segerman is well-known for the intricate mathematical modeling that he designs and prints at his Shapeways shop.  So to put our Replicator 2 to the test, today we printed henryseg's Stereographic projection model from Thingiverse. It came out beautifully!


Thingiverse link: http://www.thingiverse.com/make:61807

Settings: Printed with some looping on a Replicator 2 with MakerWare .3mm/low (the red one) but very nicely on MakerWare .15mm/high (the purple one). Raft used but no supports.

Technical notes, math flavor: This model enables you to visualize the stereographic projection of a sphere to a plane. From a point light source at the north pole of the sphere, imagine a line extending from the point, through the surface of the sphere, and then down to the plane. Such lines define a mapping of each point on the surface of the sphere to a point on the surface of the plane. In this model the curved lines on the sphere are the preimage of a straight grid on the plane. The solid curved lines in the model block the light source so you can visually see the image of the curved lines as straight lines on the plane. A beautiful idea, as it is in some sense the opposite of what we usually see in a stereographic world map projection, where latitude and longitude lines become curved lines after the projection, as you can see in this image from subblue's Little Planets:


My favorite thing about Segerman's model it is that it really makes clear where the north pole gets mapped under steregraphic projection. Can you see it?

UPDATE: This post caught the eye of evelynjlamb at the American Mathematical Society's Blog on Math Blogs, and subsequently this MakerHome blog was featured there in the post The Revolution will be 3D Printed!

MORE UPDATE: The Blog on Math Blogs post on MakerHome apparently inspired an article written in Greek at Τρισδιάστατη εκτύπωση. So cool to see our pictures alongside text written in another language.  :)

Saturday, January 11, 2014

Day 138 - ABS and PLA Recycle Signs

This semester a MakerBot Replicator 2 and MakerBot Digitizer are joining the Afinias we have in the JMU 3-SPACE classroom, so we will need a recycle/fail bin for PLA as well as ABS. These signs are a remix of MakerBlock's Recycling Symbols on Thingiverse using the new text Shape Script feature at Tinkercad. (Yes, I know this print is for work, but I designed and printed it at home, so it counts!)



STL file for ABS: http://www.geekhaus.com/makerhome/day138_recyclesignABS.stl
STL file for PLA: http://www.geekhaus.com/makerhome/day138_recyclesignPLA.stl
Tinkercad link: https://tinkercad.com/things/kFnjyIz3ROD-day-138-abs-and-pla-recycle-signs/edit
Thingiverse link: http://www.thingiverse.com/thing:224601

Settings: MakerWare .3mm/low in about 35 minutes.

Friday, January 10, 2014

Day 137 - Clover knot

More TopMod! Today we made a knot:


STL file: http://www.geekhaus.com/makerhome/day137_cloverknot.stl
Thingiverse link: http://www.thingiverse.com/thing:224032

Settings: MakerWare .15mm/high with raft and supports, in 6 hours and 23 minutes. I didn't use the custom knot supports from Day 110 because sometimes they don't work well for thin knots. The supports were not as much of a pain to remove as I thought they would be, and somehow we managed to do so without breaking the model!

Technical notes, math flavor: This model is an example of a mathematical knot, which is basically a string in space that is tied up and then spliced together at the end to make a knotted loop. But which knot is this? It might even be the unknot! Later this semester I'll give this to a student to figure that out. A good place to start would be by making a knot diagram and computing a simple invariant like the knot determinant. With a little luck that could completely determine the knot type, but if not then there are other things that we can look at. Stay tuned for an update when we figure out which knot it is.

Technical notes, TopMod flavor: This model was made by starting with a cube and then adding handles to adjacent faces, just as we did in Day 135, but this time with a twist. Literally, that is: we set "extra twists" to "1" in the properties box before we made the handles.  Then we selected some complements of face loops and used rind modeling to create crusts, and applied Doo-Sabin remeshing to soften the hard edges, just as we did in Day 136. So nothing new here, except that we figured out that you can select some individual mesh cells before beginning the face-loop selection so that there aren't holes to fill in later as we had yesterday in Step 4. The only tricky part was getting the initial twisty handles attached correctly in the first place, with the right amount and direction of twistiness.

Thursday, January 9, 2014

Day 136 - Six Handles Fancy

Today we took yesterday's TopMod model and created crusts along certain face loops to get a more open, fancy, swirly design:


STL file: http://www.geekhaus.com/makerhome/day136_sixhandlesfancy.stl
Thingiverse link: http://www.thingiverse.com/thing:223250

Settings: We used the same custom MakerWare settings from Day 110's knot, to minimize supports and support attachment to the model. Even so the supports are very difficult to remove and we broke the model while trying to clean it up (and then gave up trying to clean it up any more, as you can see from the picture).

Technical notes: The following steps will make this model, starting from the "Six Handles" model we made on Day 135:
  1. Use selection option "Select Face Loop" to choose some interesting curves around the model. Select any edge and TopMod will trace out a curve of faces in the direction imposed by the two faces on either side of your selected edge. It helps if the model has had a bit of Doo-Sabin remeshing so that you can take advantage of the regular geometry that Doo-Sabin generates, but not too much remeshing or the faces will be too tiny.
  2. Use selection option "Select Inverse" to select the complement of the face-loops you picked out; we are going to get rid of these complement faces.
  3. Under "Rind Modeling (Thickness Mode)", apply "Create Crust" to peel back the complement faces. You may want to fiddle with the thickness until you get the desired effect.
  4. I had some holes in the center top and bottom of the model that I wanted to fill in, and finally figured out how to do this with repeated and careful applications of "Insert Edge Mode". However, it would have been much easier if I had remembered to select a couple of key extra faces before selecting the face loops in the first step!
  5. Doo-Sabin once or twice - but not too much because when you export to STL, TopMod will have to convert your mesh to triangles, and this can take a *very* long time if your mesh is too fine.
Next step: Maybe Shapeways can print this! The model is up at the new Geekhaus store and you can order one yourself if you like. I'll update here with information about how my copy turned out once they send it to me.

Wednesday, January 8, 2014

Day 135 - Six Handles

Today's model is a sculpture made with the excellent and innovative mesh-wrangling software TopMod. Since my way-back math roots are in topology, TopMod is like coming home; everything about it speaks my language. Having said that, I'm just a TopMod beginner so my first sculpture is very simple: just six handles arranged around a cubical center and smoothed out with Doo-Sabin.



Settings: Makes a gift-quality print on MakerWare .15mm/high with raft and supports in about 2 hours and 13 minutes.

Technical notes: This model was made in TopMod which you can download for free here. Basic ReadMe and list of operations is here. To make the model I started with a cube and added handles connecting three adjacent pairs of faces. Then I applied the Doo-Sabin mesh subdivision, added three smaller, twisty handles anchored to the new mesh, and applied Doo-Sabin a couple more times. 

To get started with TopMod I suggest watching the following YouTube videos:
UPDATE: You can now order a print of this model from Shapeways at the new Geekhaus store!

MORE UPDATE: kitwallace has found a way to make this same shape by parametrizing with trigonometric functions.

Tuesday, January 7, 2014

Day 134 - Low-Poly Gollum

Today's print is a low-poly version of BorisBelocon's Gollum on Thingiverse.  We printed this for Tim Chartier of Davidson College, who created the low-poly version of BorisBelocon's model by using Quadratic Edge Collapse Decimation in MeshLab.  You can read more about Tim's work at his MathMovement site.


STL file: http://www.geekhaus.com/makerhome/day134_lowpolygollum.stl
Thingiverse link: http://www.thingiverse.com/make:61222

Settings: MakerWare .15mm/high in exactly two hours, to get a high-res but low-poly model :)

Monday, January 6, 2014

Day 133 - Broken Hearts

Today the holiday visits are over and we are back to designing. Something simple to start, and to get ahead for the next holiday: customizable easy-to-print broken hearts that you can string together. More importantly, this model is also a tutorial for printing designs based on mathematical parametric functions in OpenSCAD.


STL file: http://www.geekhaus.com/makerhome/day133_brokenhearts.stl
Thingiverse Customizer link: http://www.thingiverse.com/thing:220720

Settings: MakerWare .3mm/low in almost no time at all. The top indentation of each heart has a gap so that you can chain the hearts together.

Technical notes: This model was made in OpenSCAD using the following parametric equations that define a heart shape (equations obtained from Wolfram's HeartCurve page):
x = 16 sin^3 t
y = 13 cos t - 5 cos 2t - 2 cos 3t - cos 4t
The OpenSCAD code that makes the model is as follows. In the Customizer version we had to cut and paste the 2dgraph.scad code at the end of the file instead of using the "include" shown below, which calls the file 2dgraph.scad from the folder EXTENSIONS in my OpenSCAD working folder.

// mathgrrl broken heart - OpenSCAD parametric graph example

/////////////////////////////////////////////////////////////
// EXTENSIONS ///////////////////////////////////////////////

// curriculum.makerbot.com/daily_tutorial/openscad/openscad_05.html
// include <EXTENSIONS/2dgraph.scad>

/////////////////////////////////////////////////////////////
// PARAMETERS ///////////////////////////////////////////////

// Set the diameter of the heart, in mm
heart_diameter = 20;

// Set the thickness of the line, in mm
line_thickness = 1;

// Set the height of the model, in mm
line_height = 3;

// Choose low numbers for jagged, high for smooth
number_of_steps = 48;

scalefactor = heart_diameter*1.15/20;

/////////////////////////////////////////////////////////////
// RENDERS //////////////////////////////////////////////////

// broken heart parametric curve
// equation from http://mathworld.wolfram.com/HeartCurve.html
function x(t) = scalefactor*16*pow(sin(t),3);
function y(t) = scalefactor*(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t));

// make the graph and extrude it
linear_extrude(height=line_height)
2dgraph( [0, 350], // stop before 360 to make broken
line_thickness, // set line thickness
steps=number_of_steps, // choose low/high poly look
parametric=true); // use parametric grapher

Sunday, January 5, 2014

Day 132 - Stretchy Bands

To finish out the Thanxmas presents, today we printed some of walter's Customizable Stretchy Bands model from Thingiverse.


STL file: http://www.geekhaus.com/makerhome/day132_stretchybands.stl (but customize your own!)
Thingiverse link: http://www.thingiverse.com/make:61047

Settings: MakerWare .3mm/low on a Replicator 2, very fast to print.

Technical notes: The file above is for a 50mm interior diameter, which is about right for a typical 7-year-old girl. To make the stripes, we colored the filament with sharpie before it went into the extruder. There was some weirdness for the thin .4mm thickness, with a few parts of the model printing in two shells instead of one, but .3mm thickness was causing gaps in the model.  Experiment in the Customizer to find the settings that work for you, but here are the ones that worked the best for us (makes the first two bracelets in the picture):
insideDiameter = 50
thickness = .4
resolution = 60
radialCount = 15
outsideDiameter = 64
height = 6

Saturday, January 4, 2014

Day 131 - More Bowls

The past week of cleaning and family visits has meant a lot of reprints and Thingiverse designs, and today is no exception: we printed a bunch of bowls from the same model used in Day 64 and Day 65, petergross3's Condiment Bowl from Thingiverse.



Settings: Printed small versions at 60% size on .3mm/low with linear fill (see below). The one on the bottom is a little shorter; we cut off the top in Tinkercad to make a wider bowl. Not recommended, as that caused it to lose its nice top lip.

Technical notes: To get linear fill we made a custom profile in MakerWare based on "PLA Low" and changed "sparseInfillPattern" to "linear". I'm hoping that in future updates of MakerWare there will be an easy dropdown menu to change the fill pattern.

Friday, January 3, 2014

Day 130 - Trilobite articulatum

Today is Thanxmas for our family! For the festivities we have a celebratory Trilobite articulatum from AuntDaisy on Thingiverse in our faux fireplace.



Settings: MakerWare .3mm/low in about 4 hours.

Technical notes: We used the "tight" files from AuntDaisy, which worked perfectly on the Replicator 2 with a translucent filament. We recommend printing without raft or support for the body and tail, but with raft and support for the head. (Our initial support-less print of the head had trailing strings on the snaps that had to be cut off, after which the head snaps were too loose to stay on the model.)

Thursday, January 2, 2014

Day 129 - Estonian Kroon Coin Trap

Today's print is a Customized Coin Trap to hold an Estonian Kroon in the blue, black and white colors of the Estonian flag, for my father, who was born in Estonia.


STL file: http://www.geekhaus.com/day129_estoniankroontrap.stl
Thingiverse link: http://www.thingiverse.com/make:60610

Settings: MakerWare .3mm/low in about 15 minutes, with two filament swaps and a pause for the coin to go in.

Stuff to change next time: I now wish that I had changed filament a little sooner so that the black stripe would go all the way across the white at the bottom of the circle (and also later to go across the top before the blue). I had been trying to maximize the white and blue parts but keep filament changes away from the center, weaker part of the model.

Wednesday, January 1, 2014

Day 128 - Pile of Snaps

Today we printed a lot of colorful Poly-Snaps to give to Henry Segerman:


Settings: MakerWare .3mm/low on a Replicator 2.

Technical notes: These were printed in two configurations, some with the default "compact" parameters on the Poly-Snaps customizer (see also Days 113 and 115-117) and some with the "light" parameters from Day 118, except with clearance increased to .14.

Tuesday, December 31, 2013

Day 127 - MakeyMakey Holder

Today this print-a-day project was featured on the MakerBot blog in the MakerBot Stories post Mathgrrl Makes a 3D print a Day, by Blake Eskin!

A year of 3D-printing-flavored making for me, and a new year of MakeyMakey-flavored making for my sister. Today we printed her jensa's MakeyMakey Gamepad case from Thingiverse/YouMagine, to go with her Thanxmas present:


Thingiverse link: http://www.thingiverse.com/make:60374
Download from YouMagine: https://www.youmagine.com/designs/makeymakey-gamepad

Settings: MakerWare .2mm/standard with supports to keep up the overhanging corners. We initially tried this on our usual .3mm/low setting but got a lot of loose diagonal threads on the flat base. Making the print finer solved the problem.

Monday, December 30, 2013

Day 126 - Dalek

I really hope my family isn't reading this blog, or they are finding out what all their Thanxmas presents are. To continue yesterday's theme, today we are printing guydebored's great Dalek model from Thingiverse.


Thingiverse link: http://www.thingiverse.com/make:60261

Settings: We printed the body on .3mm/low without raft or supports, and the weapons on .15mm/high with both raft and supports (in the horizontal position). It was a little fiddly to remove the supports but was worth it in the end. We had to trim the ends of the weapons a bit to fit into the holes on the Dalek. It looks really great since you imagine it all printed in one piece with the impossible overhangs that the weapons would cause. Wonderfully done model, thank you guydebored!

Sunday, December 29, 2013

Day 125 - Tardi

My family is celebrating the holidays late with Thanxmas after the new year, and more presents are in order. Today, one large Tardis and two small, from Gossamer's wonderful Parametric Tardis model on Thingiverse:


Thingiverse link: http://www.thingiverse.com/make:60169

Settings: As usual, MakerWare .3mm/low with the small version printing in 37 minutes and the large one taking much longer. The Replicator 2 makes an interesting whistling noise during the print, as the fan blows into the hole carved into the Tardis model. Prints wonderfully without support or raft; this is a really well-done design.

Saturday, December 28, 2013

Day 124 - Low-Poly Bear

What do you print for a person with minimalist tastes? I'm hoping a low-poly bear, like christophecaren's beautiful Bear model on Thingiverse.


Thingiverse link: http://www.thingiverse.com/make:60115

Settings: MakerWare .3mm/low, with raft and supports. I printed the model upside-down to minimize those supports and then had some minimal cleanup to do on the head and back after removing those supports.

Friday, December 27, 2013

Day 123 - "Ticket to Ride" card holder

A couple of days ago on Day 120, we printed some train trays for the excellent game Ticket to Ride. That was all well and good until the cards seemed all out of order and falling out of their giant tall stacks. So we printed a card holder for train cards, ticket cards, and used train cards. The logo for the game was put in the bottom with Tinkercad and Inkscape using the method outlined in Steps 4-6 on Day 109, with a picture from the internet as the starting point.


STL file: http://www.geekhaus.com/makerhome/day123_tickettoridecards.stl
Tinkercad link: https://tinkercad.com/things/0CO8dupbHOI-day-123-ticket-to-ride-card-holder
Thingiverse link: http://www.thingiverse.com/thing:214204

Settings: MakerWare .3mm/low on a Replicator 2 using the MakerBot "warm gray" filament that I seem to use for everything these days.

Stuff to change later: I forgot to put little bridges to attach the insides of the letters o, R, and d. Next time!

Thursday, December 26, 2013

Day 122 - Menger Coaster Set, Part 2

Continuing from yesterday, here are the other four interesting slices of a Level 3 Menger Sponge:



STL files: http://www.geekhaus.com/makerhome/day122_mengercoaster5.stl (and 6 and 7 and 8)
Tinkercad link: https://tinkercad.com/things/auZS4Sd7vIe-day-122-menger-coaster-set-part-2
Thingiverse link: http://www.thingiverse.com/thing:213053

Settings: Like yesterday, we used Makerware .3mm/low,for a print time of about 30 minutes per coaster, with color swap just after 20 minutes or so.

Technical notes: See yesterday's post for hints about when to make the filament color swap. As you can see from the picture, the Replicator 2 is giving me some "stringy" behavior on the long traverses of black. I wonder if I could fix this with a temperature change or some other change? If anyone has any ideas please let me know.

UPDATE:  On Day 127 we figured out how to fix the "stringy" problem - change to .2mm/standard layer height. I imagine that change would also work for this model.

Wednesday, December 25, 2013

Day 121 - Menger Coaster Set, Part 1

Following up on Day 23's Menger-sponge-slice coaster, today we print four different slices of a Level 3 Menger Sponge.  There are four more interesting slices that we'll print tomorrow. These were constructed in Tinkercad after importing a Menger sponge that was created in Mathematica (although we could also have imported one built in Minecraft; see Day 108).


STL files: http://www.geekhaus.com/makerhome/day121_mengercoaster1.stl (and 2 and 3 and 4)
Tinkercad link: https://tinkercad.com/things/hTazkPXEpX8-day-121-menger-coaster-set-part-1
Thingiverse link: http://www.thingiverse.com/thing:213053

Settings: Makerware .3mm/low in about 30 minutes per coaster. The filament color swap takes place just after the 20 minute mark.

Technical notes: With the settings above, the first four layers will be black, but the last of those four will have outlines around the soon-to-be-white areas. Be sure not to stop too early; wait until you are sure the white part is being drawn before swapping the filament. Getting a little black under the white won't hurt, but getting any unwanted white over the black will be unacceptable.