Roberttrama
Posts: 4
Joined: Fri Jan 13, 2017 3:40 pm

How to add filament change

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
Last edited by S3D-Jake on Wed Dec 04, 2019 1:55 pm, edited 1 time in total.
brian442
Posts: 1243
Joined: Mon Nov 28, 2016 5:35 am

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

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
Roberttrama
Posts: 4
Joined: Fri Jan 13, 2017 3:40 pm

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

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.
Roberttrama
Posts: 4
Joined: Fri Jan 13, 2017 3:40 pm

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

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
malebox
Posts: 5
Joined: Wed Jan 18, 2017 7:16 pm

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

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!
Roberttrama
Posts: 4
Joined: Fri Jan 13, 2017 3:40 pm

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

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
Bastiaandenennie
Posts: 3
Joined: Sun Mar 13, 2016 5:12 am

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

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.
CompoundCarl
Posts: 2005
Joined: Wed Aug 05, 2015 7:23 am

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

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.
arhi
Posts: 483
Joined: Thu Oct 06, 2016 5:13 pm

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

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
gcodestat integrates with Simplify3D and allow you to
Calculate print time accurately (acceleration, max speed, junction deviation all taken into consideration)
Embed M117 codes into G-Code
Upload your G-Code directly to Octoprint
open source and unlicence
carlsr888@cox.net
Posts: 3
Joined: Thu Mar 09, 2017 8:44 am

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

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.

Return to “Feature Requests”