I’ve recently been putting my Ultimaker² through its paces, and one of the pieces that I wanted to try printing was Dizingof’s Joint Stars. It’s a lovely piece of interlocked geometry, but hard to print on an extrusion-based 3D printer due to the large overhanging limbs that start in mid-air. Another was TheRat’s Dragon – which also had some significant overhangs, as well as large thin wings which seemed unlikely to withstand the rigors of repeated passes to build up the height without some extra anchor points to minimize flexing.
The generic overhang-angle-based blanket support the Cura and other slicers offer seemed like a poor choice, and one that was likely to result in such extensive coverage that the finished surfaces would be quite badly damaged. And so I turned to the v2.0 incarnation of AutoDesk’s MeshMixer, which offers the potentially valuable option of intelligently generating support pillars based on overhang angle, but then being able to customize the structure to ensure sufficient strength and other production engineering considerations. It was announced on the same day as the Ultimaker² – September 20th, 2013, the day before the New York Maker Faire – and that seemed like a fortuitous sign, so I was excited to try it.
Autodesk acquired the Meshmixer package back in the fall of 2011, and after a couple of years, the 2.0 release has finally seen the light of day with some significant new features and an upgraded user interface. At the same time, the program does rather suffer from Autodesk’s seemingly random throw-stuff-at-the-wall-and-see-what-sticks approach to penetrating the prosumer 3D printing space: it’s just one of many products with no clear road map or lifecycle, and almost no documentation. Even after using it, I’m not quite sure what some of the settings do, and it’s far from clear if or when it will ever get any more updates, or even bug fixes. But, those limitations aside, it’s actually quite good at what it does – particularly when it comes to generating the support needed for good quality FFF prints.
Slicing packages like Cura build support at a low-density mesh that generally covers the area to be supported, and then stops a layer or two short of the intended support point, providing a backstop for any drooping parts that need supporting, while being able to be broken away with relative ease. This approach is relatively quick and easy, but tends to be indiscriminate, and can be hard to remove from small areas, while at the same time still sticking too well to really be removed cleanly.
Meshmixer’s approach to support is different: it uses a branching tree-like structure of well-defined pillars that come to a point right at the location that the support is needed. The diameter and complexity of the shapes can be configured, so that the support can print cleanly, provide a firm base for upper layers, exactly where needed, and then be broken away easily afterwards, with minimal, easily-repaired surface damage.
Meshmixer lets you specify the angles of the surfaces that need support, and the size and packing density of the support pillars. In order to get good results, and properly scaled supports, you need to start by using the ‘Edit -> Transform‘ and ‘Analysis -> Units/Scale‘ tools to get the print properly oriented on the bed, and scaled to the finished print size. If you don’t do this, and instead scale the print afterwards in your slicer, the support pillars and particularly the tips of those pillars won’t be the right size, and may not print well, or be too small to offer effective support – or too large to remove easily.
For good results on my Ultimaker², I generally find that surfaces oriented less than about 17.5° from horizontal are where support is most needed. When you first go in to the Analysis -> Overhangs mode in MeshMixer, you can adjust the overhang angle on a slider, and it will highlight the critical overhangs in red, as shown in this view of the Joint Stars ball.
Equally, I find I get best results if I make the support pillars quite thick, and not too far from vertical. You want the supports to print cleanly, and not fail – because if they break or come loose, not only will your main print not have the support it needs, but also you will end up printing the support structure itself into the air, possibly for many layers, and that can result in a tangled mess getting dragged around and potentially stuck to your print. So, I generally chose a 3mm diameter for the support structures, and don’t let the pillars lean less than 60° from horizontal. I have the pillars start with a 6mm diameter base, and taper to a point that is just 1mm across to provide the anchor point for the supported part of the print. I also prefer to lower the density setting of the posts and the structs that support and tie the posts together, so that the program generates a basic essential set of supports that I can then customize:
Optimizing the Supports
Existing supports can be removed by Control-Clicking them (Command Clicking on a Mac), and new supports can be created by clicking on a red supportable area, or existing support, or by dragging from those spots (which gives you a bit more control over where the support line goes, but perhaps not enough to get the perfect support mesh; the line will tend to snap to places that you would rather it didn’t go).
The first objective in cleaning up the mesh is to make sure that there is enough support for all the critical areas of overhang. You need to have a support bar at the lowest point of each overhanging area, and if the overhanging part is quite large, and the amount of print to be supported is more than a few mm high before the part will merge into the main structure of the print, then you will probably want to have several separate support beams to ensure that the piece is held firmly as it grows and won’t topple under the vibration of the print head moving over it repeatedly.
Next, you want to add extra struts to hold the supports in place – especially where the support beam are long, or leaning over at an angle. Clicking several times on a beam in the same spot will add an array of struts, fanned out around the main beam, giving a wider foot print, and so tends to keep the center of gravity of the strut over its base area, which helps with the part’s stability as it grows taller. You can also cross link each island of supports to the adjacent ones to further increase the stability, and to provide some failsafe options incase one of the support struts falls over before it reaches the desired height. If it was cross linked into another support, then there is a good chance that that other support beam can take over its responsibilities higher up in the build, and still provide a base on which the upper part of the support, and particularly the support tip, can be built cleanly. Generally, you will want to work from the center of the object out to the edges, since the outer support struts make it gradually harder and harder to see what is going on in the center. Another handy hint to remember is that the ‘c’ key works to re-center the view over whatever point the cursor is at. Until you realize that, manipulating the view can be rather frustrating! This picture of the finished Dragon structure shows the sort of complex mesh of supports that can be woven – and the sort of detailed, fragile prints that this tool makes possible.
Export and Slicing
Once you’re done tweaking the support structure, you can save the project in a native ‘.mix’ format file that will let you reopen it later, and make further tweaks, or indeed totally remove the support and start over. You can also save a combined mesh file that includes the original object and all the support struts, in several different formats, including .obj, .ply, .dae, .amf and, of course, as an STL file.
You can then import one or other of these into your slicer, and slice it as you see fit (although ideally at the same size, orientation, and layer height as you specified in MeshMixer at the start of the process). And of course, you can turn off any ‘automatic support’ options in your slicer, as that has all been taken care of for you already.
One thing to note is that the various support pieces and struts are not merged together, but exist as separate shells in the finished file. This can confuse some slicers, causing them to leave a hole wherever the bars intersect, and so greatly reducing the strength (and hence usability) of the supports. You may be able to work around this in your slicer – for instance, Cura’s ‘Combine Everything (Type A)’ option in the expert settings makes sure that the overlaps are fully filled in, so that the strength of the supports is unaffected.
I haven’t made much use of the other features of MeshMixer yet, but it’s only fair to point out that it does include several other useful and/or cool features, including mesh repair and sculpting tools, the mesh merging tools that were its original key feature – and the inspiration for its name – as well as other analysis capabilities including calculating the center of gravity of the printed object, and identifying potential weak points in the finished shape.
With the supports all set, printing is pretty straightforward. With fairly thick supports, you don’t need to be over-cautious with the print speeds, and the Ultimaker²’s excellent retraction ensures that there isn’t any oozing filament to catch on the supports and pull them loose. Pieces certainly can come loose – especially on larger prints – so careful cross-linking of the struts is essential, and I generally print with at least 25 loops of brim to help keep the supports firmly anchored on the bed.
Bonus tip for 3Doodler owners
I’ve found that the 3Doodler hand-held ‘3D Printing Pen’ can be a useful emergency repair tool for broken support columns . If you’ve not been careful enough in linking the supports together, or especially if the first layer of some of the supports didn’t go down as well as it might, then it’s quite possible for some of the supports to topple over due to the relatively hight torque imparted by pulling a sticky bead of filament over the end of a narrow column of plastic, several centimeters from the bed. When that happens, that can spell disaster for the later part of the print, as well as causing problems as the build progresses, as a result of there not being anything for the upper parts of the supports to build on. The good news is that if you have a 3Doodler, it may be possible to repair the supports and tie together the broken pieces, drawing out a mid-air mesh on which the rest of the support can continue to grow. I’ve managed this a couple of times now, but sadly don’t have any photos of it. A nimble wrist and perfect timing are key to getting the pen in and drawing some of the needed support while the print head is off over the other side of the print – and then getting it back out of the way before the head comes back!
Annoyances & Limitations
The most obvious annoyance for me about the tool is that it defaults to a ‘Y is up’ orientation convention which means that the first thing that you’ll probably have to do – well, I did anyway, with my workflow – is to rotate the model 90° from the more standard z-up orientation. And then when you export the part, and load it into your slicer, you have to repeat the rotation again, as once again it gets saved with y as the vertical direction, so all the support struts by default are pointing sideways. A preference setting to override this would be useful, but I couldn’t find one. Just figuring out how to rotate the object in MeshMixer can be a challenge; it’s in the Edit -> Transform tool. You can grab the handles and rotate the object about any of the axes; a further refinement that you have to realize is that you can snap the rotation to 5° intervals; you have to drag over the on-screen check marks for that to happen.
While you can save the project as a mix file that allows it to be reloaded properly scaled and oriented, and with the support in place, but not irrevocably fused into the object (as it is when exporting to a mesh format like STL), that doesn’t seem to be quite as useful as it might be. You can remove the supports en masse, but there doesn’t seem to be a simple way to go back in and add more supports to an object without running the automatic support generation wizard again. That might make rather larger scale changes than you want, if you simply want to go in and fix up one weak part of the support framework. It’s also a little frustrating that the mesh generation settings aren’t remembered from one invocation of the tool to the next (and so, more generally, there is no way to have multiple presets for different uses). Each time you fire up the support tool, you have to re-enter up to a dozen different parameters: at least you can type them in numerically and tab between the fields, and don’t have to drag the sliders for each one.
Finally, I think it would be useful if the support generation was a bit more intelligent, and the editing capabilities a bit more capable. It would be good to be able to attach a support beam anywhere on the print, not just the detected hotspots, and it would be good if those beams would default more easily to going straight down wherever possible, and connecting to the buildplate if possible. Too often when adding support by hand it won’t attach to the point you want it to, and if it does, it will tend to connect to another nearby support strut, or to perch on another part of the print, even when it would be easy to route the line down to end on the buildplate. While you can drag lines out by hand, they tend to snap to anything but the ground, nine times out of ten.
Once the print finishes, you can remove it from the bed and remove the support. I find that a small pair of wire snips helps to cut the struts free from the base and brim, and then you can bend the remaining stubs back and forth to break them free. Because the tips of the supports are just 1mm across, it will break off easily, and the small scar can be sanded away, if needed.
Short lengths of support between the parts of the print can also be twisted off with the wire snips, and that just leaves any internal, hard-to-reach pieces of support. For those, I found the best thing was to put the tip of a flat bladed screwdriver (a chisel would be even better) against the end of the support, and tap it sharply with a hammer to break the end of the support bar free from the print.
Overall, the finished quality of the prints that I’ve used this on has been great, and the damage to the print surface caused by the support has been minimal. You can see examples of the finished print in my earlier blog post, and over on my flickr Photostream.