• Tags
  • Documentation
  • Order
  • Register
  • Login
Duet3D Logo Duet3D
  • Tags
  • Documentation
  • Order
  • Register
  • Login

Configuring slicer for multiple extruders

Scheduled Pinned Locked Moved
Tuning and tweaking
6
17
2.1k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • undefined
    gnydick @Phaedrux
    last edited by 14 Jan 2019, 03:23

    @phaedrux
    slic3r

    tfree0&1 are blank

    tpost0&1 respectively are
    M116 P0

    M116 P1

    tpre0&1 respectively are
    G1 X1 Y205 F6000

    G1 X1 Y205 F6000

    undefined 1 Reply Last reply 14 Jan 2019, 06:38 Reply Quote 0
    • undefined
      deckingman @gnydick
      last edited by 14 Jan 2019, 06:38

      @gnydick If the generated gcode file only had T1 command but no T0 commands then it's a slicer issue. How did you assign the extruders to model parts in slic3r?

      Ian
      https://somei3deas.wordpress.com/
      https://www.youtube.com/@deckingman

      undefined 1 Reply Last reply 14 Jan 2019, 19:41 Reply Quote 0
      • undefined
        gnydick @deckingman
        last edited by 14 Jan 2019, 19:41

        @deckingman with the slicer interface itself. assigning extruder 2 to the model directly.

        with a dual extruder printer that is not using T0, why would generated g-code include T0?

        undefined 1 Reply Last reply 14 Jan 2019, 20:14 Reply Quote 0
        • undefined
          deckingman @gnydick
          last edited by 14 Jan 2019, 20:14

          @gnydick said in Configuring slicer for multiple extruders:

          @deckingman with the slicer interface itself. assigning extruder 2 to the model directly.

          with a dual extruder printer that is not using T0, why would generated g-code include T0?

          Sorry I may have misunderstood what you were trying to do. So basically what you are trying to do is print a single colour using the second tool (T1) only. Is that correct?

          If so, are you sure there are no references to T0 anywhere in the gcode file and that before any print moves, there is a T1 command?

          Ian
          https://somei3deas.wordpress.com/
          https://www.youtube.com/@deckingman

          undefined 1 Reply Last reply 15 Jan 2019, 01:20 Reply Quote 0
          • undefined
            gnydick @deckingman
            last edited by 15 Jan 2019, 01:20

            @deckingman exactly, and yes

            undefined 1 Reply Last reply 15 Jan 2019, 09:05 Reply Quote 0
            • undefined
              deckingman @gnydick
              last edited by 15 Jan 2019, 09:05

              @gnydick Try putting the active and standby temperatures in slic3r start and end gcodes.

              So in the starting gcode put:

              G10 P0 Snnn Rnnn
              G10 P1 Snnn Rnnn

              (where nnn are the temperatures you want to use)

              Then in the end gcode put the following to turn off all hot end heaters

              G10 P0 S-273 R-273
              G10 P1 S-273 R-273

              Ian
              https://somei3deas.wordpress.com/
              https://www.youtube.com/@deckingman

              1 Reply Last reply Reply Quote 0
              • undefined
                Scachi
                last edited by Scachi 15 Jan 2019, 10:40

                Similar issue here, using slic3r prusa edition 1.41.2+win64 and a y-adapter for mm using two extruders.

                I can get slic3rPE to include a tool when using a single material or both extruder as long as I assign a extruder to each part and assign a none existing tool as the default. But it won't run the first used tools filament load for me.
                I use the post files only for waiting for temp to be reached. I use the mm settings in slic3r for the loading/unloading.
                It looks like it thinks the first filament is already loaded always. But I prefer to unload it when finished printing.

                So I ended up using multiple print and printer settings (3 : 1xMM, 1xTool 0, 1xTool 1) that includes the gcode to load the first filament used and run a post processing script for the fan and temp settings:
                Post processing script entry:

                d:\slic3r_script.bat
                

                d:\slic3r_script.bat content:

                C:\"Program Files"\Prusa3D\Slic3rPE\perl5.24.0.exe d:\slic3r_my.pl %*
                

                d:\slic3r_my.pl content:

                #!/usr/bin/perl -i
                #
                # Translate Fan gcodes
                use strict;
                use warnings;
                $^I = '.bak';
                # read stdin and any/all files passed as parameters one line at a time
                my $ActiveTool="-1";
                my $NewTool="-1";
                while (<>) {
                if (/^T([0-9]{1,3})/) { # search for tool change command
                print "; Found Tool Nr: $1\n";
                $NewTool=$1
                }
                s/M106/M106 P0/; # model fan speed command
                s/M107/M106 P0 S0/; # model fan turn off
                s/M104\s*(S[0-9]{1,3}) T([0-9])/G10 P$2 $1/; # set tool temperature (old)
                if ($NewTool > -1) {
                s/M104\s*(S[0-9]{1,3})\s*; set temperature/G10 P$NewTool $1 ; set temperature - modified/;
                } else {
                s/M104\s*(S[0-9]{1,3})\s*; set temperature/;M104 $1 ; set temperature - modified/;
                }
                s/M109/;M109/; # deprecated don't use "set temperature and wait for it to be reached" - use duets own tool change macros and G10 command
                print;
                }

                I think I would be able to use only one printer settings when I would know perl better.

                1 Reply Last reply Reply Quote 0
                • undefined
                  deckingman
                  last edited by 15 Jan 2019, 11:01

                  I'm starting to hate the PE version of slic3r with a vengeance. It's getting more and more biased to the way that Prusa's firmware and hardware works and can really screw things up when using other printers and/or firmware. IMO slicers should be firmware agnostic and not mess around with printer configuration settings as Prusa's version of slic3r can do. My start and end codes are now empty apart from one command that just calls my own macros.

                  Ian
                  https://somei3deas.wordpress.com/
                  https://www.youtube.com/@deckingman

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    Scachi
                    last edited by 15 Jan 2019, 13:54

                    Using the prime tower of slic3r PE requires to use "Single Extruder Multi Material" setting at the moment.
                    I'll try to switch to use a purge bucket so I don't need to use the prime tower/MM settings of slic3r anymore.
                    This would also allow easier testing/usage of different slicer software without having to adjust everything.

                    undefined undefined 2 Replies Last reply 15 Jan 2019, 15:03 Reply Quote 0
                    • undefined
                      deckingman @Scachi
                      last edited by 15 Jan 2019, 15:03

                      @scachi Or use plain vanilla slic3r instead of the PE version - at least for testing.

                      Ian
                      https://somei3deas.wordpress.com/
                      https://www.youtube.com/@deckingman

                      undefined 1 Reply Last reply 15 Jan 2019, 17:12 Reply Quote 0
                      • undefined
                        dc42 administrators @Scachi
                        last edited by 15 Jan 2019, 15:07

                        @scachi said in Configuring slicer for multiple extruders:

                        Using the prime tower of slic3r PE requires to use "Single Extruder Multi Material" setting at the moment.

                        Have you considered implementing a prime tower in the RRF tool change files?

                        Duet WiFi hardware designer and firmware engineer
                        Please do not ask me for Duet support via PM or email, use the forum
                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                        undefined undefined 2 Replies Last reply 15 Jan 2019, 17:11 Reply Quote 0
                        • undefined
                          Scachi @dc42
                          last edited by 15 Jan 2019, 17:11

                          @dc42 I have no idea how to do that. Is it possible without a tool change on every layer ?

                          1 Reply Last reply Reply Quote 0
                          • undefined
                            Scachi @deckingman
                            last edited by 15 Jan 2019, 17:12

                            @deckingman said in Configuring slicer for multiple extruders:

                            @scachi Or use plain vanilla slic3r instead of the PE version - at least for testing.

                            Thank you. I will test it.

                            1 Reply Last reply Reply Quote 0
                            • undefined
                              fma @dc42
                              last edited by 16 Jan 2019, 07:29

                              @dc42 said in Configuring slicer for multiple extruders:

                              Have you considered implementing a prime tower in the RRF tool change files?

                              It may not that simple, as we need to know some slicer parameters, like nozzle width or layer height, in order to compute the correct amount of extrusion.

                              I agree with Ian about Slic3rPE becoming to Prusa hardware dependent... On the other hand, it has unique features.

                              Frédéric

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                Scachi
                                last edited by 16 Jan 2019, 18:12

                                I have modified my perl script. It will add the first tool to the file if not is found before the first layer change.
                                Now I can use a single print & printer settings with slic3r PE.

                                You need to add this line to your start gcode in slic3r so the script knows the default tool to use:

                                ;my_default_tool=[perimeter_extruder]
                                

                                and this line to the end of your start gcode for the script to know when the first layer is started:

                                ;my_startgcode_end

                                Here is the script:

                                #!/usr/bin/perl -i
                                #
                                # - Translates Fan gcodes
                                # - Adds the default tool as first tool when none is found before the first layer change
                                # - Removes M109 : set and wait for temperature command
                                #
                                # You need to add this line to your start gcode in slic3r so the script knows the default tool:
                                # ;my_default_tool=[perimeter_extruder]
                                # and this line to the end of your start gcode for the script to know when the first layer is started:
                                # ;my_startgcode_end
                                use strict;
                                use warnings;
                                $^I = '.bak';
                                # read stdin and any/all files passed as parameters one line at a time
                                my $DefaultTool="0";
                                my $FirstToolCheck="0";
                                my $SlicerTool="-1";
                                while (<>) {
                                if (/^;my_default_tool\=([0-9]{1})/) { # search for ;my_default_tool
                                #print "; Found Default Tool $1\n";
                                $DefaultTool=$1-1;
                                }
                                s/M106/M106 P0/; # model fan speed command
                                s/M107/M106 P0 S0/; # model fan turn off
                                s/M104\s*(S[0-9]{1,3}) T([0-9])/G10 P$2 $1/; # set tool temperature (old)
                                # first tool search , use DefaultTool if none is found before the first line containing ;BEFORE_LAYER_CHANGE
                                if ($FirstToolCheck > 0) { # check if first tool is defined
                                #print "; First Tool Check > 0\n";
                                if (/^T([0-9]{1})/) { # search for first tool set
                                $SlicerTool=$1;
                                }
                                if (/^;BEFORE_LAYER_CHANGE/) { # when no tool is found use DefaultTool parsed from GCODE line, example: ;my_default_tool=[perimeter_extruder]
                                $FirstToolCheck = "0";
                                if ($SlicerTool < 0) {
                                print "T$DefaultTool; set default tool as first tool as none was found\n";
                                }
                                }
                                }
                                if (/^;my_startgcode_end/) { # search for ;my_startgcode_end
                                print "; is a tool defined before reaching line ;BEFORE_LAYER_CHANGE ?\n";
                                $FirstToolCheck="1";
                                }
                                s/M109/;M109/; # deprecated don't use "set temperature and wait for it to be reached" - use duets own tool change macros and G10 command
                                print;
                                }
                                1 Reply Last reply Reply Quote 1
                                12 out of 17
                                • First post
                                  12/17
                                  Last post
                                Unless otherwise noted, all forum content is licensed under CC-BY-SA