Jump to content

Feature Request - Variable Line Width


Madau3D

Recommended Posts

Posted · Feature Request - Variable Line Width

I sent this email to Cura support but I'm also posting it here, hoping this generates some interest and gains consideration for adopting this feature.

 

Quote
I've been using cura for about a year now and I've been annoyed by a slicing / tool-path situation.  When printing thin walls that don't divide neatly by the selected nozzle diameter or line width, the slicer generates g-code where the nozzle makes a tiny zig-zag movement to fill that space.  This significantly increases print time and is very inefficient use of machine run time.  If it's really bad, I'll either modify my design to get a wall thickness that the machine can print in even lines, or fudge the line width in cura (or both) until the print time comes down.  This can reduce run time by hours depending on the model.
 
What I suggest is create a variable line width feature.  When enabled, the user could specify a min/max percentage of nozzle diameter, and the slicer could then decide what line width would best fill an area.  This would make setting perimeter thickness more intuitive as well.  If I am printing with a 0.6mm nozzle, but I want a 2mm wall thickness, currently the slicer has to chose to make the wall thinner (3 perimeters) or thicker (4 perimeters) but the user would not get a 2mm wall in either case.  With variable line thickness the slicer could decide to print a 0.67-68mm line width (I realize the wall thickness isn't an exact multiple of the line thickness as there is some overlap between the lines in a layer) and achieve the specified wall thickness.
 
This could be taken a step further, and imagine in the case of printing a narrow, acute angle feature.  The slicer could taper the line width as the the profile narrows to achieve a cleaner part.  There also could be settings for the line width range of inner walls, outer walls, infill and supports- top and bottom skin layers, etc...  Thinner line widths for supports and infill could be of great benefit for reducing filament consumption and possibly making supports easier to remove.
 
I've never tried printing a line width narrower than my nozzle diameter, but I regularly print lines at 125% of nozzle diameter with great results.  With this feature, one could specify, as a hypothetical example, a line width in the range of 95% to 125% of nozzle diameter.

 

  • Like 1
Link to post
Share on other sites

Posted · Feature Request - Variable Line Width

So I'm pretty sure cura has this feature but I don't understand it.  But to enable the feature that you are asking about:

 

Quote

Set Minimum Wall Flow to something like 50, combing to no skin and max comb distance without retract to 10. 

 

Actually you probably only have to do the first thing: minimum wall flow to 50.

 

Again - I totally do not understand this feature so I could be wrong but 2 people seem to agree this fixes thin wall issues.

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width

    Hello @Madau3D, my version of Cura provides a different implementation of the thin wall printing and wall gap filling and it can make a better job of tapering thin walls and gaps. You can install it alongside the normal Ultimaker Cura. If you wish to try it (Linux and Windows only, I'm afraid), please take a look at https://www.dropbox.com/sh/s43vqzmi4d2bqe2/AAADdYdSu9iwcKa0Knqgurm4a?dl=0

     

    Screenshot_2019-06-23_07-31-12.thumb.png.b974932b546acf608aec18e16766118b.png

     

    This part has a tapered thin wall and tapered filled gaps...

     

    Screenshot_2019-06-23_07-30-54.thumb.png.f875b39323f9db195c6489ca9c12bf3f.png

    • Like 1
    Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width
    On 6/22/2019 at 11:32 PM, burtoogle said:

    Hello @Madau3D, my version of Cura provides a different implementation of the thin wall printing and wall gap filling and it can make a better job of tapering thin walls and gaps. You can install it alongside the normal Ultimaker Cura. If you wish to try it (Linux and Windows only, I'm afraid), please take a look at https://www.dropbox.com/sh/s43vqzmi4d2bqe2/AAADdYdSu9iwcKa0Knqgurm4a?dl=0

     

    Screenshot_2019-06-23_07-31-12.thumb.png.b974932b546acf608aec18e16766118b.png

     

    This part has a tapered thin wall and tapered filled gaps...

     

    Screenshot_2019-06-23_07-30-54.thumb.png.f875b39323f9db195c6489ca9c12bf3f.png

    Holy crap that is game changing right there.  Are they any options in the menus to control the behavior?  At fist glance it doesn't look any different than regular Cura.  Options to specify different line widths for specific line types would still be useful- i.e. print infil and supports thinner than top and bottom surfaces, or walls, etc..

     

    I sliced my fan duct design which has a lot of thin tapering features and the slice is so much cleaner.  I'll have to mess around with it some more and try printing a couple of parts.

     

    I've attached some screenshots with the specific areas of interest circled.  Here is the thing if anyone wants to check it out for themselves. 

    https://www.thingiverse.com/thing:3594484

     

    2019-06-24 11_26_21-Ultimaker Cura.png

    2019-06-24 11_25_20-Ultimaker Cura.png

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width
    2 hours ago, Madau3D said:

    Are they any options in the menus to control the behavior?  At fist glance it doesn't look any different than regular Cura. 

     

    There are no options to control the behaviour apart from the min area of gaps to be filled (gaps smaller than this will be left unfilled).

     

    Screenshot_2019-06-24_21-46-25.png.1cda4c1cdca68828ba757c259fb3abae.png

     

    2 hours ago, Madau3D said:

    Options to specify different line widths for specific line types would still be useful- i.e. print infil and supports thinner than top and bottom surfaces, or walls, etc.. 

     

    Of course, you still have the normal settings for specifying the line widths for various features:

    Screenshot_2019-06-24_21-49-27.png.1c8a3b555a1ec8af0dcadf4d2c678c39.png

     

    PS - looking at your image, I should think that 10% gyroid infill with the connect lines (zig-zaggify) option enabled would work well.

     

     

    • Like 1
    Link to post
    Share on other sites

    Posted (edited) · Feature Request - Variable Line Width
    7 minutes ago, burtoogle said:

     

    There are no options to control the behaviour apart from the min area of gaps to be filled (gaps smaller than this will be left unfilled).

     

    Screenshot_2019-06-24_21-46-25.png.1cda4c1cdca68828ba757c259fb3abae.png

     

     

    Of course, you still have the normal settings for specifying the line widths for various features:

    Screenshot_2019-06-24_21-49-27.png.1c8a3b555a1ec8af0dcadf4d2c678c39.png

     

    PS - looking at your image, I should think that 10% gyroid infill with the connect lines (zig-zaggify) option enabled would work well.

     

     

    I feel stupid - I never looked into the hidden commands for the different line width for different walls...

     

    thanks...

     

    p.s.  I usually have connect infill lines enabled, regardless of infill pattern, because it reduces retractions a lot.

    Edited by Madau3D
  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width
    8 minutes ago, Madau3D said:

    p.s.  I usually have connect infill lines enabled, regardless of infill pattern, because it reduces retractions a lot.

     

    Me too! It also has an added benefit when you have a skin that finishes on top of infill as the skin edge can butt up against the infill connections like you see here...

     

    Screenshot_2019-06-24_22-11-57.thumb.png.74772404802329cf3f5fcaa7d12d6ec1.png

    • Like 1
    Link to post
    Share on other sites

    Posted (edited) · Feature Request - Variable Line Width

    Bravo Burtoogle.
    Keep up the good work. Will install on my Linux mint laptop tomorrow.

     

    Are you going to be the person to implement non-planar slicing in Cura?

     

     

     

    Edited by uloxer
  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width
    1 hour ago, uloxer said:

    Bravo Burtoogle.
    Keep up the good work. Will install on my Linux mint laptop tomorrow.

     

    Are you going to be the person to implement non-planar slicing in Cura?

     

     

     

     

    Thanks.

     

    Sorry, I won't be implementing the non-planar slicing feature because I think it would be a lot of effort for rather dubious benefit. In my mind it has novelty value but little else. If you want to print non-planar, you need a printer with more degrees of freedom so the nozzle can always been normal to the surface being printed.

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width

    FYI - burtoogle doesn't work for Ultimaker. 

     

    non-planar printing only works on slopes up to around 30 degrees.  The demos all show parts that don't exceed this on their top surface.  So it's very limited.  Basically it will the top bit of a sphere and that's it. I would expect it improves the top of 1 design in 100 but it's hard to say.

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width

    Hi Burtoogle,

     

    How does your variable line width cope with Linear Advance?

     

    Supposedly Cura needs the following commands added to the start gcode before it will work:

    M900 K{material_linear_advance_factor}

    M900 W{line_width} H{layer_height} D{material_diameter}

     

    As line width is set at the start , does that mean it's best to  just avoid using linear advance entirely?

     

    Thanks

     

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width

    Hello @uloxer. I'm afraid I can't answer your question as the printers I use don't have Linear Advance. They do have what I think is a similar feature (it's called pressure advance) but I don't use that either!

     

    I think that the only way to find out is by experiment. Good luck!

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width

    I am glad that I was pointed in the direction of this post, it has helped out a lot with a current project. I am wondering if the great developments made by @burtoogle in this branch of Cura will be implemented in a future version of the main trunk of the software by the Ultimaker team?

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width
    8 hours ago, 64Pacific said:

    I am glad that I was pointed in the direction of this post, it has helped out a lot with a current project. I am wondering if the great developments made by @burtoogle in this branch of Cura will be implemented in a future version of the main trunk of the software by the Ultimaker team?

     

    I'm glad to have helped. My implementation appears to work well a lot of the time but I still regard it as "experimental" and I haven't yet submitted it to UM for consideration. I don't know what Ultimaker's plans are with regard to improving their thin wall and gap filling implementation. Maybe they would look at what I have done or perhaps they would do something else completely new.

  • Link to post
    Share on other sites

    Posted (edited) · Feature Request - Variable Line Width
    On 9/18/2019 at 2:25 AM, uloxer said:

    Hi Burtoogle,

     

    How does your variable line width cope with Linear Advance?

     

    Supposedly Cura needs the following commands added to the start gcode before it will work:

    M900 K{material_linear_advance_factor}

    M900 W{line_width} H{layer_height} D{material_diameter}

     

    As line width is set at the start , does that mean it's best to  just avoid using linear advance entirely?

     

    Thanks

     

     

    Where to you find those macros {line_width}, {layer_height}, etc... Is there a list somewhere?

    Edited by thrown
  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width
    On 9/27/2019 at 12:30 AM, burtoogle said:

     

    I'm glad to have helped. My implementation appears to work well a lot of the time but I still regard it as "experimental" and I haven't yet submitted it to UM for consideration. I don't know what Ultimaker's plans are with regard to improving their thin wall and gap filling implementation. Maybe they would look at what I have done or perhaps they would do something else completely new.

     

    I'd really like to see this implemented in the Cura.  I'll give yours a try, but man this is such a powerful feature to let the inner wall widths change and taper off as needed.   I'm planning on giving yours a try, but please submit it to Ultimaker when you are comfortable with it because I'd really like to see this.

     

    I really love the adaptive layer heights, this would really go well with that.

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width
    3 hours ago, BustedChain said:

     I'm planning on giving yours a try, but please submit it to Ultimaker when you are comfortable with it because I'd really like to see this.

     

    UM are working on their own solution which should see the light of day soon...

  • Link to post
    Share on other sites

    Posted · Feature Request - Variable Line Width
    On 5/6/2020 at 12:38 AM, burtoogle said:

     

    UM are working on their own solution which should see the light of day soon...

     

    Soon in Cura time, could still take a while. 

     

    I've been using the solution posted above and am very impressed with it over the last month.  I've been able to make some really strong / flexible frames that are very well laminated together with minimal surface finish problems in PETG using the version above.

     

     I hope that whatever the final solution is, that they use terminology which overlaps with the terminology of adaptive layer height.     I think Adaptive Line Width is a very easy to visualize thing, even if the inputs are a little bit different because of how they choose to allow the slicer to pick the variations. 

     

    Ultimately, I'd love it if I could tell the slicer a desired line width, a minimum line width, and a maximum line width.  (It would be nice if I could just tell the slicer my nozzle size and then I could tell it that I want line widths that are anywhere from 80% to 150% of my nozzle width with a desired line width.)   The idea is that the slicer ought to be able to pick a line width that decreases the gaps and improves the number of lines / lay of the lines on any given layer.   There would be room for advanced options that try to maintain an overall outer wall (or specified number of walls) line width that is uniform as you move through z layers.  Say for example you want 2 outer walls to have uniform line width on the outer shell, but any other walls can be varied up or down to the best fit within limits.

     

     

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • Introducing Universal Cura Projects in the UltiMaker Cura 5.7 beta
        Strap in for the first Cura release of 2024! This 5.7 beta release brings new material profiles as well as cloud printing for Method series printers, and introduces a powerful new way of sharing print settings using printer-agnostic project files! Also, if you want to download the cute dinosaur card holder featured below, it was specially designed for this release and can be found on Thingiverse! 
          • Like
        • 10 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...