Notifications
Clear all

Thin Wall Confusion  

  RSS
Mike
 Mike
(@mike-27)
New Member
Thin Wall Confusion

TLDR; What is the correct line thickness for 0.2 mm line height and 0.4 mm nozzle?   Why does infill settings affect thin wall perimeters?  Why doesn't Prusaslicer make odd number of perimeter lines to get desired model wall thickness (3 perimeters is 6 lines for shell thickness, ie model wall total thickness is 2mm, there should be 5 lines.)  What exactly does the "Detect thin walls" option do (parts where two extrusions wouldn't fit and it will collapse to a single trace)?

I'm working on a filament dehydrator.  The food dehydrator I'm using is a Japanese model, the trays are decent and I'd like to keep them intact.  Therefore, I'm modeling my own tray that will accommodate the filament spool.  I intend on using one of the trays (which the spool will rest on) and the cover that came with the food dehydrator.  I plan to print a vertical wall that will connect the bottom tray and the cover.  I modeled it based on one of the trays.  The tray perimeter is not a circular shape, and I have to use a bezier curve to match the shape.  I have to print the wall in two parts and will either join the parts with hardware, or if I can get a tongue and groove or lap joint that fits well (.075 - .1mm tolerance seems to join well), I may end up gluing the two halves together.  I plan to print the wall vertically along the z-axis, since there are no real forces acting on the object other than a small downward compression force.  I'm currently test printing to ensure that the curvature matches the dehydrator, when I ran into confusion regarding thin walls. 

My test model in blender is quite simple.  Attached a zip file wall-test containing the blend file and STL.  4 vertices forming a single face, 16mm tall x 1mm wide.  It has the following modifiers in order:

1.  Array - Fit to the curve to follow

2. Curve - The curve for the array of objects to follow  (at this point the object will appear as a curved line with vertical lines 1mm apart).

3. Mirror - Along Y so I only had to model 1/4 of the actual tray wall.  (Result at this point is a curved, segmented line, for the right half of the dryer wall.)

4. Solidify - To build depth, set to 2.08 mm thick.  This is where I have some confusion, detailed below.  The Even Thickness option is enabled.

All modifiers that have vertex merging options are enabled, and nearby vertexes are merged, resulting in many small trapezoids (when viewed from top) following the curve.

Export the object as STL and open in Prusaslicer.

The printer is the i3 MK3S, it has a .4mm nozzle.  I wanted a wall thickness of 2mm +/- .25mm, therefore that should be 5 lines at .41mm line thickness at .2mm line height (assuming that is the correct line thickness to aim for).

I sliced and printed with 0 infill since it should only be perimeter walls.  I'm doing part fitment prints in PLA, but will eventually print this with clear PETG.  Shrinkage has been pretty close for PLA and PETG so sizing in PLA should be ok, may end up doing a check print in PETG to ensure things fit, before doing the very tall print. 

After the first layer, the printer started retracting and traveling all over the place, leaving mounds of plastic near all the retractions, and if this was PETG there would be strings everywhere. 

I was surprised by this and started looking at what the slicer was doing.  Turns out it was leaving small gaps at the center of the wall (infill was set to 0%).  The following screenshot has infill set to 20% and the small gaps are filled with tiny small white lines (very hard to see in the screenshot).  The result with infill on would have been just as bad, when after printing the perimeter walls, the extruder will move all over the place filling this infill.

At this point I started looking around this forum to see if I can figure out why it wasn't just making 5 curved lines for each layer.  Here I found people talking about "Detect Thin Walls" option.   Since the print was still going, I started looking at what the slicer was doing with this option on and off.  If I turn the option on, and set infill to 0%, there is a gap in the middle.

I would have expected there to be 5 lines at this point, not an empty space.  I have the perimeters set to 3, in the print settings, for a max of 6 lines on this thin wall object.

If I enabled infill, then prusaslicer adds the 5th perimeter line.   It seems any non-zero value will cause the line to appear between the two perimeter walls.

Here are the settings for the above screeenshot:

Prusaslicer changes a text field after tuning parameters, it goes something like this:

"Recommended object thin wall thickness for layer height 0.20 and 2 lines: ..."

With "Detect thin walls" enabled, it includes odd number of perimeter lines as well. The strange thing is the line widths for the varying number of perimeter lines.  I calculated the average line width in parenthesis.

2 lines:  0.86mm  (0.43 mm per line)

3 lines: 1.26mm (0.42 mm per line)

4 lines: 1.67mm (0.4175 mm per line)

5 lines: 2.08mm (0.416 mm per line)

6 lines: 2.49mm (0.415 mm per line)

With Detect thin walls disabled, the text field changes and only shows even number of perimeter lines for object modeling recommendations, with the same values as above.

So, I'm confused as to why the line with changes based on the number of perimeters it produces.  This is also a pain when modeling, since I can't model towards a multiple of a unit line width like I do with the unit line height of 0.20 mm.

I jumped over to Cura to see how it sliced this model.  Without any changes to my settings, using a line width of .41mm which is what I expected for .40mm nozzle, it produced a 5 line thick wall.  The results are identical regardless of infill settings, so the thin wall and thicker (infilled) portions are independent of each other and infill settings will not mess up the thin wall portions of a model. 

I'm trying to make my models for specific print settings, including line height (0.1, 0.2, 0.3mm etc) and a line width, but when I think I know what the expected line width should be, I see something different.   For example, Cura uses 0.4mm for 0.4mm nozzle for the default line width, and actually recommends going less than 0.4mm for better print quality. 

Software Versions:

i3 MK3S: 3.7.2-2363

PrusaSlicer: 2.0.0 Linux 64 bit

Cura: 4.1.0

Blender: 2.79b

 

 

 

 

Best Answer by Neophyl:

What are your extrusion widths set to under print settings advanced ?  On some print profiles they are usually between 0.45 and 0.42 mm wide. Even though the nozzle is 0.4 does not mean that your extrusion width is due to these settings. Printing a single wall cube and measuring it with callipers then adjusting is often done to tweak the wall thicknesses. 

Posted : 31/07/2019 6:40 am
Neophyl
(@neophyl)
Illustrious Member
RE: Thin Wall Confusion

What are your extrusion widths set to under print settings advanced ?  On some print profiles they are usually between 0.45 and 0.42 mm wide. Even though the nozzle is 0.4 does not mean that your extrusion width is due to these settings. Printing a single wall cube and measuring it with callipers then adjusting is often done to tweak the wall thicknesses. 

Posted : 31/07/2019 5:05 pm
--
 --
(@)
Illustrious Member
RE: Thin Wall Confusion

Interesting analysis, but seems based on some interesting but probably incorrect assumptions.  Your part has a 2.000 mm wall, and you set extrusion width to 0.45 with 3 perimeters (these are user choices): the slicer can't do what is asked.  So it tries to work around the 3 (6 track * 0.45 mm) perimeter issue. The options to do this compensation are varied.  The obvious one is use two perimeters (4 * 0.45 mm) and then gap fill the remaining space (2.00 mm - 1.90 mm = 0.1 mm fill). Which is what the screen shots appear to show.  Rendering extrudate scale in Prusa Slicer preview is a bit inaccurate, so the gap fill may not be rendered correctly. You have to verify what is actually being sliced in the gcode; and I don't see that you've done that.  

What happens if you set Prusa Slicer to the same USER settings Cura is using? Or Cura to the same USER settings Prusa Slicer defaults to?

In the end, if Cura gives you results you prefer, seems like a no brainer decision which product to use.

 

 

 

This post was modified 5 years ago by --
Posted : 31/07/2019 6:57 pm
Mike
 Mike
(@mike-27)
New Member
Topic starter answered:
RE: Thin Wall Confusion
Posted by: Neophyl

What are your extrusion widths set to under print settings advanced ?  On some print profiles they are usually between 0.45 and 0.42 mm wide. Even though the nozzle is 0.4 does not mean that your extrusion width is due to these settings. Printing a single wall cube and measuring it with callipers then adjusting is often done to tweak the wall thicknesses. 

Aha! Thank you.  I had the Expert settings mode enabled to see all the tuning parameters, but I never even looked at that Advanced section in Print Settings.  I should have pointed out from the beginning that I had the printer for just over a week now, and got 4d 17h total printing time in.  

Yes they're at 0.45mm with first layer at 0.42mm. 

I've printed several models that test various tolerances.  I make the models in blender so I know exactly what the radius/dimensions are that I use, and then the variety of holes and pegs, blocks, etc, with additional tolerance added in 0.25mm intervals.  I haven't thought of printing a single wall cube.  Should this be a 1cm cube with single wall on all faces?

I found that when I print with different filaments, I need to tune the filament extrusion multiplier to get good XY adhesion especially on the first layer.  Thanks for pointing out the Extrusion Width settings.  I'll tune these parameters next!

Posted : 01/08/2019 4:22 am
--
 --
(@)
Illustrious Member
RE: Thin Wall Confusion

There's a filament diameter adjustment - so you don't need to tweak extrusion multiplier. Just measure the filament, input 1.72 if that's what the filament actually is. Slicer does the math.

As for a test cube, these are printed vase mode and large enough to get a caliper or micrometer in to measure the wall.

Posted : 01/08/2019 4:37 am
Mike
 Mike
(@mike-27)
New Member
Topic starter answered:
RE: Thin Wall Confusion
Posted by: Tim

Interesting analysis, but seems based on some interesting but probably incorrect assumptions.  Your part has a 2.000 mm wall, and you set extrusion width to 0.45 with 3 perimeters (these are user choices): the slicer can't do what is asked.  So it tries to work around the 3 (6 track * 0.45 mm) perimeter issue. The options to do this compensation are varied.  The obvious one is use two perimeters (4 * 0.45 mm) and then gap fill the remaining space (2.00 mm - 1.90 mm = 0.1 mm fill). Which is what the screen shots appear to show.  Rendering extrudate scale in Prusa Slicer preview is a bit inaccurate, so the gap fill may not be rendered correctly. You have to verify what is actually being sliced in the gcode; and I don't see that you've done that.  

What happens if you set Prusa Slicer to the same USER settings Cura is using? Or Cura to the same USER settings Prusa Slicer defaults to?

In the end, if Cura gives you results you prefer, seems like a no brainer decision which product to use.

Yes, incorrect assumptions.   I was trying to derive what the extrusion widths were based on the "Recommended object thin wall thickness..." message.  Which was particularly confusing since, the average line with varied by number of perimeter lines, which I still don't understand why that would change, especially after looking at the Extrusion Width settings now.  They're all 0.45mm except first layer of 0.42mm.  So, how a 6 perimeter shell works out to an average line width of 0.415mm, is still a mystery.  I will tune these settings, and compare them with Cura. 

Since I just got the printer, and was impressed with all the printed parts that were precise and fit well, especially all the parts that made up the extruder axis.  I figured that Prusa would likely be using Prusa slicer to generate the the gcode for those parts, so it should work well for me too.  I also expected with all the experience gained at Prusa with their farm and lab, that Prusa slicer settings would be set with the best default values.  TBH, I have yet to have a failed print, due to the slicer or printer failing.  The few failures where all my fault, like leaving the USB cable connected and then turning my PC on in the morning, USB port reset codes rebooted the printer while printing.

Regarding Cura, I wanted to see what it was like and downloaded the Prusa made Cura profiles as a starting point there.  Interesting that the MK3S defaults in Cura use a 0.41mm extrusion width, while PrusaSlicer uses 0.45mm.  I feel more confident using Prusa slicer, though the tree supports and ejecting the SD card directly from Cura are nice features.  I'd like to build up a proficiency with Prusa Slicer, and using Cura only as a second opinion at this point.

I haven't taken a look at the generated gcode.  I'm thinking that would be like analyzing the assembler output produced by a C compiler, but it doesn't appear to be that bad. 

Posted : 01/08/2019 4:44 am
bobstro
(@bobstro)
Illustrious Member
RE: Thin Wall Confusion
Posted by: Mike Harris
[...] I haven't taken a look at the generated gcode.  I'm thinking that would be like analyzing the assembler output produced by a C compiler, but it doesn't appear to be that bad. 

If you enable verbose comments, PrusaSlicer's gcode is a bit like commented assembler source code. 🙂 Gcode itself is pretty rudimentary. No variables. No conditionals or branching. Anything smart happens in the slicer. At least with Marlin.

I've found that once I mastered PrusaSlicer/Slic3r's settings, translating those to other slicers is fairly straightforward. 

My notes and disclaimers on 3D printing

and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan

Posted : 01/08/2019 6:05 am
--
 --
(@)
Illustrious Member
RE: Thin Wall Confusion

*c_type^=^^jwhat*++

wait, I forgot the array of pointers I was trying to indirectly reference...

This post was modified 5 years ago by --
Posted : 01/08/2019 6:16 pm
MrK
 MrK
(@mrk)
New Member
RE: Thin Wall Confusion

@mikenao

If you enable thin wall detection I would expect that PrusaSlicer tries to get to the wanted total width as well as possible by changing the width of the various walls (perhaps excluding the outer one?).  And I guess it might then also overlap the different walls slightly to ensure the total amount of filament is sufficient and well enough stuck together.  That could be an explanation as to why you measure different width in that case.

The above is just an assumption / idea of me.  I'm not saying this actually is what PrusaSlicer would do, but I could imagine this type of idea plays a role to explain your findings.

Posted : 15/01/2021 8:52 am
Share: