Cura work-around
-
@jens55 Yeah, don't worry you basically won't need to know any programming.
Once you have the source code in a state where you can build it and get the program working. Then, you just have to ctrl+F in the entire codebase (ctrl+shift+f in visual studio) and look for something like "tool change."
If that doesn't turn up what you want, you can use a few different approaches. Good codebases will be fairly easy to understand, even if you don't know what the code is doing. The functions should be named in a descriptive manner ie: toolChange() or tool_initialize() or something. There will also be comments.
Once you find the place where this happens it will be as simple as replacing a few characters with blank spaces, or removing a line, or adding to it.
-
@jens55 are you using the DuetRRF plugin by any chance?
https://github.com/Kriechi/Cura-DuetRRFPluginShould be easy to add a few lines of code to filter/search/replace the gcode commands in the file before uploading it to your printer.
Here might be a good entry point if you know a little bit of Python: https://github.com/Kriechi/Cura-DuetRRFPlugin/blob/6ea133110c3b7e7f142f83247ca03a019676d27e/DuetRRFOutputDevice.py#L264 -
@fcwilt said in Cura work-around:
@jens55 said in Cura work-around:
@fcwilt, I found some more detail on the 'filaments' features and will look into that. Thanks !
Whoops - I just finished posting some info on how I do it.
Thanks, any input is appreciated and you have given me some more info I didn't have before!
-
@fcwilt, a couple (or more) quick questions on the filament system overall concept:
Suppose I have a model sliced with Cura and four different filaments defined PLA-Black, PLA-Red', PLA-White and PLA-Green.
Do I manually load all the filaments into all the tools or do I just load the first filament to heat up the tool?
How do I deal with the requirement to have no tool selected in order to home the printer? This is currently done in start.g .... I would have to unload the filament in order to allow homing which I suppose I can also do in start.g
Depending on how long the homing takes, couldn't the tool cool enough to no longer allow extrusion?What is the difference between me manually setting T0 temperature in DWC and me loading a filament - isn't it basically the same? In either case I wait til the nozzle is up to temperature, unload the filament or deselect the tool and then start the Cura print file.
I am not seeing the advantage here if all I do is set a temperature and not bother with load.g and unload.g. I suppose if you have more commands in the filament gcode files then it would make sense but for just the temperature?
Am I missing something?
-
@bot, I thought through your suggestion but decided that it isn't feasible for me. It's been probably a decade since I had a quick look at Visual C and am currently running Linux so I'd have to find some build environment under Linux. I am also anything but fluent in C or C++ or anything else for that matter. Last but not least, I would have to re-learn the whole mess every three or so months when a new version of Cura is released. Unfortunately at my age, my brain does not retain knowledge like this over 3 months of not touching things.
Thank you for your input though, it is an interesting idea and I wish I was able to implement it. -
@jens55 did you see my post above? no recompile needed, no difficult C knowledge either, just a bit of simple Python that should be easily google-able if you ever have seen a programming language.
Cura even has a built-in Search-Replace PostProcessing plugin script, though I'm not sure if it can access the very early setup commands.
-
@resam said in Cura work-around:
Cura even has a built-in Search-Replace PostProcessing plugin script, though I'm not sure if it can access the very early setup commands.
Yes it works for that.
Frederick
-
@jens55 on my toolchanger, i run all the prep stuff as part of start.g
So G32 etc,
Then who cares what tool cura picks as the printer is ready -
@resam, yes I did see your post but to be honest I don't know how the DuetRRF plugin (which I use) could be used to help. At first I thought you meant to tell me about the search and replace post processing plugin which I could probably use somehow but again I would have substantial difficulty trying to limit the search/replace to just the very few lines at the beginning of the Cura print code. I am no wizard with regular expressions so I would be looking for a single code block of multiple lines and replacing that. Since the block is likely to change based on slicer settings, it would probably be easier to just edit the code manually which is certainly doable but would be very annoying to do with every re-slice of the model.
It is something I want to try to see just what is involved with it but I am still trying to sort out the filament system and what it can do for me. -
@jay_s_uk said in Cura work-around:
@jens55 on my toolchanger, i run all the prep stuff as part of start.g
So G32 etc,
Then who cares what tool cura picks as the printer is readyDo you include anything in your start.g that Cura's code may override, such as a temperature setting?
Just curious.
Frederick
-
This post is deleted! -
@fcwilt On the toolchanger no. On my Delta, yes
-
-
@jay_s_uk said in Cura work-around:
@jens55 on my toolchanger, i run all the prep stuff as part of start.g
So G32 etc,
Then who cares what tool cura picks as the printer is readyI currently have a single G28 in my start.g.
Suppose I want to put in a command to heat the very first extruder that Cura calls. How is that possible? I can only see heating up all 4 tools to cover every possibility. If I choose 210C for the nozzle temperature I have PLA and PETG covered but will likely be too cold for ABS.
Would it be possible to post your start.g? Do you switch between different start.g versions based on the filament you are running? I am having difficulty envisioning just how this would be done so that you set it up once and then it just works after that. -
@jens55 this is what I have
T-1 if !move.axes[0].homed || !move.axes[1].homed|| !move.axes[2].homed ; If the printer hasn't been homed, home it M98 P"0:/sys/homeall.g" ; home y and x G32 G1 X0 Y0 G29 S1
Once I've homed, levelled and loaded my height map its pretty much over to cura to do what it likes
-
@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
-
@jay_s_uk, thanks ... so if I can compare that to what I have, the single G28, it is very similar. I have T-1 in my Cura start code, you test for un-homed conditions and I just blanket home. I don't bother with mesh bed probes.
There is no setting of any hot end temperatures so Cura will run just fine but at least the way I have things, there is no priming happening on the first tool and any subsequent tools are retrieved and then primed rather than primed and retrieved to wipe the nozzle tip clean.
Do you maybe have a separate nozzle wiping routine (pebble extruder maybe?) .... maybe that is a better way of approaching it rather than to utilize the standard wiping action that is part of the park/un-park action.
As I am thinking about this, this seems like it could take care of all the issues .... some more thinking is required.Where do you call for your wiping routines and what do you have in your wiping macro?
-
@jens55 I have a little steel brush mounted in front of the hotend so when it's picked up from the tool holder it's also wiped clean.
-
@jay_s_uk, but how is it cleaned if the tool is picked up when it is still cold? Do you prime the nozzles anywhere ?
-
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.