Projectlayer
Kliment's Pronterface has rudimentary support for controlling a DLP resin printer via the Projectlayer screen. I made some modifications which are listed here, together with a few instructions on how to best use it.
Features
- Accepts SVG files from Slic3r or Skeinforge, or a zip file of images (bmp,jpg,png), processing them in alphabetical order. (File extension is .3dlp.zip)
- Settings are saved between sessions.
- First layer can be displayed for a set number of seconds. Useful for testing or for exposing the first layer for longer before starting the print. A value of -1 sets it to infinity.
- Display of a calibration grid to ensure the size of the projected image is correct.
- Pre- and Post-lift gcodes define what the printer should do before and after projecting a slice. Used to tilt the vat to lift the print off the base, etc.
- Overshoot setting tells the printer to lift, or dunk, the piece a little further than the layer height, in order to let the resin get in place for the next slice.
Downloads
- Github Project (experimental branch) (zip)
- Windows self-contained executable (zip). Runs without needing to install python or download the dependencies.
Additional Python Dependencies
Controls Overview
A help option is available in the dialog to say what each control does. The text of this is given below.
Buttons
- Load: Opens a file dialog to choose an SVG file created from Slic3r or Skeinforge, or a zip file of bitmap images (with extension: .3dlp.zip).
- Present: Starts the presentation of the slices.
- Pause: Pauses the presentation. Can be resumed afterwards by clicking this button, or restarted by clicking present again.
- Stop: Stops presenting the slices.
Settings
- Layer (mm): The thickness of each slice. Should match the value used to slice the model. SVG files update this value automatically, 3dlp.zip files have to be manually entered.
- Exposure (s): How long each slice should be displayed.
- Blank (s): The pause length between slices. This should take into account any movement of the Z axis, plus time to prepare the resin surface (sliding, tilting, sweeping, etc).
- Scale: The additional scaling of each slice.
- Direction: The direction the Z axis should move. Top Down is where the projector is above the model, Bottom up is where the projector is below the model.
- Overshoot (mm): How far the axis should move beyond the next slice position for each slice. For Top Down printers this would dunk the model under the resi and then return. For Bottom Up printers this would raise the base away from the vat and then return.
- Pre-lift Gcode: Additional gcode to run before raising the Z axis. Be sure to take into account any additional time needed in the pause value, and be careful what gcode is added!
- Post-lift Gcode: Additional gcode to run after raising the Z axis. Be sure to take into account any additional time needed in the pause value, and be careful what gcode is added!
- X (px): The projector resolution in the X axis.
- Y (px): The projector resolution in the Y axis.
- OffsetX (mm): How far the slice should be offset from the edge in the X axis.
- OffsetY (mm): How far the slice should be offset from the edge in the Y axis.
- ProjectedX (mm): The actual width of the entire projected image. Use the Calibrate grid to show the full size of the projected image, and measure the width at the same level where the slice will be projected onto the resin.
- Z Axis Speed (mm/min): Speed of the Z axis in mm/minute. Take into account that slower rates may require a longer pause value.
Display Options
- Fullscreen: Toggles the project screen to full size.
- Calibrate: Toggles the calibration grid. Each grid should be 10mmx10mm in size. Use the grid to ensure the projected size is correct. See also the help for the ProjectedX field.
- Boundary: Toggles the boundary of the loaded model. Shown in red so it can be used to position the slice whilst the resin is in the vat.
- 1st Layer: Displays the first layer of the model. Use this to project the first layer for longer so it holds to the base. Note: this value does not affect the first layer when the "Present" run is started, it should be used manually. The "(s)" number dictates how long to display the first layer for. -1 = unlimited.
Usage
- Calibrate the projector (see XY Calibration below).
- Choose Direction of "Top Down" or "Bottom Up" depending on your projector type.
- Slice a model to SVG (or a zip of images) and load into Projectlayer.
- Without resin in the vat, choose "1st Layer" to project the first layer onto the vat floor. Check the image is sharp and in the correct position, adjusting scale and offset accordingly . Turn off 1st layer.
- Set layer height, exposure and blank (pause) as needed.
- Set overshoot, pre/post lift gcode, and Z-axis speed as needed.
- Optionally, perform a dry run to check the projection and movement sync as expected.
- Load the resin into the printer and position the base to start.
- Optionally (but recommended), use the "1st layer" control to display the first layer a little longer. This ensures it binds securely to the base.
- Start the print by choosing "Present".
XY Calibration
The key settings are the X and Y resolution (in pixels), and the ProjectedX value (in mm). The former should be set to the resolution of the projector (e.g. 1024×768), and the latter to the full width of the image that is projected onto the bottom of the vat – not just what is visible in the vat of course, but the entire width of the projection. (The display should of course be set to “fullscreen”). With these figures dialled in the calibrate checkbox should display a grid of 10mm² squares. The ProjectedX parameter can be modified to fine tune.
Comments
-
Jody
06-08-2013 12:19
Hi,
I'm Jody, italian, and i try to make a 3D printer DLP. I would like to use your software to control the printer. I have a questions, you use arduino with ramps for elettronic? You have modificate the firmare sprinter or use the original? Si possible to have eventually your modificate firmware? Thanks!
-
Gary Hodgson
06-08-2013 13:39
Hi Jody. I simply used the regular Sprinter firmware - it should work with no modifications.
Best of luck!
-
Jody
06-08-2013 18:30
Thanks!
-
Danny
20-08-2013 22:53
Hi Gary,
I have just aired my website: www.funtodo.net , where I introduce the new affordable 3-d dlp resin to all dlp printing enthusiasts.
I hope to find distributors for all countries to make the resin even more affordable for the end-users by saving on the shipping costs.
Thanks again for all your help!
Danny
-
Networking Things and Creators in Open Source Hardware | Open Electronics
23-08-2013 13:40
[...] of concept for an application to manage and display files used for 3D printing (STL, G-Code etc), Projectlayer, a modification of Kliment’s Pronterface for use with DLP resin [...]
-
Yvo de Haas
20-09-2013 18:51
Hello,
I am currently working on a printer that prints with binder in Zcorp material. This printer is called focus and can be found on thingiverse. I can already print using Gcode, but I need a new form of exporting STL files that an Arduino with Ramps can use to print with inkjet cartridges. I have a fair amount of Arduino programming skills, but lack basic computer programming skills.
If you would be interested in helping me with this you can contact me at: focuspowderprinter [at] gmail.com
Many thanks in advance,
Yvo de Haas
-
Gary Hodgson
20-09-2013 19:49
Hi,
That sounds like an interesting project! Unfortunately I don't have the time to help out.
Best of luck!
Gary
-
Mike S
11-10-2013 05:18
I tried to run the Windows self contained exe on a couple of different machines and got error messages indicating either that it was not a Win executable, or wrong version. (64 vs 32 bit perhaps?) Can you make a 32 bit exe available? Thanks for your efforts on this software.
-
Gary Hodgson
11-10-2013 07:52
Hi there. Sorry to hear it's not working for you. I thought it should be compatible with x32 machines but I will double check.
Could you let me know what operating systems you tried?
-
Mike S
13-10-2013 04:58
XP Pro sp3 and Win 7 Pro sp1 32 bit
-
Mike S
06-11-2013 01:58
Hi Gary,
Any news on a 32 bit version for Windows?
-
Mike S
06-11-2013 03:24
I also tried installing Python and running that way. The test files in pyglet work but when I double click on pronterface.py a command window opens then closes and that is all. Any advice? Thanks.
-
antonio
15-11-2013 13:57
Is necessary a dlp proiector or is ok a lcd proiector ? thank you
-
Gary Hodgson
15-11-2013 14:16
Hi antonio, It has to be a DLP, because the LCD projectors appear to have a UV filter which stops the light from curing the resin.
-
antonio
15-11-2013 16:55
is possible to eliminate the uv filter?
-
Gary Hodgson
15-11-2013 17:42
From what I understand it is a coating on the LCD display which is difficult (or impossible) to remove, and also there to protect the LCD from degrading due to UV exposure.
Some time ago I attempted an experiment to see if a UV lamp shining through an old LCD monitor screen would cure resin underneath, but it didn't work due to the coating, and I couldn't see a way of removing it either.
-
goldi80
19-12-2013 23:18
i can start this software PLEASE HELP I NEED PYTHON OR WHAT
X
The version of this file is not compatible with the version of windows you re running.
Check your computer s system information to whether you need an x86 (32-bit)
or x64 (64-bit) version of the program, and then contact the software publisher.
??????????????????????????????????????????????????
my comp is ok
-
goldi80
20-12-2013 10:13
can not start the program!!!!
-
Gary Hodgson
20-12-2013 12:02
Others have also had problems starting the windows executable on their OS. I suspect that it is because I built it on a Vista x64 machine, and some of the libraries it needs are possibly not compatible.
What OS are you using?
An alternative is to run the program from source - if you know how to run python programs.
If you are looking for a polished product however, I would actually recommend looking at some of the other DLP control programs that people have developed. There has been a lot of activity in this area and there are better solutions to my Projectlayer hack nowadays.
Best of luck.
-
goldi80
20-12-2013 12:49
I'm using win7 32bit and win xp sp3 i try everything
put the link python
i want to my printer with this program!
-
goldi80
20-12-2013 13:14
i have idea to make great printer use remove x axis you don't need it is go to slow to many nose
Vivitek D952HD DLP Projector 1080p put horizontal with the mirror 1000$ and put 30µ pixel size on the software you need it micro settings
z axis put ball nut 1204 is 12mm 4mm step is cheap 10$ Pack of 4 SBR16UU 16mm Aluminum Open Linear
only one micro switch on top
calibration z axis put paper on the glass push z axis down to the paper make it zero simple no need to touch again
Build Table most importet thing you need two build two table one to another with two 8mm Linear Ball Bearing and two springs on LM8UU 8mm Linear Ball in the middle put micro switch to pause the job
wen the resin is making vacuum the micro switch will pause the job and wait the resin slowly get under is all about springs
my calculation is 20mm ring or else build time 1000 slice for 15 min to max 30min
I'm building this!
-
goldi80
20-12-2013 13:59
i like a simple software usually the work this one have pause i need it for my printer
the best software i see is tisk in polish lang,, uh
wen i can try it if it works i pay you my one salary ?
-
goldi80
21-12-2013 13:02
this works on win7 64bit jeeeeeeeee
-
Gary Hodgson
21-12-2013 23:57
Glad to hear you got it working. Best of luck on your build!
-
Eric CHU
01-01-2014 12:01
•Windows self-contained executable (zip). Runs without needing to install python or download the dependencies.
Hi.
Gary
I try to download this zip file. But failed
If possible send this to my e-mail box?
or have another link to reach?
Thanks
-
Gary Hodgson
01-01-2014 13:29
Hi Eric,
The link appears to work ok for me. I'll send the zip to you via Email in any case.
Cheers,
Gary
-
Christer Vestermark
01-01-2014 15:57
I really like this program, but there seems to be some kind of small error in the ProjectLayer Dislay? Maybe have something with file compression to do?? Som pixels is missing, and the rounded part have a flat surface.
These pictures shows the same frame, in the ProjectLayer Display, and your test web page:
https://drive.google.com/file/d/0B7qIGfrcMYONODdTRklRbEZWWFU/edit?usp=sharing
https://drive.google.com/file/d/0B7qIGfrcMYONcmJCNE1vNjVTWGc/edit?usp=sharing
The STL and SVG can be found here (M3):
https://drive.google.com/folderview?id=0B7qIGfrcMYONUkFmZUVOMzk4RzA&usp=sharing
This is visible on the printed part as well...
-
Gary Hodgson
01-01-2014 16:22
Hi. That's interesting. I can only assume that the artefacts are introduced by the Cairo library in some way. At the moment I sadly can't recommend anything to try in order to remove them. If I think of anything I will let you know.
Cheers,
Gary
-
Christer Vestermark
08-01-2014 21:32
Thank you anyway.
And thank you for hinting about Creation Workshop. I have been looking at it earlier, but then I liked your program more. But with the latest release it seems relly useful.
Thank you!
Best regards
Christer
-
Wojciech
31-07-2014 12:02
Hello
I`m Wojciech. I work to build SLS printer. Would it be possible to add positive/negative option when converting STL to SVG in Slic3r? Now it works only with DLP printers.
Thanks
Wojciech
-
Wapoti
30-12-2015 22:36
Hello,
Creation Workshop is not free anymore.
Have you fully stoped this project ?
Thanks,
Wapoti.
-
XiGua
04-02-2016 11:48
Hi Gary,
first of all thanks for your amazing work. I could already successfully install and run Projectlayer under Windows. It's great!
However i am trying to get it working on a Raspberry Pi 2 (Raspbian Wheezy). Since the RPi is something very new for me, i can not get it working. I tried to install the "normal" Pronterface on the RPi, which worked out. But when I try to open the "Projector" tool, i get following message:
" Traceback (moste recent call last):
File "/homepi/SLA/Printrun-master/printrun/pronterface.py", line 772 in project
from printrun import projectlayer
File "/home/pi/SLA/Printrun-master/printrun/projectlayer.py", line 24, in
from cairosvg.surface import PNGSurface
ImportError: No module named cairosvg.surface "
Do you have any idea how i can fix it? I tried to find any useful information, but so far I did not have any success...
Is there a way to get Projectlayer working for the RPi?
Thanks in advance!
XiGua
-
elliot
16-03-2016 18:52
Hi Gary -
Great info and website. I'm curious to know if you recommend an SVG converter for autocad and I am also assuming I need to "fill" parts of the drawing for black and white. I have a drawing that cannot be converted to a solid. (Too many graphical entities) The computer hangs during the conversion - it has close to 250,000 pillars and then some additional geometries. It seems like I could make the slices I need and upload to slic3r from there. (there are actually only two distinct slices and 18 replicates of the first - and then 2 of the last one) It is a 2 mm thick chip. I've tried 4 different cad programs and even build a very high powered computer for it - 128GB RAM and i7 4 GHz processor, RAM disc, SSD etc.
-
randy
29-03-2016 17:56
hi (if you're still around...),
It's great to have this interface and functionality. I'm building a resin printer, using a Raspberry Pi as part of the control. I connect to the Pi via ssh, start pronterface, open Tools -> Projector and get the ProjectLayer Control. It works fine...the only problem is that the ProjectLayer Display is on the computer I'm ssh'ing from (as an X-Window) and I want it on the Raspberry Pi HDMI output instead, where the projector is. What's on the HDMI output currently looks like just the log messages when the pi boots. I thought maybe either I have to change the "class DisplayFrame(wx.Frame):" in projectlayer.py, or maybe can somehow make the pi mirror output to HDMI or set a DISPLAY variable maybe but haven't gotten any of that to work yet.
Any ideas on how I might make ProjectLayer Display go out the HDMI would be greatly appreciated.
regards,
Randy