Slic3r PE 'Send to printer'?
-
nice , somebody else can use it;-)
-
I wonder if it would be possible to just do a pull request for Slic3r PE to take the Duet connectivity from the main Slic3r dev branch that already has it working.
It looks like it is this commit https://github.com/alexrj/Slic3r/commit/1c74067da09a9a23ce66227b55146af6182d747d, it should be possible to pull it in and build your 'own' slic3r version, but I guess that these are not the only changes needed. 5fbb245b9790193b6924735fd985dc3cd2350ee6 and 13f121e3d952cca33b1ee5fdd73c12d85bf54d0e also mention the duet.
Edit: As I said before, I doubt that this would get accepted
-
OK I found a solution. It is a bit of a hack where I use the ip address /url to determine whether to send it to an octopi or a duet
Nice work, well done. (in lieu of a 'like' button for an individual post)
-
I don't think prusa will accept a pull request for this issue at the moment.
On github i found the following open issue https://github.com/prusa3d/Slic3r/issues/695, seems they will do some refactoring.Today they committed a change which seems to be part of the refactoring.
https://github.com/prusa3d/Slic3r/commit/4a90ab1f6a1390df4ce332b342536ee61db6ebfd -
We'll see if we get a response to the most recently opened issue on Github https://github.com/prusa3d/Slic3r/issues/935. I'm not too hopeful that the Prusa version will ever add in support for the Duet. I ended up making a post processing script that uploads the gcode file. The script is basically just the perl code that slic3r usually uses to upload files.
#!/usr/bin/perl -i use strict; use warnings; use LWP::UserAgent; use File::Slurp; use File::Basename; # Set up filepath and filename my $filepath = $ARGV[0]; $filepath =~ tr|\\|/|; my $filename = basename($filepath); my $ua = LWP::UserAgent->new; my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); my $t = sprintf("%4d-%02d-%02dT%02d:%02d:%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec); my $server_endpoint = "http://192.168.X.XX/rr_upload?name=gcodes/$filename&time=$t"; my $req = HTTP::Request->new(POST => $server_endpoint); my $data_file = read_file( $filepath, { binmode => ':raw' } ); $req->content($data_file); my $resp = $ua->request($req); if ($resp->is_success) { my $message = $resp->decoded_content; print "Received reply: $message\n"; }else { print "HTTP POST error code: ", $resp->code, "\n"; print "HTTP POST error message: ", $resp->message, "\n"; }
You'll have to put the address of your Duet where the "XXX" are in the $server_endpoint var. I run all my post processing scripts from a windows bat file which looks sort of like this at the end:
pause perl "C:\Program Files\Slic3r\uploadgcodefile.pl" %1 del /f %1 pause
The bat file uploads the gcode file and then deletes it. The first pause allows me to close the command window to cancel the upload/delete command. The last pause allows me to verify the upload worked.
This process definitely isn't perfect, but is easier than manually uploading files.
-
Hi,
I've added the option for sending G-Codes to Duet and already created a pull request for it (https://github.com/prusa3d/Slic3r/pull/1051)
Let's see if Prusa will overtake it into their repo.If someone is interested in testing it can be cloned from https://github.com/mloidl/Slic3r/tree/duet
Best regards,
Martin -
@mloidl Great work, I hope they take it for the next release.
-
@mloidl nice,well done!!
-
@mloidl thanks for the work! great to see it was accepted!
If it's not too much trouble, do you think you could post a release already built with the commit?
-
@mordekain I have not yet tried to build a release for another pc than mine. I'll try to create a linux appimage for testing. I'm not able to provide a windows or mac executable.
On the other hand i assume prusa will release another beta or release candiate soon (current beta was released 19 days ago) -
New release is up!
https://github.com/prusa3d/Slic3r/releases/tag/version_1.41.0The new feature works wonderfully, thanks @mloidl !
-
As already mentioned by @Mordekain, the latest Slic3r PE Release 1.41.0 contains the duet upload functionality.
Unfortunately the timestamps for uploaded files are not set correctly. This has been fixed and is already submitted to the master branch, so it will be part of the next bug fix release. -
@mloidl great work. Can't wait to try it out. Thanks.
-
@mloidl thanks for your work in the Duet integration!
I'm running my Duet behind a reverse proxy with HTTP Basic Auth to add a (thin) layer of security.
Any chance you can add auth credentials to Slic3r? No need for new UI fields, a simplehttps://username:password@my-fancy-printer.com/
would be sufficient.I'm not sure if the Slic3r HTTP library already supports this - looks like a custom (bare-bones) implementation based on curl?
-
@resam
Please have a look to https://github.com/prusa3d/Slic3r/issues/650.If this is what you want it should be possible to implement, since the logic is already implemented for octoprint.
Are you able to build Slic3r by your self? I could then push it to my branch and you could test it.
-
@mloidl good find!
Actually I'm having problems with getting my HTTPS cert accepted, although I set the path to my self-signed crt file in PEM format.
I guess this is the problem: https://github.com/prusa3d/Slic3r/blob/22569de00fb05d3e69695d1a07819b795bbde134/xs/src/slic3r/Utils/Http.cpp#L109
(not sure how / where Slic3r is built, but apparently on macOS they don't support custom CA files?) -
I installed this new release, but I can't seen any menu / button to upload the file to the Duet; how do I configure that?
-
@fma In your printer section you have to Select Duet as Host Type
-
Ok, I see. Thanks!
-
Ok, I just tried this feature: it works, but:
-
it does not support spaces in file/dir name;
-
the files send from Slic3rPE don't have the same format that the ones sent from the web server: from Slic3rPE, it uses DD/MM/YYYY instead of MM/DD/YYYY. So order when sorted by date is wrong.
Anyway, thanks for the great job!
-