Introduction: Development of a 3D Printed Part - Prusa Mendel Hair Dryer Heated Bed Mount

Last night I was printing a frame vertex for a Prusa Mendel based CNC router...and I was having a really hard time with my non heated bed...  The part would peel off the bed almost immediately... so I tried the raft feature... and even the raft lines were peeling off rapidly... I knew the problem was with the ABS cooling too rapidly.. but I didn't have the parts nor desire to make a proper heated bed at 1 a.m.  I decided to go "hill-billy" on it and came up with this:


It is basically my heat gun pointed in the general direction of the the print.. propped up precariously with a couple spools of filament and a roll of masking tape..  I was sorta surprised as to how well this ghetto setup actually worked... and thinking about it, there are some definite "pros" to this arrangement...
  • Simple electronics - no need for large power supply to run both the printer and heated bed
  • No need to take existing bed apart
  • No need to re-calibrate the bed
A proper heated bed would probably work better than this arrangement, but I am going to follow my two favorite principles on this one... the KISS principle (Keep it Simple Stupid), and the 80/20 principle (20% of the effort gets 80% of the results)... Therefore I am going to build a hair dryer mount for a slightly less ghetto and hopefully 80% functional heated bed.

And since there don't seem to be a lot of instructables that really dig into the basics of such a task, I am going to include every little detail starting with the basic idea and ending with the usable object with emphasis on the design/creation of the object.  While the part I am making is very niche specific, this guide is intended to be very basic/general and geared towards someone with little experience designing a part to be built with a 3D printer or other computer based tool.  Think of it as a general guide using a specific example for making something real.

Step 1: Brainstorm and Design

1: Establish General Position/Location:

The first thing I am going to do is get a general idea of where I want the hair dryer to be...  I want it out of the way and I want it to distribute hot air as evenly across the bed as possible.  Given those considerations, I came up with the following position:



The hair dryer is in the back out of the way...  The power cord is out of the way and next to the power strip I use...  The dryer is pointing down the middle of the x-axis and angling down on the upper end of the y-axis...  The hot air should sheet flow relatively evenly across the bed...  It will probably be a bit warmer towards the upper end of the y-axis, but it is as good as I am going to get using hot air...


2: Determine Method and Design of Construction:

The first thing I am going to do is think a little bit and figure out my constraints..  After doing so, I came up with these:
  • The mount should be made completely with 3D printer
  • I want to attach it to the A-frame threaded rods of printer
  • I don't want to disassemble any part of the printer to install it
  • I want some angular adjustment (revolving about the x-axis)
Now I will think about how I am going to satisfy these constraints...  First off, if it is going to be made with my 3D printer, I will have to break it down into multiple pieces as the print bed isn't large enough to make a piece that spans the A-frame braces...  Second, it needs to attach to the A-frame without taking anything apart... I can make clips that snap on around the threaded rod..  As far as adjustment is concerned... well.. I already know I need multiple parts...  so I will make it out of three pieces..  two end pieces that clip onto the threaded A-frame rods... and a middle piece that holds the hair dryer..  the middle piece will be attached to the two end pieces by a movable circular press fit..  An added benefit to this arrangement is that I can swap out middle pieces if I get a different hair dryer or if I find out that hair dryers don't put out enough heat and I need to make a different mount for something with a little more gusto.. like my heat gun (which is sort of a concern for me right now)..

Now that I have that sorted out, it is time to sketch a rough drawing taking into consideration the positioning of the mount.  It doesn't need to be fancy, it just has to get the idea across.. in fact, it should be sloppy, you are just wasting time if you make it too nice (imho).



3: Measure specific dimensions:

Alright... the basic design is done... now time to get more specific.  I am going to be drafting this with OpenSCAD in millimeters... Being in America, most of my measuring devices are in inches... so I will convert on the fly.. I like to have the program "Convert" open while doing this process.. it makes it fast.


The first thing I am going to do is measure the A-frame rods center to center... which is the same as edge to edge (easier to measure)...


That looks pretty close to 9 3/4 inches... so using Convert, I get 247.65mm which is close enough to 248 mm...  

Now I am going to measure how far the mount needs to stick out beyond the plane of the A-frame rods.  It is hard to get a good picture taking this measurement, but you should get the idea:


This is more of a "ballpark" measurement... I am going to go with 60mm on this one...

Next I am going to take measurements for the center piece... Just to be safe, I am going to make the space allocated for the center section large enough to fit my heat gun in case this hair dryer is too wimpy.  


It looks like the head of my heat gun is about 66mm...  If I am going to make a mount for it, I will need a little extra width for the meat of the mount... I'd say 10mm (5mm on each side) would be good enough... therefore I will allocate 76mm for the width of the center section.

... but I am hopefully not going to use my heat gun... I have a cheesy $10 Walmart hair dryer that I am going to try.. so now I will measure how big the center section mount opening needs to be...



The head of the hair dryer has a slight taper and that measurement is at the widest point in the taper, so I will make the center hole exactly 56mm.  If there was no taper, I would enlarge it slightly so the hair dryer would slide in easy..

That should be all the measurements I need to take... 


4: Calculate remaining dimensions needed to draft object:

It is time again to sketch another rudimentary drawing and calculate other dimensions that will be needed when drafting in OpenSCAD.. This is what I came up with:


This is should be enough to get me started... the most important dimensions I needed to figure out are the end piece lengths and the angle they stick out at..  All the other dimensions will pretty much be chosen arbitrarily as they can vary quite a bit without noticeably affecting the performance of the component.


Step 2: Draft Your Design - Pt. 1 Center Section

Now is time to start drafting the design... You can use whatever program you like, but as far as free programs are concerned, my preference is OpenSCAD..  I just find it very intuitive.. and it gives you lots of control..  If you are new to drafting and/or don't have or want any programming experience, you may want to try Autodesk 123D.  It uses a more visual approach for drafting.  I personally don't like using it because it is close enough to other drafting programs I've used that I want to do certain things out of habit, but can't because it works differently... and I just get frustrated.. but you might love it... different strokes for different folks.

...anyways... on to drafting.... with OpenSCAD...


NOTE: I should mention that I am fairly new to OpenSCAD and programming in general, so I may be doing things inefficiently..

The first part I am going to make is the center section, mostly because it will be easier, so I can start printing it while I am drafting the end pieces.. to use time more efficiently.. 

Of course, to maintain good flow in this instructable, I will order it such that all the drafting is done before the printing..


Let us begin:
The first thing I like to do is open the User manual in my second computer screen so I can reference it easily.  The user manual is here:

http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language

Open program and turn on "show axis".. this helps a lot when figuring rotations and translations.. Then save it (and save often) CTRL +S does not save btw... F2 saves....

There are many ways we can draw this part.. I usually union together a bunch of solid objects and then subtract (difference) the excess... I have found that the easiest way for me to make a solid object that is a cylindrical shape combined with a square shape, is to use the function "hull()".  To use Hull(), you must start with 2D objects and then linear_extrude() them...  


We will first draw the center circle, it is going to be the size of our center hole plus 4mm of meat to the radius to hold the hair dryer in .. I chose 4mm arbitrarily.. it should be more than enough for strength... so we will take the hole diameter, which is 56mm, divided by 2, to get the radius, which is 28mm, plus 4mm of meat.. to get 32mm.



Once you enter the code to draw a circle, go to Design -> Compile & Render (or F6) to see the preview (you will do this after every step hereafter).  I also like to change to a top view for 2D shapes.  You can use your mouse wheel to zoom and you can click to drag or rotate... or you can go into the View menu and select a view. 


You will notice that inside the function, I specified the radius (r = 32), and center = true.  The center = true basically aligns the center of the object with the origin.  I almost always do this for consistency and ease of translations/rotations (we'll get to that later).  Circles are automatically centered, but polygons and solids aren't.. I just always specify it.. also, don't forget your semicolons..


Next we will draw a rectangle for the edges of the center piece... and I am going to make it 16mm high.. that number is sorta arbitrary, and sorta chosen because I already know the dowel protrusions off the side will be 16mm in diameter and that the part will be 16mm thick..  "Why 16mm??" you may ask.. because it is enough and is a nice even number..  If you remember from the sketch, it will be 76mm wide.



Now I want to blend this shape and make it a bit sexier... This is where hull() comes in.. I just put the previous shapes in the hull() function, and bam!, it looks great.


Whenever I put something in a function, I like to indent it.  This helps a lot with readability.  You can use the TAB button to indent or highlight and CTRL + I.  Also, don't forget your ending curly brace.. which I keep at the same indentation as the function heading.


Well, now we have a nice 2D shape.. It's time to give it some depth..  We will use the function linear_extrude().


In case you are wondering, convexity is there to help it render.. I always just set it equal to 10... and twist allows you to make spirals and cork screws..


Now I am going to add the dowel protrusions out the side..  Since everything is centered, all I need to do is make a cylinder and rotate it.  First I will draw the cylinder..  I want the dowel protrusions to stick out 20mm (arbitrary dimension) on each side.. so I will take the width, which is 76mm and add 20mm and 20mm more, to get 116mm.



Now I will rotate the cylinder about the y-axis 90 degrees.



Now I will union the two solids.  This will allow me to use this solid in the difference() function without subtracting the dowel protrusion cylinder. 



Now I will make the hole for the hair dryer.  I am going to use difference() to subtract a cylinder that has a diameter of 56mm (28mm radius) from the union I just made...with difference(), you can subtract as many objects you want from one object.



We are almost done with this... but one thing is bugging me..  the curved surfaces are too faceted..  Normally, I would do this step in the beginning, but I didn't in this case to keep the instructions simpler...  to make the curves more rounded, we will add the parameter "$fn" to all the curved objects.  We are also going to create a global variable called "fn" so that we can change this parameter easily.  The reason is because smoothly curved surfaces take a long time to compile and render.  It is faster to build the object with faceted surfaces and then smooth them up once at the end when you are ready to export.  



With that taken care of, we are ready to export this as an STL.  (Design -> Export as STL..) The slicing software used by your printer host software converts the .stl file into g-code instructions for your printer.


Now we can move to the next part...





Step 3: Draft Your Design - Pt. 2 End Pieces

We will now draft up the end pieces.  I am going to make them symmetrical so I only have to draft one... I know I will have curved pieces, so I will start out with my "fn" variable and set it equal to a relatively low number (20 in this case).  I am also going to start with the end that the center section connects to.  For this, I am going to make a cylinder.  Since I know that it will eventually have a 16mm diameter hole, I will make the diameter 24mm.  I will also make the height 16mm so some of the dowel protrusion sticks out the end (it might look cool and also help in separating the pieces).



For ease of construction, I want to orient the part so it matches my drawing.  Therefore, I need to rotate the cylinder 90 degrees, which I am going to do about the y-axis.  I could have just rotated my view, but I eventually want to make it sit flat on the x-y plane... and I think this will make it easier



Now I will draw the cylinders for the A-frame rod clips.  Referring to my drawing, I need to translate in the z-direction -60mm, and in the x direction -86mm with respect to the center of the cylinder at the front face.  Since the front face of the cylinder is 8mm positive of the origin, I will translate -78mm (-86mm - 8mm).  Also, I will need to rotate the cylinders 90 degrees about the x-axis.  Since the A-frame rods are about 8mm in diameter, I will make the diameter of the cylinders 14mm.. I don't want these too thick or they will be too hard to install..  I will make the length (height) 16mm.. for consistency..  Be sure to translate before you rotate.. order does matter..



Well... I actually want two of these cylinders, and I want to space them across the y-axis, centered on the x-z plane...  So, I will add a y-value to the translation of this recently added cylinder, and then copy and paste everything, reversing the sign of the y-value of the pasted translate-rotate-cylinder block of code.... and I am going to space them 60mm center-to-center (arbitrary dimension).  Therefore, both blocks of code will be identical, except one will have a y-translation of 30mm and the other will be -30mm.



Now I need to connect these solids.  I am going to use the cube function.  But first, I need to do a quick calculation.  I need to know the angle of the two snap cylinders about the z-axis.  Using my favorite Native American maiden "SOHCAHTOA" and a right triangle with 30mm and 78mm legs, I get 19.23 degrees.  Therefore it will be rotated about the z=axis 19.23 degrees and the y-axis -34.9 degrees.  I am going to make this solid 6mm high, 12mm wide, and 200mm long.  I will adjust the 200mm dimension after I render it and see where it lands.  I also have to do the z-rotation first or I'll get an unwanted twist.



That got me pretty close... I would really like the rectangular pieces to be flush on the bottom of the cylinders.. It looks like I can do a negative z-translation to make it close enough.  A couple tweaks/ iterations gets me here:



Now I have all the material I need.. time to start trimming.  I'll start by putting the current objects in a union, and then that union in a difference.



From here, I am going to trim all the junk beyond the front face of the first cylinder we drew.. I am also going to shave off 1mm of the face of the cylinder just in case I need it to make all the pieces fit.  To do this, I am going to translate a very large cube that has one of its surfaces at x=7mm.  



Now I am going to remove the hole that the center piece will fit into..  I could get creative here with tolerances and such, to make the right amount of friction in the press fit... but I am not going to... I figure that since these pieces won't print perfectly round and true, they will already be really tight if the hole is the same size as the dowel.. so I will just sand off material as needed to get a good fit.  For this hole, I will just copy the code from the original cylinder and adjust the dimensions.



Now I will remove the holes for the A-frame clips.  The threaded rod is really close to 8mm but I am going to make the holes a bit undersized (0.5mm) so they fit tight.  I will just copy one of the previous cylinders, remove its y-translation, reduce the radius, and make it extra long.



Now I need to make the slots for the A-frame clips that turn the tubes into clips.  I know they obviously have to be smaller than the threaded rod diameter.. how much smaller?... good questions... uh... I'll just make the slots 6mm wide and call it good..  This will be very similar to the previous removal, except that it will be a cube (rectangular prism to be more exact) and it will have a little more negative z-translation.



Now it is time to make the final removal... the one that defines the flat surface that rests on the printer bed... To do this I am first going to rotate everything to make it parallel to the x-y plane.



Now I will translate it so that the rectangular arms are close to flush with the x-y plane and then subtract a really large cube that has one of its surfaces on the x-y plane.



Wait a minute!! This isn't going to work..



I can't just print the ends of the clips over mid air unsupported like that.  I need to add some support blocks that I will cut off later.



Finally I will render it with a higher $fn value and then export it as an STL file.



If you made it this far, give yourself a pat on the back... and continue to step 4.

Step 4: Print/Clean/Fit Components

It is finally time to start printing... Since this instructable is intended as a general guide for designing things, I will not go into detail on the 3D printing of this particular object..  I will just skim over the basic steps.  

Before we get started though, I will list the exact setup I am using.
  • Linear SAE Prusa Mendel
  • Wade's Extruder w/Makergear hot end pack w/0.5mm nozzle
  • Arduino MEGA 2560 w/ RAMPS 1.4
  • Repetier Firmware Version 0.43, uploaded w/Arduino Version 0023
  • Repetier Host Software Version 0.33
  • Skeinforge 41 slicing software
  • Python version 2.7.2
  • Jave JRE Version 5.0
  • Windows 7 operating system
  • Printing with PLA filament

The first step is to load one of the objects in the host software of your printer.  Even though you can fill up your printer bed full of objects, I prefer to do them one at a time.  You are less likely to waste a bunch of filament if your print gets messed up when it is almost done.  I am going to start with the center section piece.



Next I will generate the G-code.. 



Now I will print the object and sit back and relax.


.........



Now I am going to double check and make sure I made the hole the right size for my hair dryer..



That looks good...  Now I will print one of the end pieces.  I will want to make sure it fits the center piece and the A-frame rod before printing the second one.


It is a bit tight, but I clean it up and make it fit.. better too tight than too loose... I can now start printing the next end piece..


Now that all the pieces are printed... I will clean up all the edges, remove the clip support blocks, and make sure the center piece fits the end pieces well.


I accidentally busted the head off one of the end pieces.  I was trying to clear out the hole carefully with a drill, but that was not a good idea..  Instead of printing a new piece, I opted to JB Weld it back together.

Step 5: Installation/Testing

The final step is to test your design...

It won't take long for this part..  The functionality of my design is purely based on whether or not it can hold a hair dryer aiming at the spot I intended it to, while being somewhat adjustable..  If it does that, it is a success, even if the idea of using a hair dryer as a bed heater is a complete failure.  


So here it is installed...



And holding the hair dryer...



During installation, one of the clips busted in half.....



...so I decided to drill holes next to all the clips and reinforce them with zip ties.



As far as adjustment is concerned...



... it looks like I have plenty of adjustment. 


So was this design a success??....

Overall, I would say yes..  The clips were kinda a failure, but that might be because I printed this with PLA, which is fairly brittle, especially transverse to the print grain.  I have similar clips on my filament holder (made of the same PLA), and they worked great... but they are longitudinal to the print grain...  They might have worked better if I used ABS.. but maybe not better enough..   If I were to do it again, I would probably add the zip tie holes and just make pads to sit against the threaded rod, relying solely on the zip ties for attachment.  

The holder itself seems to work great.  The dryer fits well, is held firmly in place and adjusts easily... and most importantly, I think it looks cool... 




Make It Real Challenge

Participated in the
Make It Real Challenge