From Open Source Ecology
(Redirected from DfT)
Jump to: navigation, search


Design for tolerancing in the OSE context means making considerations, at the design phase, for allowing the largest tolerances in any build - without any decrease in end performance of the product. This is done to facilitate the build process, reducing the difficulty of any build.

This can take many forms:

  1. Trim in housing to hide edges of underlying structures.
  2. Dynamic alignment mechanisms that remove the requirement of parallel or equal frame edges in 3D printer frames - such as the Autoparallel mechanism
  3. Adjustment mechanims, such as screw legs that allow a table to be level on a non-level floor
  4. Design for using non-cut stock - such as
  5. Tool choice - by jigging up tools, high tolerances can be achieved without measuring such as with the Measureless Cutting Jig. This is design for tolerancing in the broader sense, which can be expressed as 'just use this jig at maximum tolerance and the product still comes out right'
  6. Material choice - selecting for pre-toleranced materials that are COTS
  7. Using digital instead of manual fabrication - this removes a tolerancing requirement from the human and transfers it to a more accurate machine

And a myriad others. There are unlimited strategies for converting difficult, high skill, low tolerance operations - making these easier - as part of general build and product Robustification.

This is one of OSE tenets - designing for allowing for maximum tolerances without diminishing performance.

Tolerance in design - [1]


  1. Tolerancing is the Precision and Accuracy with which parts are built to allow for parts fit in assembly, to guarantee the desired function.
  2. Tolerancing depends on the tradeoff between manufacturability and functionality. The more precise and accurate the build, the higher the cost. The more precise and accurate a build - it may or may not achieve better functionality. There is a sweet spot where there is sufficient accuracy/precision, beyond which no performance improvement is achieved. Thus - effective design seeks to minimize cost and maximize performance. Effective production is achieved by having sufficient accuracy/precision (let's call it quality), but not excessive - as that is just a waste of effort and money.
  3. Tolerence requirement can be designed into the product being built - and when extensive effort is given to designing for lower tolerances - ease of build can increase and cost can decrease dramatically. That is what we have achieved in OSE's methods of Extreme Manufacturing
  4. Design for tolerancing is the art of designing for the minimum accuracy/precision requirements - without decreasing performance. This means retaining Robustness. This is not the same as Value Engineering. Value engineering means accepting a tolerable loss of performance such as by using less material - while design-for-tolerancing makes no compromise on performance. In fact, the design as practiced by OSE actually increases performance. For example, the D3D Pro using a steel angle space frame, which is heavier and stronger than other 3D printers.
  5. Design for Tolerancing depends completely on the function and purpose of the design in question: only by understanding in detail how a given device works can one make design choices in tolerancing to simplify build. Here, one must understand basics of forces, dimensions, and ratios to make proper assesment. A tolerance will typically be defined by the ratio of dimensions compared to other parts.
  6. OSE's main use of design-for-tokerancing is to simplify parts manufacturing to allow common, off-the-shelf materials to be used as feedstocks.
  7. The disadvantage - if it can be called a 'disadvantage' of design-for-tolerancing is that higher awareness (but not skill) is required during assembly.


  1. The 3D printer is a good case in point to demonstrate the above principles. At the end of the day, the machine produces 10 micron steps of motion and about 100 micron distance accuracy to the bed surface. How can one get print results up to this accuracy if the parts themselves are up to 1" off in some cases? This depends completely on whether that part is related to the accuracy or not. This requires insight and thinking about that part, how it relates to the overall functionality - and whether a specific part property influences that property in any way. This also must take into account other related functions - such as automated bed leveling and other automated corrections, which can nullify an existing inaccuracy.
  2. Take the long rods on the Y axes as a good example. Does it matter if its length are not uniform? Not at all. If you observe the way the rods are attached, the rods can stick out of the idler and motor pieces - even as far out as many feet! So here is an example where the 2 rods have a tolerance of up to many feet! It will be inconvenient to have the rod stick out a few feet as the printer may not fit on your bookshelf or be an eyesore - but the printer will actually work just fine. In this case, it is very easy to cut the rod to say 1/4" tolerance, and you are perfectly fine.
  3. Take the example of the 3D printer frame. The tolerance of the D3D Pro frame members is +/- 1/4". But how can you get 10 micron motion accuracy if the frame is 1/4" off? Two things come into play here. First, when the frame is being made - you can insert the steel angles into the corner pieces as far as needed - to make the frame as accurate as you like. But 100 microns? You will never do that by hand. Here is where another element comes into play: even if your frame is not accurate in the Z direction - the bed leveling probe takes care of that automatically to 100 microns. In fact, the bed can be slanted quite a bit visibly - and you will still get perfect prints (outside of a slanted base). In summary - here is where we went from 1/4" tolerance - to a 100 micron positioning error to the print bed. You can read more about frames at the Frame Design Guide
  4. How about the perpendicular of the X axis to the Y axis? Here is where we have the mechanism for Autoparallel. In other words, we designed a specific feature on top of the printer that allows us for simple fabrication (using the generic 3D printed axis pieces that are used on X, Y, and Z axes). This allows us to address print skewness completely - which is set up during the Calibration phase.
  5. Universal Axis pieces. How much accuracy is needed? Take the Carriage piece. As long as it fits the 4 linear bearings, and has a constant separation between the 2 rod centers - it works. It can be off-dimension on the outside body. If the rod center seperation is the same (to 1 mm or so), the carriage will slide. But same compared to what? The rod separation at the motor and idler pieces must be the same as well - allowing only for the flex of the rods - which is 1 mm or so.
  6. Electronics panel. Does the electronics panel accuracy matter? Not a lot. It has nothing to do with printer accuracy - it just holds all the components. Since components are zip tied, the location of zip tie holes only needs to be roughly accurate. The control panel must fit on the frame. If it doesn't, some parts can be bent out with a heat gun to make it fit. All wire routing should be cleaned up at the end so it is easy to troubleshoot. Otherwise, the panel remains accessible and transparent.
  7. The above is only a short overview. A complete walk-through of each single part would be a text many pages long with a set of accuracy numbers in each direction for each part. This is beyond the capacity of the human brain - but understanding the function of each part and how the printer goes together allows one to figure out exactly what will work and what won't. There is a lot of head scratching here if one to understand every single detail. During a one-off build - one will invariably take a lot of time to go through the thinking - figuring things out and gaining aha moments. This is not for the faint of heart - as building anything is a challenge - never mind a 3D printer. However, as one sees the result - runs the machine - gains understanding of how it works - the second time is much faster. After several builds, one becomes familiar to the point of appreciating why all the parts have been designed the way they are. Many hours have been spent already designing every single part - and if the parts seem odd - or not good enough - one will understand that they still suffice for perfect, robust functionality. The other possibility is that the builder figures out a new insight - and then gets involved in design changes. We welcome that, as the project is open source.