3D printing with liquid

The neat thing that we’ve been doing in the past couple of weeks is to use the FormLabs Form 1+ liquid resin printer. It is just so cool!

liquid-printer7   liquid-printer2

StrangeBowl-allThe first objects we printed were the strange bowls (shells, washers and smooth). Previously we tried to print them on the MakerBot 2X, but the sheer number of supports meant the print was not a great success. However, the FormLabs printed them beautifully. We all loved watching the bowls slowly come out of the liquid resin.

We next printed was the Bulge-Head solid. It is one of our favorites!

bulge-head-3    bulge-head-2

top-longFinally, we had great success printing parametric curves and other surfaces with the liquid resin printer.

Parametric Curves: Spiral, Self-Intersecting Curve, and Helix

spiral_on_cone-2I then made a series of models of parametric curves. The first was a model of a spiral that increases in diameter as it travels along the \(z\)-axis.  The curve comes from Section 10.7 in Stewart’s Essential Calculus.  The curve is defined by the equations \(x=t*\cos(t), y=t*\sin(t)\), and \(z=t\).  I designed the model in Cinema 4D using the Formula Spline to draw the curve, the Sweep NURB to give the curve depth, and the Wrap Tool to wrap the text around the curve.  I also used the Extrude Tool to give the equations depth and the Boole tool to connect them with the curve.  The print failed a few of times due to a tangled filament and a jammed extruder, but it worked after the fourth try.  The result was that the equations looked messy and the letter \(t\) is hard to make out in places.  Also, the MakerBot did not include supports for the last rotation, which caused the print to be messy towards the vertex of the spiral.  We remedied these issues by printing another version of the spiral on the Formlabs printer, where we imprinted the equations into the object.  The print came out much better as the equations were neater as was the end of the spiral. This model can be found on Thingiverse.

I used the FormLabs printer to create a model of a space curve from Stewart’s Essential Calculus (Section 10.7, exercise 18).  The first challenge was to draw the object in Cinema 4D without a self-intersection (3D printers do not accept intersecting geometry).  Professor Denne suggested that I make two half-curves that intersect, then make a Boolean out of them.  The suggestion worked, so I was then able to put text onto it.  It was tricky to figure ouself-int-curve-3t how to get the equations onto the curve, but I decided to put them on top of the lower ring of the model.  They turned out well, as did the curve, which was very smooth and with minimal deformation due to its supports. You can find this model on Thingiverse here.

My next print was of a helix on the Formlabs printer.  I first printed a Black one with a radius of 2 mm, but it turned out to be very small and frail, and the equations were hardly legible.  I then fixed these issues by making the radius 4 mm, but the equations are again hard to read because of the white resin. This model can be found on Thingiverse here.

Our experience has taught us that equations are easiest to read on the FormLabs prints in grey. You can find instructions on how to use Cinema 4D to add equations to parametrized curves here.


Torus Knots

I modeled the trefoil knot as two torus knots \(T(2,3)\) and \(T(3,2)\). The parametric equations for a \(T(p,q) \) knot are \(x = \cos(pt)*(3+\cos(qt)), y=\sin(pt)*(3+\cos(qt)) \), and \(z=\sin(qt) \). Here, \(p\) is the number of times the knot winds around the longitude of a torus, and \(q\) is the number of times the knot winds around the meridian of a torus.

2-3-torus-2Both models were printed on the FormLabs printer. I first made a small \(T(2,3) \) knot with a label extruded out of the curve (as shown to the left). I used Cinema 4D to design the model by using the Formula Spline to draw the curve, the Sweep NURB to give the curve depth, and the Wrap Tool to wrap the text around the curve. I also used the Extrude Tool to give the equations depth and the Boole Tool to connect the equations to the curve. For both knots I had to make sure the ends of the knots overlapped correctly. Before printing the \(T(3,2)\) knot, I had to change the range of \(t\) to \(t=[0, 2\pi] \) instead of \(t=[0, 5\pi]\) (I initially used \(5\pi\) to be sure that the curve closed).

3-2-torus-2The first \(T(2,3)\) knot came out nicely, however the text was a little small. Using the subscript made the numbers too small, so I reprinted the knot used parentheses instead, as shown here. The \(T(3,2)\) knot also looked great, as it was smooth and there were merely small nubs where the supports were, which could be removed with an exacto blade. We’ve discovered that the FormLabs printer makes smoother surfaces and finer curves than does the MakerBot, which is why it is ideal for printing knots.

You can find the torus knots on Thingiverse here T(2,3) and here T(3,2). Instructions on how to make torus knots in Cinema 4D can be found here. Professor Denne has also created another worksheet in Mathematica about Torus knots. It can be found here.


Monkey Saddle

Screen Shot 2015-07-27 at 1.19.21 PMIn order to make a monkey saddle I created the surface in Mathematica. I then exported it as a .wrl file and imported it into Cinema 4D. Once it was in Cinema 4D, like all surfaces, I made it the correct size, optimized the polygons and extruded them by 0.20 cm.

I then added an equation to the surface by punching it all the way through. This time with the equation I used Arial as the font instead of Times New Roman to hopefully avoid the issues we had with the formula when printing the hyperbolic paraboloid.monkeysaddle

I printed the monkey saddle using the liquid printer and the formula in Arial font ended up looking great. The model can be found on Thingiverse hereformula


My next project (after finally finishing all the quadratic surfaces) was to make a helicoid. I spend some time on Mathematica creating different helicoids by changing the parameters of the formula. The helicoid is pararametrized by \(x=u\cos(t), y=u\sin(t),\) and \(z=u\), where \(u\in[-1,1] \) and \(t\in[0,2\pi]\).

Professor Denne and I decided to print two of the ones I created to start (we may print more!). I exported the following Mathematica files and imported them into Cinema 4D.Screen Shot 2015-07-27 at 1.01.24 PM


Professor Denne used these files (as well as others) to create another worksheet in Mathematica. It can be found here


Screen Shot 2015-07-27 at 1.01.44 PMAfter making them the correct size I optimized the polygons and extruded them by 0.20 cm (a process I can now do very quickly after all my practice with the quadratic surfaces). I then printed each of them on the liquid printer and had fantastic results! 

helicoid-half-1The .STL and .form files for both of these helicoids can be found on Thingiverse.helicoid-full-1







Later on, I made another helicoid, this one with \(u\in[0.25,1.25]\) and \(t\in[0,2\pi]\). This model can be found on Thingiverse here.


Klein Bottle

Klein-bottle-printJust a really short post to share our general excitement over having just about completed all of the objects from Multivariable Calculus. We just have a few more to print out. We will spend our remaining week(!) printing out some interesting topological objects – many of these directly from Thingiverse.

We printed one such object today. This is the Voronoi Klein Bottle from MadOverlord on Thingiverse. We printed this on the MakerBot 2X with a raft but no supports. After a moment’s thought one can see that the print succeeds (despite the short horizontal lines on the design) because the Voronoi cells are small enough. Interesting! The black filament also hides a few rough spots on the print.

The Klein bottle is named after Felix Klein (25 April 1849 – 22 June 1925), a German mathematician who saw many connections between Group Theory and Geometry. It is a one-sided surface and is a generalization of a Mobius strip. (In fact, it is topologically equivalent to two Mobius strips glued together along their boundaries.)

There are many fabulous descriptions of this topological object, one of my favorites is The Adventures of the Klein Bottle found on YouTube (from the wonderful folks at the Frei Universitat in Berlin).



Volumes by Slices: Iterated Integrals

slices-all-6I have modeled the the solid from Example 8 of Section 12.1 from Stewart’s Essential Calculus.  It is bounded by the surfaces \(z=\sin x \cos y\), \(z=0\), \(y=0\), and \(x=\pi/2\). The example demonstrates the strategy behind computing a double integral using Fubini’s Theorem.  I approximated the solid by eight slices in the \(x\) and \(y\) directions. In order to draw the correct splines in Cinema 4D, I had to use the correct parametric equations to plug into the inputs \(x(t),\, y(t)\), and \(z(t)\).  For the first object I held \(x\) constant (approximating integration with respect to the \(y\)-variable). The parametric equations were \(x(t)=\frac{k\pi}{32} \), \(y(t)=t\), and \(z(t)=\sin(\frac{k\pi}{32}) \cos(t)\) for \( k=1, 3, 5, \dots, 15 \).  I then created a slice in Cinema 4D by adding straight splines. I extruded each slice by 0.2, which is just greater than \(\pi/16\) (the width of each slice).  I placed each slice so that it overlapped slightly with the next slice – this will allow the objects to be merged (via a Boole) and will prevent vertical lines from showing in the print after the slices are collected into one object.  I had to use a Boole with two cubes for the two approximations by slices because the solids each had two very thin edges (that is, I shaved off some volume from two of the edges).  

I then repeated the entire process, but this time with a constant \(y\)-variable.  I also printed the smooslices-smooth-2th solid, which is the volume that is approximated by the slices.  In order to do this, I imported the solid from Mathematica and put equations on it like I have in other models. These models can be found on Thingiverse here, here, and here.

Bulge-Head Solid

bulge-head-11My next object was a bulge-head solid. This solid lies above the \(xy\)–plane, outside the unit sphere, and inside the cardioid of revolution given by \(\rho=1+\cos\phi\). Professor Beanland had given us these equations, since he was really curious to see what the solid looked like. He’d nicknamed it the cone-head solid, but after printing we renamed it the bulge-head solid.

Since the outside of the solid was a cardioid of revolution, I decided to create the solid in Cinema 4D by creating two splines (one for the cardioid, the other for the hemisphere) and revolving each around an appropriate axis.  Professor Denne helped me to figure out which parametric equations to place into Cinema 4D’s inputs for a formula spline. These were \(x(t)=1+2\cos(t) + \cos(2t)\), \(y(t)=2\sin(t)+\sin(2t)\), and \(z(t)=0\), where \(t=[0,\pi/2]\).  For the spline that would later become the hemisphere, I used \( x(t)=\cos(t)\), \(y(t)=\sin(t)\), and \(z(t)=0 \), where \(t=[0, \pi/2] \). I then used the Lathe Tool with an angle of \(360^\circ\) to make the two boundaries of the solid.  I then put them into a Boole to make a union between the two boundaries.  I printed the bulge-head solid on the FormLabs printer using clear resin. When loading the object into the FormLabs software, we got a warning about the object’s integrity, but we decided to continue the print anyway. Later on we were worried that the object would use up too much resin and that it may have some problems on the surface (like the smooth strange bowl did).  It turned out that added a bit more resin mid-build, just to be on the safe side.  The solid looks pretty good right now because it only has a few pimples on the inside, but no significant lumps. The object is still hardening and once it’s completely dry we’ll remove the outside supports. This will probably leave a few pimples as well.

 You can find this model on Thingiverse here.

bulge-head-4    bulge-head-8

Quadratic Surfaces – Hyperboloid of Two Sheets

The last quadratic surface I printed was a hyperboloid of two sheets.

Screen Shot 2015-07-20 at 1.25.54 PM For the hyperboloid of two sheets I created the entire object from scratch in Cinema 4D using the same process I used to create the cone and other similar objects. For this surface I used the same formula spline as the hyperboloid of one sheet \(x(t)=cosh(t), y(t)=sinh(t), z(t)=0\), and then rotated it to the correct orientation. I then used the lathe tool and rotated this spline 180 degrees since this was all it needed. Because of this I needed to use only 30 rotation segments for a total of 60 all around the object. 

Screen Shot 2015-07-20 at 1.25.32 PMI also had to reverse the normals on half of the object to make sure they were all aligned with the other half before I extruded the surface. I optimized the polygons to be sure the edges joined up into one object. I then extruded the surface to create my hyperboloid of two sheets. I copied this and put equations through one of them. I also made sure to Boole the edges of the hyperboloid to make them flat for printing. 

FullSizeRender 5 copy 2


Here is a picture of the final object! It can be found on Thingiverse here.



Quadratic Surfaces – Hyperbolic Paraboloid

The quadratic surface that gave me the most trouble was the hyperbolic paraboloid. This surface could not be created in Cinema 4D and had to be imported from Mathematica. When I imported the surface from Mathematica the center of the saddle had hundreds of little polygons that overlapped, which became a huge problem when I tried to extrude them to give the surface thickness.

I had to spend a long time experimenting to find the lowest number of plot points I could use in Mathematica and still get an accurate object.Screen Shot 2015-07-20 at 11.39.50 AM Once I had done this I did the same thing with the optimize tool in Cinema 4D to see how big I could make the polygons before the surface started to lose accuracy. The first time I went through all these steps the hyperbolic paraboloid I had chosen just didn’t work correctly. So, I went back to the beginning and created a new Mathematica file of a hyperbolic paraboloid, and spent some time deciding where to cut it off to create edges that were as straight as possible.

Screen Shot 2015-07-20 at 12.51.01 PM Once I had done this and imported the surface into Mathmatica I optimized the surface as much as it would allow and extruded it. Finally I had a surface I could print! I then added the hyperbolic paraboloid’s equation to the surface. Instead of just imprinted the equation, since the surface was so thin I punched it all the way through.photo

In order to print this surface I used the FormLabs liquid printer. When the object came out of the printer it looked great and only had a few minor flaws to fix after this first print. One of the issues was the size of the object; it was just a little too small. The other issue was that the 2 in the exponent of the equation didn’t quite form correctly because it was too small. The final issues was that the equation had a \(+\) sign where there should have been a \(–\) sign (oops). Screen Shot 2015-07-20 at 12.51.21 PMThe equation was little too long with a 0 that was missing its center.  To fix these problems I rearranged the equation (and fixed the sign issues) in Adobe Illustrator and then punched it through the surface again. The second print on the liquid printed I made 1.4 times larger than the last print.

FullSizeRender 2 copyThe final print still had issues with the formula but otherwise worked out well. We are currently looking into changing the font to see if that helps with this issue. This model can be found on Thingiverse here.

FullSizeRender 5

Using my experiences building this and the other quadratic surfaces, I’ve put together a set of instructions on how to build quadratic surfaces using Mathematica and Cinema 4D. This can be found here.