Cura work-around
-
Specifically, when Cura picks up the very first tool in the print file (Tn), it hasn't been heated yet so whatever is hanging on to the tip will stay on the tip. This isn't a problem in subsequent pickup and drop off routines.
-
@jay_s_uk, the other tools get primed in Tpostn.g where I first wait for the temperatures to reach the designated setting and then do a short extrusion and a short wait. That extrusion always ends up being done AFTER the tool is picked up and wiped ... so I wipe, extrude and then drag crap hanging off the nozzle into the print.
-
@fcwilt said in Cura work-around:
@jay_s_uk said in Cura work-around:
M98 P"0:/sys/homeall.g" ; home y and x
This is just a bit of information you may not have but it may be good to know.
G28 will invoke homeall.g as does your M98 command but there is a least one difference, G28 first marks all the axes as un-homed.
In some cases that might be important.
Frederick
That is an interesting tidbit and one that I am sure will bite me in the bum sooner or later. Hopefully I will recall this post when it does catch me !
-
@jens55 why not set default temperatures for the tools in start.g using G10 or M568 ? Then use M116 in the tpost.g file to wait for temperature before doing the purge.
-
@dc42, I already use M116 in the tpost.g files. The reason I am reluctant to set default temperatures is because those change. PLA and PETG could be covered with 210C but what about higher melting filaments?
I would have to change the defaults based on what material I am printing.
I am not saying it wouldn't work ... but I would end up having to mess with the defaults.
I would also have to set defaults for all 4 extruders even though I might just use one extruder .... and I would have three extruders sitting there cooking filament.
Unless I can somehow grab the data from the Cura print file about which extruders are used and at what temperatures, it doesn' really look like a good solution. -
@jens55 the other tools would not heat up if the print never selected them.
-
@dc42, hmmmm ....... I will need to try that out - would you just set standby temperatures?
-
@jens55 said in Cura work-around:
@dc42, hmmmm ....... I will need to try that out - would you just set standby temperatures?
No, just active temperatures, because you are only interested in heating the tool or tools that Cura selects.
-
@dc42, ok, I will give that a try. Thanks!
-
@jens55 said in Cura work-around:
The reason I am reluctant to set default temperatures is because those change. PLA and PETG could be covered with 210C but what about higher melting filaments?
That issue is one of the reasons for the approach that I use.
Frederick
-
OK so I am still screwing around with this and trying to find the best solution ..... with questionable luck
To recap one of the issues, Cura uses the T(n) command to change tools followed by a separate temperature command. Duet takes the T(n) command and runs the various tool changing routines. I had tried to issue an M116 in the tpost routine followed by a purge to prime the tool. Well since temperature had not been initially specified, the waiting doesn't happen and the purge doesn't happen but it would seem the purge happens at a later, less convenient time) after Cura has specified the temperature and it is reached.
Taking some of the earlier suggestions, I decided to try a post-process search and replace. I replaced T(n) with G10 P{extruder_nr} S{material_print_temperature}.
Cura uses the variables in curly brackets as place holders and when it generates the gcode file it replaces those values in the place holder with actual values. Alas, post processing happens AFTER Cura has generated the gcode file so even though I had found a way to trick Cura, Cura decided to barf on me instead.
I am back to having no clue on how to do this in an intelligent way that does not require me to interact with Cura on the gcode level as a 'user' .... all I want to do is to hit the 'slice' button and get correct code generated.
<sigh>Yes I tried setting default temperatures in start.g and that does work but I don't like that I have to change the settings for different filament. This is not a user friendly approach. Further, it would seem (please correct me if I am wrong !!!!) that I can not call a purge routine in tpost.g because the underlying gcode that caused tpost.g to run did not specify an extruder temperature but instead relies on the extruder having been turned on during start.g. Problem with that is that if the extruder is called for the first time, it is still cold causing the purge to fail at the commanded time and inserting a blob at a later time when the tool happens to have finished warming up.
I still haven't wrapped my mind around the whole filament system in DWC .... something still to do.
I find it odd that other people that are using Cura on tool changers have not run into that issue ...
Lastly, I have not yet tried to set up a separate purge station to use for all the tools - I don't like the concept of introducing the extra time and motion required rather than doing the purge as the tool is withdrawn from the parking position. This is something that I might be forced into but it's pretty much my least liked approach at the moment.
-
I figured it out! Using the search and Replace script
Use this as the search field:
;Generated with Cura_SteamEngine.* T[0-9]
and this as the replace field:
;Generated with Cura_SteamEngine
And ensure you have checked the box to use regular expresions.
It should work, even after cura updates, as long as the formatting of that generated by message stays the same.
(edit: you have to copy and paste the two lines above, so that cura properly recognizes the invisible newline character. Be careful that after you paste it into curea, there is an invisible newline character between
.*
andT0
)The T[0-9] will replace any tool number from 0-9. If you have more than 9, you'll have to make a regex that searches for more than one digit after T.
-
@bot, can you explain your thinking please? This looks to me like you are just deleting the T(0-9) field
Wouldn't that just kill the gfile as no tools are selected?
Colour me very confused ... -
@jens55 you include both lines from the first "search" field that I wrote up there. Copy and paste those two lines and put them in as the search field.
Then, it will only replace the one Tn command that comes immediately after the words
;Generated by...
-
@bot, I understand that .... but you haven't 'replaced' the T0 with anything. How will Cura handle a gcode file that has no tool selection commands ?
-
@jens55 you will put the tool selection commands in your start gcode for that extruder, in your printer settings in cura
You might have to get rid of those heating commands at the beginning, too. I don't use cura, so I don't know if those can be disabled or you have to rig up a search and replace for those as well.
-
@bot, I see two problems here .... 1) you have removed the tool selection command and so Cura doesn't know to run the start gcodes, 2) how do you get the temperatures that Cura wants to use into the replacement command if, against all odds, Cura somehow knows to run the tool start.g command ?
Still very confused ....
-
@jens55 Cura still puts the start gcodes for the extruders.
In the start gcode, you use those placeholders you spoke about. I'm sure there will be some curly bracket thing that gets replaced with the temperature, the tool number, etc. Is there not?
-
@bot, unfortunately those placeholders don't work in that instance. The placeholders are evaluated as the gcode file is generated but you changed the gcode file after the fact without re-running it through Cura. What you end up with is literally the text of the placeholder in the gcode file and not the value it stands for.
-
@jens55 I don't know where you are putting the placeholders, but surely they are meant to be used in the start gcode. Can you try this and see if it works? Where would the placeholders go? Why would they exist?