Monkey see, monkey print! In the previous post you saw an overview of the 3d DLP printer I contributed one or two bits to. Now, I’d like to share what exactly these bits were: An open-source print software that is easy to use (at least I hope so) and does the pre-processing and print control for DLP printers.
DLP printers are not exactly new. They’ve been around for a couple of years now and multiple commercial and DIY versions are available. Still, we were determined to build our own for various reasons: fun, customization to our needs, fun, honing our designing and programming skills… oh, and fun.
So how does a 3d DLP printer work?
The working principle is pretty easy and does not require overly complex mechanics. The only things needed are:
- a projector (preferably a DLP projector, hence the name),
- a basin with transparent bottom that can be tilted and is positioned above the projector and
- a vertical linear drive above the vat carrying the build platform
In principle, it looks like this:
During the print, the same routine is carried out repeatedly, layer per layer. Check out the picture below:
The process requires a minimal mechanical set-up (e.g. compared to FDM printers) and this — in combination with the print results — is the main appeal of the method.
The electronic set-up is simple as well: A PC will send the black-and-white slices of the 3d model to the projector via HDMI as well as build platform and vat tilt movement commands to a micro controller via USB. The micro controller will then enable the stepper motors accordingly. The only problem here was that I couldn’t find a nice, all-in-one software to do this…
Custom made 3d print software
The only thing missing was an easy to use print software that would do the things mentioned above: prepare an stl file, generate supports, slice the whole thing and carry out the print job by controlling the projector and the stepper motors for tilt and build platform.
There is a program called Creation Workshop, but it does not natively run on Linux since it needs Microsoft .NET and was not really stable using the mono runtime emulator. Other approaches are using Printrun (a Pronterface derivate as far as I understand) but that seemed to be pretty confusing and complicated and I didn’t like the interface.
So, after some fiddling around with bash scripts to control the printer — which turned out to be a disaster concerning usability — I decided that there had to be a different, more user friendly solution and ended up writing a Python GUI print software from scratch: monkeyprint!
Features, features, features…
OK, here’s what it can do in a series of screenshots:
Where can I get it?
I have uploaded to code to Github, you can find the repository here. It is licensed under the General Public Licence. You need Python 2.7, VTK 5.8 and OpenCV 2.4 in order to use it.
Monkeyprint has many firsts: it’s my first python code, my first GUI program and my first software to be published as open-source under GPL license — so bear with me if the code is neglecting best practices or simply lacks elegance. Feel free to comment on these matters though…
Oh, and in case you wonder: Testing the printer with the new program was done using Blenders monkey head model, so that’s where the name comes from…
Well, that’s it. There will be improvements on the code and explanations on how to use the print software in the following posts. Until then I’d be happy to hear your comments and feature suggestions. If you use the software, make sure to post your results and tell me how you got along!
Until soon, Paul