Friday, February 12, 2016

Creating a Mesh in RhinoCAD

Converting a CAD model into an optimized STL file for 3D printing is a bit of an art. By it's very nature, the process (called tessellation or meshing) is lossy - meaning that resolution is lost. I discussed this in a previous post Musings on the impact of STL triangle count on print quality and this post will be a practical guide.

CAD applications have different tools for meshing objects. I use RhinoCAD and came across a great video series that describe the process in Rhino very nicely, but the same concepts can be used with any program. That video series was created by Kyle Houchens and can be found here: Preparing for 3-D Printing with Kyle Houchens. This post doesn't really add anything new to the great information Kyle presents, I'm simply distilling it down to a short list of How Tos to make it easy to remember it all!
Always create the mesh yourself, don't rely on "Save As..." or the default settings. You can expand the Polygon Mesh Options dialog to show all the options (I'm using the Mac OS X version here).
Kyle presents two methods to use this dialog but the second method he learned from Dale Lear (the "mesh guru" Chief Scientist at McNeel) seems easiest.

'0' out all of the field except the Maximum distance, edge to surface field, set that to your file resolution (in my case, 0.01mm). Also uncheck all of the check boxes. The only field you'll use is the Minimum initial grids quads field. Start with a low setting like 100. And look at the mesh and polygon count. Kyle uses a simple concept "blackening up" to describe what a good mesh looks like. Watch the video for details. Most of my parts are about 3" D and 2" tall. I shoot for about 700,000 polygons. Play with the Minimum initial grids quads field until the model is blackened up and you reach your target polygon count.

Once the mesh is created, notice that it is a quad mesh. We want triangle meshes to print. The TriangulateMesh command does that for us, notice the polygon count will increase significantly when you convert to triangles.

Kyle goes on to say that he always checks his meshes for problems. Three simple commands will tell you if you have any issues. Run these to make sure your STL file is good. Thingiverse and the other sharing sites are loaded with bad STL files. The commands are:

_SelOpenMesh - selects any open meshes, which are not good!
_SelBadObjects - selects any bad objects
_ShowEdges - shows bad edges

If your mesh passes all of these, it will be a good mesh that should slice and print on any 3D printer.

Save the file as an STL file in binary format. Binary files are much smaller than their text/ASCII equivalent.

That's it in a nutshell but I highly recommend watching the videos so you understand the details and theory behind the process.

Thursday, February 11, 2016

Printable Mounts for FSRs

I've installed FSR (force sensitive resistors) on all of my printers now. I developed a universal mounting system that I've used on Rostock Max, Mini Kossel, Kossel 250 and Taz 4 or 5 Cartesian printers. I print these in PLA but if you use a heated bed - and especially if you heat the bed to more than 60°C - you need to make sure the mounts are well insulated from the heater. The Rostock Max and Orion printers have a nice solution - a 1/4" thick melamine "snowflake" that the heater and glass mount to. This provides excellent insulation AND stiffness to get reliable triggering of the FSRs. I hypothesize that some of the issues I've read on the Web about unreliability of FSRs are due to two issues:

  1. The mounting system is over constrained or not assembled correctly and binds
  2. The glass build plate and flexible (silicone, Kapton) heater attached at three spots around the perimeter is too flexible so probes over the FSRs give different results than probe points between them (where the bed is suspended between the mounting points)
Make sure to address these, along with insulating the mounts, and you should expect good results.

The printable mounts and instructions can be downloaded from Thingiverse: