Torture Test Quality Check

I’ve been wondering why the columns on the Torture Test printed so badly for all of the slicers when I’ve seen them all do better than that before.  I tried a single column with Slic3r 096 which was one of the worst for that section.  I also wondered if there might be a problem due to the model coming from Tinkercad, so I printed one column from Tinkercad, and another from Alibre-

Tinker vs AlibreThey both look pretty good, aside from where I gouged them with my scraper.  My concern with Tinkercad was that STLs generated there are typically fairly low resolution.  You can make out the increased faceting in the print but it didn’t cause a problem otherwise.  I thought there might be a difference due to the bad columns being part of a larger print.  I cut out the rest of the model and tried a print of only the column section.

Cura ColumnsIt’s a little better.  The misaligned layers seem to be gone, leaving only blobbing and artifacts related to the start and end points of the external perimeters. I had used Tinkercad’s STL import feature to convert the original torture STL to solid, and easily add other elements.  There is some decimation that happens in the process and who knows what else, so I decided to compare meshes.  This is the original-

Mesh OriginalThose columns are pretty high res, but completely uniform.  Here is the mesh from Tinkercad-

Mesh TinkercadThis is a lot more jumbled, with the surface resolution of the columns changing from bottom to top.  Compare this to the Slic3r 096 print-

4_096SDThe columns start out smooth at the bottom, and become more blobby where the resolution increases.  The column with the chamfer shows the pattern as well.  In the mesh, the column starts out simple, becomes more complex rising toward the chamfer, then becomes consistent and well ordered after the chamfer.  The effect of that change is clearly visible in the print.

I decided to print the original, unaltered Torture Test in Cura and see how much difference the mesh made in the final print.

Compare 3Compare 4

There is a small improvement, but it isn’t drastic; a few less lines in the columns and a smoother surface on the arch.

Here is a simpler set of columns drawn in Alibre:

Mesh ColumnsAnd here is the print in Slic3r 097:

Columns_1_097It seems as if the columns were all rendered with the same number of faces, but on the smaller columns those faces must be much shorter.  It seems that with Slic3r, it begins to have more and more trouble as the mesh gets denser.  Here is a KISSlicer print of the same STL:

Columns KS_1KISSlicer seems to have a little trouble as well, but unlike Slic3r, it only shows in the smallest columns.  It seems like the slicers have a minimum length of segment that works well.

I also wanted to test perimeter speeds.  You can get a much better surface quality by keeping the speed of the outer perimeters low, while letting the inside of the model run faster.  I printed the column set in Skeinforge once at 50mm/s like all the other prints, and once with the perimeters at .25mm/s.

Skeinforge 39 ColumnsThe poor quality only begins in the thinnest column as it was with KISSlicer.  The slower speed noticeably improved the surface of the last columns, but didn’t eliminate the errors completely.

This really was a torture test, not just in the features, but also the inconsistent mesh.  This exercise wasn’t about finding the best settings and creating the nicest print, but seeing how the slicers perform relative to each other.  The torture model happened to test how well each of the slicers dealt with a mesh that was  disorganized, and I think KISSlicer handled it with the most grace.

In the next post I will try some owls for a more organic print.


Slicer Torture Test

One variable I was concerned about in making the test prints was the USB connection.  Sometimes the flow of instructions can get interrupted, causing the printer to pause and wait, leaving a blob in the process.  If a little too much CPU gets tied up for a moment, it can create one of these pauses.  To prevent this, I ran the test prints from an SD card mounted on the printer itself..  I did a comparison between USB and SD with Slic3r 096, and there is a slight, but noticeable improvement in the SD print-


Overall it looks pretty horrible, at least in the columns.  On to the overall results.  At the end I will have a link to download all of these at high resolution since the viewer on the blog doesn’t let you really get into the detail.  Warping at the corners was always a problem.  These were printed on Kapton with hairspray in a closed case.  On some I used a heater to get the ambient up to 60C which helped keep the corners down, but never completely eliminated the warping.  Even though the corners lifted the prints were very hard to remove even at room temperature.

Torture_1I’m surprised to see stringing across the holes in the Cura print, even though the retraction settings were the same for all.  The sides of the cube with Cura and SF39 split in a few places because the narrow walls were left hollow and weak.  Slic3r had a consistent problem with the end of the arch coming loose.  The echo pattern to the left of the holes is supposedly due to the outer perimeter speed being too fast.  Ideally you would set that to a low speed, and run inner loops and infill faster to save time, but not all of the slicers had that ability.  The Slic3r 096 print doesn’t have the holes because I had already run that one before I thought to add them.

Torture 2Kisslicer wins for best arch.  Slic3r might have been better, but it is hard to tell since it knocked it over every time.  Kisslicer and Slic3r also had more consistency in the flat walls.  The columns were a challenge to all slicers, and I don’t know why they all came out so poorly.  You might think it would be mechanical issues with the printer, however they sucked in different ways, and did it in a consistent manner. I did some more testing related to that, which I will get into later.

Kisslicer handled the columns best, with some slight gapping at the point where the outer perimeter turns inward to the fill.  In Slic3r I left Randomize Starting Points unchecked.  That setting is supposed to prevent a seam running up the side of cylinders from the perimeter starting at the same point in every layer.  However it usually causes blobs to be spread all over the surface.  I suspect Slic3r 096 was randomizing anyway, while 097 respected that setting.

Torture 3Cura and SF39 had a lot of variations in the flat wall, and especially the column perimeters.  Kisslicer and Slic3r 097 had the best walls and a little variance in the column perimeters, while 096 had a lot of random blobbing. 072b is OK, somewhere between 096 and 097 with a little more pronounced seams.  In the 097 print you can see a little blobbing on the face of the cube toward the bottom. This is from moves between the column and wall, so retraction is a little less effective there than the Kisslicer print.Torture 4

Kisslicer, Slic3r 097 and 072b are doing the best on the texture wall.  072b managed to avoid dropped loops and maintain layer alignment all the way through.  Kisslicer and 097 also didn’t drop threads, but had some layers with a little setback.

Torture 5Cura had the best solid top layers, watertight and consistent.  096 was decent, 072b borderline, and 097 and Kisslicer were far too loose.  This could be fixed in 097 by reducing the nozzle diameter so the threads get placed closer together.  I’m not sure how to fix that in Kisslicer.  Increasing the flow rate will close up the gaps, but it will also make the perimeters wider, making the outer and inner dimensions incorrect.

Cura and SF39 left the narrow walls of the cube unfilled, which weakened them so much that some of the layers split apart at the corners.  096 filled the thin wall with a zig zag fill, executing it better than 096.  Kisslicer and 072b seem so have used straight lines to fill the wall which I prefer since it looks a little neater.

096 didn’t handle filling the thin wall of the hollow column at the upper left very well.  072b did a little better but mangled the inner perimeter.  Kisslicer’s is decent with some concentric fill, but Cura has the best one, as well as the smoothest surface of the arch.  The corners of the arch show quite a bit of overshoot, demonstrating that 50mm/s is too fast for the Solidoodle to be running outer perimeters.
Torture 6Slic3r 097 and 072b predictably had the best bridging performance.  Slic3r has the ability to run the fan for bridges, though 096 seems to have ignored that setting.  Cura and Skeinforge can only speed up and lower the flow to stretch the filament over open space (which Slic3r was also set to do) and was moderately successful.  Kisslicer doesn’t have any bridging settings at all.

Torture 7The chamfer under the large cylinder was a challenge that none of the slicers was able to handle, though 096 came close.  If the placement of the thread is a little too far to the inside, it won’t stick and get pulled into a straight line instead.  I’ve printed this kind of feature without trouble at 60-70mm, but at 20mm or so the curve is too tight.  A slower speed might have helped, to provide as much time as possible for the extruded plastic to bond to the lower layer.  Even though it didn’t do very well on the chamfer, Kisslicer handled the overhanging perimeters on the underside of the arch better than the others.

The overhanging corner is something that no printer will accomplish neatly without support, but Slic3r 097 managed with the fewest dropped loops, most likely due to the fan.

I was surprised at how badly the columns came out overall, which would seem to point to a problem with the printer.  However the errors were different for each type of slicer, and consistent between versions.  Also they happened the same when the same print was run twice as in the SD/USB comparison.  These prints were scaled up 150% from the original model so it wouldn’t be too torturous, but I did also print them at the original, smaller size.

Mini Torture 2Mini Torture 4 Skeinforge 39 still mangled the columns, Kisslicer had small gaps up the seams, 096 was blobby, and 097 had misaligned layers.  All of the Slic3rs still knocked over their arches.  I did a few tests to try and figure this out, which I will cover in the next post.

Later I will have tests with Cushwa’s Owl from Thingiverse for something a little more organic, as well as tiny Yodas at .1mm layers.

Slicer Comparison

Probably the most important step in 3D printing is the slicing- the conversion of a 3D mesh into a set of toolpaths for the extruder in the form of gcode.  There are several options for software to do this, and they will all create gcode a little differently, giving slightly different results for the same model.

I wanted to do a survey of a few different slicers and really get a definitive feel for how they differ.  My choices were-

Slic3r 0.9.7-, the latest version.  It was released after I started printing, so I also used-

Slic3r 0.9.5/6-  Though one release back from 097 there were distinct differences.  Slic3r is the most configurable of the slicers, at least in the settings that are more widely understood by printer users.  For instance you can set different speeds for outer perimeters, inner perimeters, small perimeters, infill, etc to find the balance between quality and speed.

Slic3r 0.7.2b- After this version, Slic3r had a total rewrite, which many consider a step back in quality.  Many users continue to use this version, though it lacks some of the newer features and is prone to running out of memory when slicing medium to large models at .1mm resolution.

Skeinforge 39- This is the version of Skeinforge that Solidoodle includes in their installation.  The biggest difference from 50 is that the flow rate is not calculated automatically and must be set by the user.  It is written in Python, and can take an hour or more to slice what Slic3r will process in minutes.

Cura- Developed by an Ultimaker user, this is a front end for Skeinforge 50.  SF50 has some more features such as Skirt, and the calculation of flow rate by filament diameter.  Cura runs it under PyPy, which is a more optimized, faster version of Python.

KISSlicer- developed by a user of Bits from Bytes printers, this slicer is faster even than Slic3r.  I don’t think I’ve seen it ever take more than a minute.

I configured all of these to use the same settings, as closely as possible.  Not all have as many speed variables as Slic3r, so I set all the speeds to 50.  The flow rate modifiers (ie Slic3r’s Extrusion Multiplier) were tuned to output at .42mm thick single wall.  There are some differences in cooling, since Slic3r and Cura could run a fan for small layers, but Skeinforge 39 could not. KISSlicer has fan control, but it runs on all perimeters rather than activating for layers that take less than a minimum time.

The first print I did was Make Magazine’s Torture Test, which they used to review printers. I used Tinkercad to add some extra torture to it.

There are some vertical holes one on side to see how the overhangs are handled at the top, as well as roundness.

1_TinkercadThe arch is a test for overhangs and gradual curves.  The overhanging corner is impossible to do cleanly, but we can see how cleanly they manage.  There are tiny columns and a wedge that tapers to a fine edge.  Also there are interior holes to check for dimensions, and a recessed slot to see how solid top layers midway up the print are handled.

2_TinkercadThere is an array of columns, two of them turned into tubes one of which has a wall thin enough to require a single thread.  Another column has a 45 degree chamfer to the outside and a gradual fillet on the top edge which can create gaps.  The array of columns is a test for retraction, to see if there is stringing as the extruder moves from one column to the other. I also added a bar across the top of the cube to test bridging.

3_TinkercadThe pattern of rectangles on the other side is a test for horizontal detail, which are 90 degree overhangs at various distances.

4_TinkercadA couple of the cube walls are very thin to test the filling of narrow areas.  There is a wide cylinder inside with a chamfered edge.  The underside of that cylinder also has a chamfer, which is a 45 degree overhanging curve to the inside, in contrast to the outside chamfer on that column on the corner.

5_Tinkercad7_TinkercadIn the next post we will get started looking at the results of this print.

Repetier and Skeinforge 50

Repetier Host currently comes with Slic3r 0.9.7 and Skeinforge 50 bundled with it.  Skeinforge 50 is a bit different from Skeinforge 39, which comes in the Solidoodle download.  The main difference is that it calculates flow rates automatically, much like Slic3r.

The settings for this are in the Dimension tab.

Measure the filament in several places with a caliper and enter the average in Filament Diameter.  Filament Packing Density is like Slic3r’s extrusion multiplier, but in reverse.  Higher values mean less flow.  I’ve found that 1.18 gives me accurate thread widths, based on the extruder being set to 109 steps/mm in firmware.  Start here, and find a value that works for you based on the test in Setting the Flow Rate.

Even though the flow rate is now handled by the Dimension tab, the Flow Rate setting remains in the Speed tab.  Set the Flow Rate to the same value you are using in Feed Rate.

Be careful about switching back and forth between Skeinforge 50 in Repetier, and Skeinforge 39 in Pronterface.  Both of them keep the current settings in the same place.  If you have Feed and Flow both set to 50 for Skeinforge 50, they will both still be 50 when you open Skeinforge 39 and you will have to change the flow rate back to its original value.  And in reverse, when you go back to Repetier and Skeinforge 50, if you don’t change the Flow Rate back to 50, you will barely get any extrusion.




Extruder Calibration Update


Once you have determined the correct steps/mm for your extruder, you don’t need to re-flash the firmware to update it.  You can do it with a gcode command-

M92: Set axis_steps_per_unit

So if you need to change your E steps to 109, you would enter M92 E109 into Pronterface or Repetier.  This is a good way to immediately check the new value.  If you are satisfied with it, you can change it permanently in firmware, or add the command to your start.gcode so that it is always active.

If you are using Repetier, you can set it permanently in the EEPROM.  Go to Config-Firmware EEPROM Configuration.  There are fields there for X,Y,Z and E steps/mm.  These values actually override the firmware, so if you set them there, you won’t have to go change them back every time you update.

Presto Part Finisher

Josh Smith ran across a excellent ABS post processing machine at Walmart, in the kitchen section.  It is the Presto Part Finisher, aka the Presto Kitchen Kettle Multi-Cooker Steamer.

He outlined his results in a post to Soliforum.  In short, pour a small amount of acetone in the bottom of the pot.  Place the prints in the basket, and turn the heat on just until the light comes on, maybe a little more.  The acetone vapor will begin to fill the pot until it begins to condense on the lid.  At that point, turn the heat off and pull the basket out of the pot, having left the prints in the vapor for about 30 seconds.  They can be touched after a few minutes, but will be a bit soft for 40-60 minutes.  I put screws into the bottom of the basket so it would sit higher above the acetone, and covered the bottom with Kapton tape to make a smooth surface.

Like my needlessly complicated DIY version, use this outside.  Also wear a respirator, or you are likely to have a sore throat for the rest of the day.  I put together a short video of me making a knob for my printer door, using Crysta-Line Topaz ABS from 3Dprintergear and, using the Presto at the end.

Clear Filament Comparison

Jamie from sent me some samples of his Crysta-Line Clear and Ruby Red translucent ABS filament to try out.  So far translucent ABS has been rare, although translucent PLA is common.  Clear has popped up in a couple of places, but 3DPrinterGear is the only supplier who has colors, currently on pre-order.  I was interested in comparing it to the clear from Repraper that I reviewed earlier.

Crysta-Line is on the left, and RepRaper is on the right.  The Crysta-Line filament ranged from around 1.75mm to 1.73mm, so I was pretty comfortable using 1.75 as the filament diameter in my slicer settings.  The RepRaper filament ranges from 1.63 to 1.73, but mostly varies around .05mm.  You can feel some waviness running a couple of fingers along it.  The RepRaper filament has bubbles visible in it, which are completely contained. The Crystal-Line Clear didn’t have any bubbles but some were visible in the Red, though they were much smaller than the bubbles in the RepRaper clear.

I found that the Crysta-Line Clear is a bit brittle.  While untangling the coil and trying to determine how much I had left, it kept breaking into shorter lengths.  This wouldn’t be a problem with a spool, but a coil would need to be handled very carefully.  The Ruby Red didn’t seem to have this problem.

UPDATE: Jamie said that whenever he tried to break the filament, it took a lot of bends to fatigue it enough to do so.  I went back and tried to break a piece and found the same thing.  Then I tried what I had done before, which was measure it by stretching it out and counting arm spans.  After I stretched it, it would snap cleanly on a moderate bend.  I would then try to snap it at another nearby point, and it wouldn’t snap until I stretched it again.  It seems that moderately stretching the filament will weaken it for a few seconds, so if you need to measure out a portion, go slowly.

I printed some single walled cubes with a thread width that came out to about .38mm.

Here is Crysta-Line at .3mm layers-

The RepRaper Clear at .3mm layers-

I’m not seeing a clear difference between them, and the bubbles I saw in the first RepRaper print I did aren’t evident here.  These tests were extruded at 210 rather than the 195 I used for the first review, and that might have made a difference.  I went with a high temperature because I wanted to see if it affected the clarity (it didn’t appear to).

Here are both clear filaments at .1mm layers, Crysta-Line on the left-

Crysta-Line .1mm-

Crysta-Line Ruby Red in .1mm

Red in a .3mm cup.  If you look closely, there are bubbles visible in the print, though they did not appear in the .1mm print.  Maybe if the bubbles are larger than the layer height, they won’t show in the print.  The walls of the cup are thicker due to the filament being bents into a curve.  They are around .6mm thick.

All three filaments as cups, Crysta-Line left, RepRaper Center, Crysta-Line Red Right-

All three cups at .1mm layers.  Again, no bubbles visible at this resolution.
Crysta-Line Clear at .1mm

Crysta-Line Clear at .3mm

My daughter had asked me for a dining room table to go with her miniature LaLaLoopsy dolls, so I thought the red would look really nice for that, especially since it leans a bit toward pink-

The main reason I am so interested in translucent color in ABS, when they are so available in PLA, is that ABS can be solvent smoothed.  Here is the table after a couple of dips in the vapor bath-

Here are some before and after pairs of some of the test pieces after a couple of dips in the vapor bath
It would be interesting to see what the results would be like with a little pre-sanding, ideally from both sides.  If you needed some clear windows, I think you might get good results from printing 2-3 layers flat on the build platform at .3mm thick and wide threads, then sanding and vapor smoothing them.

Switching translucent color filaments between layers of a print can create some interesting effects too.  Check out the experiments one Thingiverse user did with PLA, to get an idea of the possibilities-

I’m working on a clear acrylic enclosure for my Solidoodle, and I think re-printing accessories like the fan duct and thumbscrews in clear or a translucent accent color would look pretty cool.