From the RepRap
Wiki:
"The
RepRap
project is
an initiative to develop a 3D
printer
that
can print most of its own components...As an open
design,
all of the designs produced by the project are released under a free
software license...Due
to the self-replicating ability of the machine, authors envision the
possibility to cheaply distribute RepRap units to people and
communities, enabling them to create (or download from the internet)
complex products without the need for expensive industrial
infrastructure..."
Current
versions of the machine are driven by the Arduino
open-source micro-controller, which in turn controls a stepper motor
controller, the "RepRap
Arduino Mega Pololu Shield"
(RAMPS).
It includes plug in stepper drivers and extruder control electronics.
Everything
about the RepRap project revolves around the OpenSource concept, and,
were one so inclined, one could build totally from scratch (with the
exception, probably, of the Arduino micro controler) from plans
readily available on the Internet. All of the required software to
make the system work, from the firmware for the Arduino board to the
communications software and the software required to create the
g-code commands (same as used in conventional CNC) is available as
OpenSource.
I
am not quite so adventuresome, so I purchased a kit from an outfit
recommended on the RepRap organization Buyer's
Guide
(apparently, there are some shady dealers out there offering "kits"
that leave a little to be desired). I have a little over $1000
invested, after shipping and import duties, which is about double
what the cost of building from scratch is reported to be.
The particular kit supplier I chose happens to have a very active
community on Google Groups. For those interested in the details of
the supplier I chose (I do not want to mention any particular
companies on this blog, per my understanding of CR4 policies), as
well as the trials and tribulations of putting together a complicated
machine without a proper instruction manual, a more detailed history
of my experiences is available here.
Meanwhile, this is what the kit looked like when I
received it:

and here is what it looks like after it is put
together:

It took us about six days from opening the box to my
first print (working in my "spare" time). Some soldering was
required, but nothing beyond the skills of a hobbyist. I probably
spent a good deal more time surfing the Internet looking for the
right instruction sets and software packages than actually building
the system (the bane of the OpenSource community!).
Software
There are a number of elements to the software
chain, referred to as the "Tool Chain", that must be put together
to get things running, described nicely here.
Here is a nice picture from the Wiki:

Which should look familiar to those who have read my
previous blog on OpenSource CNC.
There are many different options for software for
the Prusa Mendel, detailed in part here.
This can get a bit confusing, because everyone has their own idea
about the "best" solution. One of the issues that must be
addressed first is what operating system one is using for controlling
the machine. In keeping with the OpenSource spirit, I prefer the
Linux operating system (specifically, Ubuntu 10.04 LTS 64 bit-
experiences may vary with some of the newer approaches to the
graphics desktop being bandied about, like Unity or Gnome 3), but
others apparently are working quite nicely with Windows and MAC OS.
We have had a lively discussion in the past on
OpenSource CAD packages, and virtually any package that is ultimately
capable of generating *.stl files will serve the purpose- even the
over-priced commercial packages, if this is your preference. I
personally prefer BrlCAD because
it uses a CSG (Constructive
Solid Geometry)
approach, which means one starts with primitive solid shapes and adds
and subtracts other primitive shapes to arrive at the final object.
OpenSCAD is also offers a CSG
approach, but I have trouble figuring out where I am in model space,
which makes it difficult to position objects. I have the same
problem with FreeCAD.
Salome is a nice
package as well. My preference for BrlCAD or Salome probably is
related to the fact that I am more familiar with these packages.
Also, were I more interested in artistic subjects, I would probably
prefer Blender, but I find
Blender a real trial to use for engineering-type objects (although
others have done some pretty impressive engineering illustration with
Blender).
Once we have the design in *.stl format, we need to
"slice" the model into layers and generate the g-code that will
be used to pass instructions to the printer. The easiest approach
would seem to be to go with the RepRap basic solution, referred to as
the "Host Software" (available here),
which also integrates the communications software required to talk to
the printer. I immediately had problems with this package, in that
it is Java based, and Java has lost it's "cross-platform"
advantage ever since Oracle bought Sun- and I am not convinced Oracle
is going to leave Java as an Open Source solution. Personal
preferences here, compounded by the fact that the RepRap software did
not build on the first go on my system, and I have no real motivation
to pursue it.
We finally settled on Slic3r,
apparently the new kid on the block, but intuitive and very easy to
use. This program provides a well-organized GUI that helps set the
parameters for the print:

Most of the settings actually don't change that much
between print jobs on a particular set-up, and one can save preferred
settings in a configuration file. Very detailed descriptions of the
various settings and default values are provided on the website.
Many "builders" also share their configuration files on the
Google Groups site, to help you get started.
Once the settings are where you want them, hit the
"Slice" button, the program asks for the *.stl file to operate
on, then generates a g-code file ready to print.
Now that we have the g-code, we move on to the
communications program. I have opted for a program called
"PrintRun":

Pretty intuitive, but the available documentation is
severely limited. There is an "Options" menu that allows for
setting a number of parameters, but play with these at your own risk.
One of the settings that came in handy was the "slicecommand"
setting, which allows one to integrate the slicer program with the
controller program (I describe how to do this in my detailed project
summary). One must turn the extruder heater and the bed heater on to
let them warm up, and I always test the extruder with the manual
"Extrude" button before printing. When ready, select "Load
File" which asks for the g-code file you generated in the previous
step, then select "Print" and go off and have a cup of coffee.
When you get back, you should have something that looks like this:

Actually, you will only get something like this if
you happened to print the same object I printed. Also, bear in mind,
this is my first attempt- the "Caged Ball" is my idea of a good
"gauge block" for determining the capabilities of the machine. I
need to do a lot of tweaking to get a better surface finish (or maybe
change to a different material). But it illustrates several
features, like plane surfaces, right angles, curved surfaces,
bridging over open spaces. I had designed the model such that the
ball would be free of the cage when printed, but found that, as the
machine is currently calibrated, it could not hold the 0.5 tolerance
I had used (I had to cut the ball loose with a hobby knife to achieve
my original intent). I also found that the print varied a bit
dimensionally from my original model, but all three axes are
orthogonal to as close as I can measure by hand.
There is still a lot of tweaking to do, and lots of
experimentation awaiting, but I feel this is a pretty good start...
The wife did inquire as to why I printed this
particular object, since she could see absolutely no practical use
for it. My response? "Because I can..."
|