cbarry
Posts: 31
Joined: Thu Apr 18, 2019 1:52 pm

multiple materials / multiple extruders / multiple objects

Greetings S3D users,
First post here. I searched and found nothing about this topic that was helpful. Hopefully someone can help me out.

I have a Stacker S4, which is a 4 extruder industrial printer. It can operate by printing up to four copies of the same thing simultaneously (if they can fit on the bed), OR it can operate in multi material mode, where it prints the object(s) in multiple colors or materials. I'm using it in multi-material mode, where I have the external shell material (PLA) in extruder1, infill material (Conductive PLA) in extruder2, support material (eSun PVA) in extruder3, and T-Glase clear in extruder4.

Some issues I am having:
  • inactive extruders oozing (fixed mostly, but could use a code review/improvements - code below)
  • un-optimized tool changes across multiple objects.
Here's my script code (currently, I'm not using the T-Glase, so the 4th extruder has been removed from the code):

Code: Select all

;;
; begin start script
;;

G28 ; home all axes


T0 ; set tool
G1 Z5 F3000 ; lift
G1 X5 Y10 F5000 ; move to prime
G1 Z0.2 F1500 ; get ready to prime
G92 E0 ; reset extrusion distance
G1 Y80 E20 F600 ; prime nozzle
G1 Y160 F5000 ; quick wipe
G1 E-5 F2000; retraction
;;

T1 ; set tool
G1 Z5 F3000 ; lift
G1 X15 Y10 F5000 ; move to prime
G1 Z0.2 F1500 ; get ready to prime
G92 E0 ; reset extrusion distance
G1 Y80 E20 F600 ; prime nozzle
G1 Y160 F5000 ; quick wipe
G1 E-5 F200 ; retraction
;;

T2 ; set tool
G1 Z5 F3000 ; lift
G1 X25 Y10 F5000 ; move to prime
G1 Z0.2 F1500 ; get ready to prime
G92 E0 ; reset extrusion distance
G1 Y80 E20 F600 ; prime nozzle
G1 Y160 F5000 ; quick wipe
G1 E-5 F2000; retraction
;;

G1 Z5 F3000 ; lift

;;
; end start script
;;
And here's the tool change code:

Code: Select all

;;
;; begin tool change
;;

; anti-drool
{IF NEWTOOL!=[old_tool]} G1 E-15 T[old_tool] F2400

;;
; Z up 5mm
G91 ; relative
G1 Z5 F3000 ;
G90 ; absolute

;;
;T0
; lower other tools, set T0 to temp
{IF NEWTOOL=0} M104 S190 T1 ;
{IF NEWTOOL=0} M104 S190 T2 ;
{IF NEWTOOL=0} M109 S[extruder0_temperature] T0 ; wait for new temp
{IF NEWTOOL=0} T0 ;

;;
;T1
; lower other tools,  set T1 to temp
{IF NEWTOOL=1} M104 S190 T0 ;
{IF NEWTOOL=1} M104 S190 T2 ;
{IF NEWTOOL=1} M109 S[extruder1_temperature] T1 ; wait for new temp
{IF NEWTOOL=1} T1 ;

;;
;T2
; lower other tools,  set T2 to temp
{IF NEWTOOL=2} M104 S190 T0 ;
{IF NEWTOOL=2} M104 S190 T1 ;
{IF NEWTOOL=2} M109 S[extruder2_temperature] T2 ; wait for new temp
{IF NEWTOOL=2} T2 ;

;;
;ALL
; wait for old tool to cool down before continuing
{IF NEWTOOL!=[old_tool]} M109 R190 T[old_tool]; wait for old temp to cool before moving

;;
; return to original Z
G91 ; relative
G1 Z-5 F1000 ;
G90 ; absolute

;;
;; end tool change
;;
As you can see, I've learned much already from the folks on this forum. I had not seen

Code: Select all

{IF NEWTOOL!=[old_tool]} do something
used before, and it is handy, so steal that. :)

Anyway, the point of the post is that I'm printing a bunch of things in multiple materials, and the way S3d slices it, it will change to tool0, do objectA in the shell material, then change tools, do objectA's infill, then another tool change for the objectA's supports. That's 3 tool changes per object, but it could just do 3 tool changes per layer, which would be immensely more efficient, given I'm waiting for nozzles to heat up and cool down between changes.

I am using two processes now, the first uses an increased extrusion multiplier for the first two layers, but otherwise is the same as the second process, which just resets the multiplier to 1.00. I've tried to imagine a way that processes will solve this problem, but I cannot think of any way.

Now that you see what I am trying to accomplish, and what I have done thus far...
Q: How do I get there?

Thanks!
Christopher Barry
cbarry
Posts: 31
Joined: Thu Apr 18, 2019 1:52 pm

Re: multiple materials / multiple extruders / multiple objects

OK, I'm going to reply to my first post! weird, but the title says it pretty well. This post was about using a machine (Stacker S4) with multiple actual tool heads.

Today, I am writing to ask about / get info about multiple virtual extruders - e.g N virtualized extruders or processes with their own specific settings, like all nozzle settings, layer settings, or is this process/VE for supports only? Infill only?, that kind of thing. And how these VEs can be assigned to objects and/or object groups.

I see several hierarchical concepts for approaching this.
  • Processes
  • Extruder Tool heads (physical extruders)
  • Named Extruders (basically virtual extruders I think, but attached to a physical extruder)
but it's unclear how best to do it.
I was checking this out:
https://www.instructables.com/Multicolo ... -Extruder/
but for one thing, it's for v4.x, and it's kind of old.

For those curious, I'm building a unique single physical extruder/multi-material system that will be kickstarted this year, and I can go into more detail at a later date on that, but suffice to say I want to support more than 6 materials, and it appears that 6 might be an arbitrary hardcoded limit in S3d (4.x anyway), or I just don't understand how to set it up correctly. It is a bit confusing.

Would someone with any thoughts and ideas please reply here ( @S3d-support too please) and get me pointed in the right direction?

Muchly appreciated,
Christopher
cbarry
Posts: 31
Joined: Thu Apr 18, 2019 1:52 pm

Re: multiple materials / multiple extruders / multiple objects

OK, just re-installed v5 @ v5.0.2. I had problems with the install of the first update for some reason, and it broke v5.

Anyway, I'm in v5.0.2 now, and noticing the scripts section has changed a bit. There's a 'process change' tab now I don't recall in v4, and the others have pre and post sections I don't recall either, but I am up and running in v5 now, so I guess my questions above should relate to how to do what I need to do in v5+, and v4 no longer needs to be considered.

One thing that is still the same, is the pre-defined number of tool heads seems to be capped at 6 for some reason still. Is there a technical reason this is not a configurable number of tool heads? Seems like an arbitrary value that was set at a time when there was "no way anyone needs more than six toolheads!"

This is only relevant if there's a need to pin a single physical material to a physical tool head in the toolN list. I'm obviously missing some important info about how all this works.

My assumption (and desire) is that I should be able to have N virtual extruders, each with it's own settings as if it was a real physical extruder, and I can assign these virtual extruders to bodies/groups-of-bodies, and that I can execute tool-change code (or VE change code, whatever it might be called) on a layer by layer basis by a body/group's appearance on that layer. There may well be several VE changes in a layer. Ideally also, there's a checkbox setting for 'This VE is only for support', or 'This VE is only for dense support' or 'This VE is only for infill'.


Thank You all,
Christopher
cbarry
Posts: 31
Joined: Thu Apr 18, 2019 1:52 pm

Re: multiple materials / multiple extruders / multiple objects

apparently it's not such a bizarre request after all... forces of nature may be pulling me away...
but I still need to experiment a lot more.
I would hate to go, but catch-up seems really hard at this stage.

we will see. meanwhile s3d needs to look around, see the exciting things happening in the world and get seriously crankin'.

Hopefully s3d has an answer, as there's a lot to like here, but it may not be s3d per se, but rather just me being in a rut and being loyal to them because I paid them money. I'm expecting that means 'better'. this may be an awakening... stay tuned.
Attachments
variable-num-extruders.png
SlickNickel
Posts: 8
Joined: Fri Oct 02, 2020 11:46 am

Re: multiple materials / multiple extruders / multiple objects

Greetings,
Sounds like you have a lot going on at one time, and it needs to be simplified.
1. S4 uses Repetier.
2. In any print, no matter how complicated or simple, ALL gcode is cloned from E0.
The ONLY settings that aren’t cloned is TEMP and (fans if individual per head).
All Extrusion Multiplier's are also cloned from E0
No matter what tool heads, extruders or multiple extruders, only one single line of gcode can be transmitted to all T’s/E’s

You only need import one model if in duplication mode. If a second 3rd… different part is required, you will have to manually enter the movements so they won’t collide with the parts already printed.
https://www.facebook.com/groups/3Dtecht ... 1291866112
cbarry
Posts: 31
Joined: Thu Apr 18, 2019 1:52 pm

Re: multiple materials / multiple extruders / multiple objects

relook at dates of posts there, you'll see they are 4 years apart. The previous post was also not answered. I revived the thread mostly as a joke, but apparently it was missed.

Anyway, long story short:
* need N:1 virtual extruders to physical extruders, where:
* VirtualExtruder := a complete set of configuration data used to describe a physical extruder.

At post-processing time, all VEs are modified to point to a real (say it's called E0), and a tool change event occurs between each.

Can S3D do this?
SlickNickel
Posts: 8
Joined: Fri Oct 02, 2020 11:46 am

Re: multiple materials / multiple extruders / multiple objects

Short answer is no.

You would have to do extensive gcode mods by hand using an editor. What you are proposing is possible, but only for a handful of g&m codes. Any Extrusion multiplier must be done and sliced per process and can’t be modified post process. You can edit and enter any virtual configuration to an actual Extruder, but it will only work if it is sliced with T0 as the initial tool because everything is cloned from that Tool. We ran into that many years ago, and have a note to make sure T0 is always in the command line before the first extrusion. If not, all hell breaks loose when using multi processes. We have never tried editing past T0 but I don’t see why not.

Return to “General Discussion and Tips”