Page 1 of 2

How to add filament change

Posted: Tue Jan 17, 2017 2:32 pm
by Roberttrama
I am running two process on one print that have different layer heights and heat requirements, i want to change the filament at the end of one process. is this possible to do?

ideally it would be a M600 command but i am not sure where to put it in the script

Re: multiple process for one print how to add filament chang

Posted: Wed Jan 18, 2017 4:46 am
by brian442
Sure, just find what layer you want to pause at (you can do this by switching the preview to mode), then place the code below in your "additional commands for post-processing" section on the Scripts tab. For example, let's say you wanted to add M600 at layer 50

{REPLACE "; layer 50," "M600\n; layer 50,"}

Then the M600 gets automatically inserted at the exact location without any manual effort :D

Re: multiple process for one print how to add filament chang

Posted: Wed Jan 18, 2017 1:22 pm
by Roberttrama
brian442 wrote:Sure, just find what layer you want to pause at (you can do this by switching the preview to mode), then place the code below in your "additional commands for post-processing" section on the Scripts tab. For example, let's say you wanted to add M600 at layer 50

{REPLACE "; layer 50," "M600\n; layer 50,"}

Then the M600 gets automatically inserted at the exact location without any manual effort :D

thanks for the info, first time I ran the print it went into the corner and just spun the extruder until it pulled the filament out.

Re: multiple process for one print how to add filament chang

Posted: Thu Jan 19, 2017 9:55 am
by Roberttrama
brian442 wrote:Sure, just find what layer you want to pause at (you can do this by switching the preview to mode), then place the code below in your "additional commands for post-processing" section on the Scripts tab. For example, let's say you wanted to add M600 at layer 50

{REPLACE "; layer 50," "M600\n; layer 50,"}

Then the M600 gets automatically inserted at the exact location without any manual effort :D

so when i run it with the M600 the printer just homes the x and y axis and spins the extruder at really high speed and then freezes the print, is there another gcode to pause the print

ideally i would pause the print raise 20mm in the z axis change filament and resume

Re: multiple process for one print how to add filament chang

Posted: Thu Jan 19, 2017 8:22 pm
by malebox
I use M0 for my filament changes. I'm glad I ran into this thread, because I was manually entering it into the GCODE. That said, my multiple process prints have been spitting out some very odd GCODE lately, but that may have to do more with the "Stop/Start at, <x> Height" I've used on the processes. Using the REPLACE code seems to be the better option.

Anyway, M0 will pause the print, put the extruder in X,Y 0,0, and react just like you manually paused it on the Controls/Monitor section on the AstroPrint local/cloud web GUI. Once you've swapped filament, just click "Continue Print" on the screen and watch her fly!

Also, and I'm not sure how much it helps, but I also turn the fans off for the final layer of the first process, and kick it back to 100% on the 2nd or 3rd layer of the second process. I've seen better adhesion to the first color that way. I'm sure others know more than I do, so you can do with that what you will.

Cheers!

Re: multiple process for one print how to add filament chang

Posted: Fri Jan 20, 2017 10:39 am
by Roberttrama
malebox wrote:I use M0 for my filament changes. I'm glad I ran into this thread, because I was manually entering it into the GCODE. That said, my multiple process prints have been spitting out some very odd GCODE lately, but that may have to do more with the "Stop/Start at, <x> Height" I've used on the processes. Using the REPLACE code seems to be the better option.

Anyway, M0 will pause the print, put the extruder in X,Y 0,0, and react just like you manually paused it on the Controls/Monitor section on the AstroPrint local/cloud web GUI. Once you've swapped filament, just click "Continue Print" on the screen and watch her fly!

Also, and I'm not sure how much it helps, but I also turn the fans off for the final layer of the first process, and kick it back to 100% on the 2nd or 3rd layer of the second process. I've seen better adhesion to the first color that way. I'm sure others know more than I do, so you can do with that what you will.

Cheers!

thanks for that info, i will try the M0 next

Re: multiple process for one print how to add filament chang

Posted: Wed Feb 08, 2017 8:41 am
by Bastiaandenennie
I have a question, when i add the {REPLACE "; layer 5" "M600\n; layer 5"} it just continues printing.
Is there something i do wrong? Hope someone can help me with this.

Re: multiple process for one print how to add filament chang

Posted: Thu Feb 09, 2017 8:25 am
by CompoundCarl
Well, does your printer's firmware support the M600 command? If you have a machine that uses x3g files, then it definitely won't support that and you have to use different commands. There's many more threads on the forum about what command to use.

Re: multiple process for one print how to add filament chang

Posted: Thu Feb 09, 2017 10:54 am
by arhi
different printers support different commands for pause ... "players" too, so if you are using for e.g. octoprint to send g-code to the printer M0 will be handled by the octoprint .. if you for e.g. have on the other side the smoothieware you want to send "suspend" or "m600" *before* you send M0 and when you are done with your "pause" you then need to send "M601" or "resume" before you tell octoprint to resume (by clicking play).

What I'd like is to return to the OP's question, there are multiple processes and between processes one want to pause to do whatever (push in a trapped nut, switch filament, pour liquid plastic into a prepared hole...)... using the REPLACE thingy in post processing script helps but it's a huge pita :( if I change layer height of the process I then need to go recalculate where I want the stop and put it in the postprocessing ... if I change *other* process it can still hurt me so this REPLACE thingy don't work in real life :( when you use multi processes, especially if you use them to their full potential. It's a crouch that kinda works if you have single process, and it's a bad crouch, hard to use, very imprecise :(

Now, if we look at scripts there are "starting script", "tool change script" and "ending script". Unfortunately "starting script" is used not for each process but only for the "first" process, also the "ending script" works only for the very end of the output of whole script so only for the "last" process. If S3D would use the "starting script" and "ending script" as something that's prepended and appended to a process (as one would expect) there would be easy solution to this question. Maybe in future, who knows, they add this.

Now the tool change script, if it not in the "first" process, it's not even in the header of the gcode :( (or maybe that was because I have no tool changes and only one tool defined) ... anyhow probably one could set process1 to run with tool0 and process2 to run with tool1 and somehow tell s3d that both tool0 and tool1 are the same extruder0 and then use the "tool change script" to insert the g-code but I didn't manage to get that going after few min of playing with it :( ..

It is IMO a serious feature missing in s3d and "replace" workaround is not nearly covering the requirements

Re: multiple process for one print how to add filament chang

Posted: Thu Mar 09, 2017 9:00 am
Create the code and then open it using Note pad. Then do a find lay " Z= 5 or what ever height you want the change. " Then add M600 to the code. Make sure you check to see if your printer uses the M600 command. This command will tell the printer to change filament. Then save the file and open it in Simplfy3d and run it or save to SD card how ever you print.