Welcome! Log In Create A New Profile

Advanced

How to dual extrude with repetier and slic3r and openscad

Posted by HanspeterH 
How to dual extrude with repetier and slic3r and openscad
June 02, 2013 01:07PM
Hi
Took me some time to get that sorted out when setting up my dual extrusion printer. There are different situations to consider:

1) You want to print objects with one or the other extruder with its associated material
This is useful if you have e.g. PLA in one and ABS in the other extruder and depending on the objects requirements you want it to print with PLA or ABS.
Software Setup
- Setup slic3r: In Printer Settings/Capabilities/Extruders=2
In Printer Settings/Extruder 1/Extruder offset x=0, y=0 // yes no offsets in slic3r because offset is handled by repetier firmware
In Printer Settings/Extruder 2/Extruder offset x=0, y=0
In Print Settings/Multiple Extruders/Perimeter+Infill+Support all set to 1
In Filament Settings: Make one entry for each filament you will be using
- Setup Rep. Firmware:
In config.h you must have set: #define NUM_EXTRUDER 2 under Basic Settings, recompile and load firmware to your controller
Either in firmware source or eeprom settings: X2_offset x= -3320 y=0 // In repetier these are nbr of steps the ext2 is to the left of ext 1. value is specific to your printer. Can be calculated using the value for steps/mm for your machine.
For my printer, Ext0 is the right extruder and Ext1 the left one. If you I select EXT0 in RepetierHost and do a x-axis home the firmware positions EXT0 to the x=zero position (front, left corner). When I select Ext1 and do a home, then the firmware moves the extruders to the right by the distance of the 2 extruders and then the EXT1 is at the x=0 position (front, left corner). So the EXT1 offset is the offset from 0 when the EXT0 is at x=0 position. In the firmware it is not made clear, that the offset values are steps and not millimeters. Its only clear from the value desription of the eeprom fields when displayed thru RepetierHost. A good test is to switch extruders thru manual control of RepetierHost and check, that the hotend mounting moves left/right and vice versa and positions the selected extruder to the x=0 position and then has the full width of the printing area available to move to the right.

Slice and Print
Slicing using slic3r (standalone or via Repetier Host)
- In Plater select the correct Printsetting, Filant Setting and Printer Setting. You have two selection fields for the filament. Slic3r will use the upper one to slice your .stl object, which you add with the add button in Plater. Press Export G-code in standalone slic3r or slice with slic3r in Repetierhost. This will create the G-code for your single color object. It does not contain any extruder specific codes.

Printing the object: If you used slic3r standalone load the g-code produced by slic3r into RepetierHost, when sliced via RepetierHost its already loaded. Go to Manual Control in RepetierHost, select either Extruder 1 and the Start Job or Extruder2 and then Start Job.Your object will be printed with the extruder you selected.



2)You have the same type of material in your 2 extruders, probably with different colors and want to print a two color object

Software Setup
- exactly the same setup as described under 1)

Prepare your two color object, one for each color

You need two objects which result in two .stl files. One of the methods is, to use OpenScad and do a difference() of the objects color parts, render it (F5,and F6) and export it as color1.stl. Then do an intersect() of the same objects color parts, render it (F5 and F6) and export it as color2.stl.

A very simple example for such a two color object in Openscad is:

color1.scad:
color ("red") 
	difference() {
		cube([50,50,2],center=true);
		cube([15,15,2],center=true);
}
// F5, then F6 then export as color1.stl

color2.scad:
color ("black") 
	intersection() {
		cube([50,50,2],center=true);
		cube([15,15,2],center=true);
}
// F5, then F6 then export as color2.stl

So far these are absolutely normal, simple .stl files representing two separate parts without any extruder or color specific information in it.

Slice and Print[ the two color object

-You have to use slic3r in standalone mode for this step

In slic3/File select "Combine multi-material .stl files... then a window opens, slect color1.stl and color2.stl and press "open", on the next window select quit/Abbrechen (as you have no more additional .stl files), then the next window opens where you can save a special file named "color(1 or2).amf.xml", click save.
Now in the Plater of slic3r press "Add", in bottom right select AMF files (*.amf), select the colorx.amf.xml created before and press open.Now your two color object is loaded as one single object into slic3r. Select the proper PrintSettings, both proper FilamentSettings and the correct PrinterSetting. Then slice it by pressing "Export G-code".Select a name for your generated g-code.

-Printing the two color object

In RepetierHost press Load (or F2) and select the g-code file you saved in the previous step. In the file you will see T0 and T1 commands to switch extruder

The two colors of your object will be at the right place, i.e. the object will be printed "logically" correct but this does not mean, that it will look good...

Many objects downloaded from thingiverse are created with a built in fixed offset for specific printers, which do not necessarily work on your printer, where the shifting of the extruder is managed by the firmware on tool change m codes Tx.



3) You have some material in one extruder and support material in the other extruder

Software Setup
- exactly the same setup as described under 1)

This one I have not tried yet. Its probably simple. just select in the slic3r PrintSettings under MultipleExtruders the other extruder for support material.




Edited 3 time(s). Last edit at 06/04/2013 12:30AM by HanspeterH.

My Environment:
Host for both 3D-Printers: Repetier Host: 0.90C, slic3r 0.9.10b prebuilt, win7 home premium 64bit
-Dual Extruder bowden printer: Repetier Firmware: 0.83, Arduino 1.05, Board: Azteeg X3, UBIS Hotends 0.35, Viki,
-Single Extrusion printer: Marlin V1, Arduino 1.05, PrintrBoard, UBIS Hotend 0.35

Hanspeter, www.funlab.ch
Re: How to dual extrude with repetier and slic3r and openscad
June 15, 2013 12:10PM
Your instructions imply that you have individual settings for two different filaments when you have two extruders. The filament tab only shows me an option for one filament; both for diameter/nozzle size and temperature settings. How do you get the option for settings for your second extruder??

Slic3r 0.9.10b on W7, 32 bit version, Home Premium. (Also tried with slic3r 9.9 and 9.8 - no option to set filament values)

Edited 1 time(s). Last edit at 06/15/2013 12:18PM by doctek.
Re: How to dual extrude with repetier and slic3r and openscad
June 19, 2013 07:31PM
I don't think the "Plater" tab is available when Slic3r is called from ReptierHost, but that appears to be where you would choose your 2nd filament from the available saved presets.

I haven't tried it, but I've attached an image of how it seems to be used.




1st working printer: Printrbot Plus v1 (built from kit, not pre-assembled) with Super-Z upgrade.
2nd printer currently under construction: Printrbot Plus v2 frame, with RAMPS electronics and TrinityLabs.com Magma hot end.
Re: How to dual extrude with repetier and slic3r and openscad
June 20, 2013 02:29AM
Set Slic3r version to 0.9.8 to get the plater back. The next release will also show the plater when you have set 2 or more extruders in the host.


Ordbot + iRapid + Mendel
Repetier-Software the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware
Re: How to dual extrude with repetier and slic3r and openscad
June 27, 2013 10:12AM
How do you make both extruders extrude at the exact same time?

simultaneous printing....


Is there a G-code command that will link them? or maybe just a Y cable on the stepper?
Re: How to dual extrude with repetier and slic3r and openscad
June 27, 2013 10:34AM
Current firmwares do not support this.

You could write a little patch to send a M Command with the new mixing ratio and move two extruder accordingly.


Ordbot + iRapid + Mendel
Repetier-Software the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware
Re: How to dual extrude with repetier and slic3r and openscad
June 27, 2013 10:50AM
repetier Wrote:
-------------------------------------------------------
> Current firmwares do not support this.
>
> You could write a little patch to send a M Command
> with the new mixing ratio and move two extruder
> accordingly.


you are talking about adding an M code definition in the firmware...correct? and then calling that.

I am thinking of simply wiring up a Y cable for the extruder steppers, and just making sure both nozzles are on when it runs. The main purpose for this is to be able to easily and accuratelly measure the extruder offset. But I guess there may be easier ways to do that.
Re: How to dual extrude with repetier and slic3r and openscad
June 27, 2013 11:02AM
Oh, I misunderstood your question. I thought you are talking about a Y Extruder with 2 filament inputs and one nozzle.

What you want is quite simple. Set offset to 0 and print a L two times with different extruders active. Then you can see the distance difference in x and y direction.


Ordbot + iRapid + Mendel
Repetier-Software the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware
Re: How to dual extrude with repetier and slic3r and openscad
September 27, 2013 09:30AM
1013 Wrote:
-------------------------------------------------------
> repetier Wrote:
> --------------------------------------------------
> -----
> > Current firmwares do not support this.
> >
> > You could write a little patch to send a M
> Command
> > with the new mixing ratio and move two extruder
> > accordingly.
>
>
> you are talking about adding an M code definition
> in the firmware...correct? and then calling that.
>
> I am thinking of simply wiring up a Y cable for
> the extruder steppers, and just making sure both
> nozzles are on when it runs. The main purpose for
> this is to be able to easily and accuratelly
> measure the extruder offset. But I guess there may
> be easier ways to do that.

I have done that with a simple script to alter the gCode. All I do is replace all occurences of the E parameter with with two identical A and B parameters.

So for instance the line :
G1 X-9.569 Y8.5329 Z1.125 F2527.76044 E147.07352
becomes :
G1 X-9.569 Y8.5329 Z1.125 F2527.76044 A147.07352 B147.07352

Both the extruders then extract the exact same amount of plastic simultaneously - exactly as they would if connected in parallel by a Y-cable.
I recall also manually changing something in the startup code because of some issue but I can't quite remember what it was. I'll see if I can find the script and the sample gCode and post it here.

You of course have to be careful that the object is smaller than the distance between the extruders as otherwise one extruder will plough into the other extruder's print (or at least that there shape allows them to be interleaved, for example repeated wavy lines)

I do not know however with what printers and firmwares it may or may not work as I have only tried it on the only printer I have. It is a Chinese Makerbot-Dual clone with V7 firmware and I compile the X3G files for it with ReplicatorG.


(EDIT: The firmware is V7.3 now but I'm not quite sure what it was when I tried this stunt)

Edited 1 time(s). Last edit at 09/27/2013 09:33AM by lister6520.
Sorry, only registered users may post in this forum.

Click here to login