Slicers to support relative coordinates?



  • Found a confusing wiki page: https://duet3d.com/wiki/Slicing_recommendations

    MatterControl and Cura don't support relative coordinates: https://www.duet3d.com/forum/thread.php?id=953#p9446
    So the only free slicer to support it is Slic3r??

    This question is important to me, because I need accurate prints.



  • So what is the question exactly? Duet can support either relative or absolute coordinates as long as you tell it what to expect. Slic3R does indeed support relative and the later Prusa editions are fine IMO.


  • administrators

    Cura works correctly but you must put M82 in the start gcode or in your config so the Duet knows the extrusion amounts will be in absolute, not relative co-ordinates.



  • Sorry for not making myself clear.
    According to the wiki page printing in relative coordinates is more accurate, as errors don't accumulate. So using M82 is not recommended I suppose?

    Is this effect even recognizable compared to absolute positioning EDIT: extrusion?



  • @Nokian it only effects the extruder and not positional moves


  • administrators

    Nokian - that is theoretically true, and there are other advantages on machines with more than one extruder or using hardware retract where absolute extruder coordinates do not work as well. That said I use Cura quite a bit with great success. Just remember the M82!



  • The next release of Cura should support relative extrusion. I just have to get the mods approved by the Cura devs.
    As mentioned above, the current solution is to add an M82 into your start script to request absolute extrusion mode.
    Note that when relative extrusion becomes available in Cura, the scripts (start, end, start/stop extruder) will be prefixed with an M82 so that the extrusion mode is always absolute when the scripts are entered irrespective of the extrusion mode chosen for the print. This is being done so that the scripts will not need altering if the extrusion mode is changed between relative and absolute and also it maintains consistency with the old (always absolute extrusion) behaviour.


  • administrators

    Ahh good to know. Will you be able to override the behaviour of scripts always being absolute by deleting the M82? Or putting M83 at the start of the script?



  • Yes, just start the script with an M83. After the script has been included, Cura will force the extrusion mode back to relative before it outputs any extrusions (assuming that relative extrusion mode has been enabled in the Cura settings).

    So the bottom line is that if you select relative extrusion mode then all extrusions will be done in that mode except those that are done in a (start/end/extruder change) script which, by default, will always be entered in absolute mode but (as mentioned above), you can just change to relative extrusion mode by adding an M83 at the top of your script. I hope this makes sense!


  • administrators

    Absolutely, thanks!


  • administrators

    Will Cura also send G92 E0 before the scripts? Maybe it does that anyway.



  • Will Cura also send G92 E0 before the scripts? Maybe it does that anyway.

    I think you will get those if absolute extrusion mode is in use but not if relative mode is in use. Is that OK?


  • administrators

    I'm thinking that a script that is written for absolute extrusion mode must either always have a G92 E0 in it before any extrusion command, or the slicer must always generate a G92 E0 command before invoking a script.

    Even if the slicer generates absolute extrusion commands, IMO it would make more sense for extrusion in scripts to use relative extrusion, so that scripts work independently of the context in which they are called. But I wouldn't expect a backwards-breaking change like that to be made.

    I don't think generating M82 before invoking scripts is a good idea. It will make Cura behave differently from every other slicer when relative extrusion is selected.



  • @dc42:

    I'm thinking that a script that is written for absolute extrusion mode must either always have a G92 E0 in it before any extrusion command, or the slicer must always generate a G92 E0 command before invoking a script.

    Even if the slicer generates absolute extrusion commands, IMO it would make more sense for extrusion in scripts to use relative extrusion, so that scripts work independently of the context in which they are called. But I wouldn't expect a backwards-breaking change like that to be made.

    I don't think generating M82 before invoking scripts is a good idea. It will make Cura behave differently from every other slicer when relative extrusion is selected.

    Well, I can tell the Cura devs that and see what they say, it wasn't my idea to force absolute mode before the scripts are output.



  • OK, so the good news is that the relative extrusion mode support has been merged into the Cura master branch and it therefore should be in the next release. The quirky news is that (as mentioned above), the extrusion mode will be set to absolute before any gcode script is output and the the extrusion mode will be set back to relative after the script (if relative mode has been enabled). That's how they want it to behave which does seem a bit daft but I don't feel strongly enough about this to kick up a fuss. If it turns out that it's unworkable for some reason we can undoubtedly revisit this area in the future.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.