Thoughts on Reverse Engineering

With the advent of 3D scanning comes some very logical downstream applications – 3D printing, reverse engineering, metrology/inspection and applications to the arts. The cost of 3D scanning hardware is quite literally… all over the road-map, with simple low cost IR scanners under 500USD to CT scanning hardware over 1M USD. While high end CT scanning provides more than just the “skin” of the part, data collected is often output to show only the skin. This skin or surface I am referring to is commonly exchanged between software programs as an STL or polygon mesh file.

The 3D data captured by whatever method, has no intelligence – it is the equivalent of a 3D picture.

So, when the user wishes to do something else with that data, like turn it into an editable CAD object – third party software is often engaged to manipulate the 3D picture into something with inherent intelligence. Here in lies the conundrum of reverse engineering, which is in this case a misnomer. Reverse engineering implies extracting the intelligence from something previously engineered to remake or analyze it. To wit, software can be reverse engineered via decompilers (albeit illegal), electronics are often reverse engineered using scopes and probes that can measure currents and the effects of a signal path – with the 3D picture, all you have is a shape. Unless you have the accompanying design information such as a mechanical drawing with size/tolerance information – as one begins to reverse engineer a 3D shape – they are inputting their own design information, hopefully via educated assumptions – hence, re-engineering, not reverse engineering.

A side note here; I once “reverse engineered” an object that appeared to have a single planar surface when in fact, the surface was comprised of two planes at a 1.5° angle to each other, with a large radius joining them. Since this was a medical implant, obviously no small error made.

Okay you say, semantics… reverse engineering/re-engineering… whatever!

Let’s examine a simple cube with a hole (bore) in it… the cube has been produced via any number of manufacturing methods from injection molding to casting to machining – pick one. No matter the method; there will be deviations from the original design model introduced via whatever manufacturing method used. Let’s say the design of the cube defined it as a 100 x 100 x 100 unit cube with a tolerance of .05 units in any dimension. Let’s also say the hole in the cube was designed to be perpendicular to the surface with a diameter of 50 units and depth of 50 units – again with the same overall tolerance.

Now lets 3D scan that cube, there are immediately questions that arise:

  • What is your goal? (artistic/cosmetic or re-manufacture)
  • If you presume to know the tolerances of the design, do you have the hardware that can capture the “picture” at the required level of precision?
  • What is the calibrated accuracy of your hardware? Seldom do devices perform to manufacturers lab “spec”.
  • What is the condition of your environment? Lighting, dust, hot/cold can all have an effect on an optical scan device.
  • Do you know if the manufactured object you are scanning is a known “good one”?
  • Do you know if the software that collected the scan manipulated any of the data “behind the scenes”? This happens more than one may think.
  • Did you manipulate any of that data? Smoothing, noise reduction, hole patching all equates to changing the data that was actually captured.

The above bullets are some of the “fuzzy” parameters that are inherent in nearly all scanning operations, and all contribute to the fidelity of the object you wish to reverse engineer.

Pretty simple to “reverse-engineer” from a 3D scan IF you know the design criteria, implied because it is easy to round numbers to simple integers. Usually, you will end up with something similar to the model below – sharp edges are no longer sharp, triangle faceting, sizes are not exact – often measuring out to 6 decimal places, and common line-of-sight missing data.

So, it is a simple cube and no matter what the scan dimensions are, pretty easy to “reverse-engineer” to even numbers, rounding up/down to normalize the data in any number of reverse engineering software products currently available.

But… if the the original design intent is unknown and the process of rounding begins … what if; the design dimensions were actually 100 x 100.5 x 99.9 or the hole was designed for an interference or slip fit? Perhaps the the object is already at the limits of it’s intended tolerance zones and your scan, with introduced variables, pushes it even further away from the original tolerance, AND you round the wrong way…

Yes, many things can influence the fidelity of your “reverse-engineering” project and produce a completely non-working part unless you know/understand at a minimum the form & function of the object to at least get you to the ballpark of the original design intent. This project may in fact be further compounded downstream by introducing yet another manufacturing technology – which in turn introduces more design deviation – producing a useless object, resulting in much lost time and revenue.

This may all sound a bit negative, but the message here is not to discourage anyone from 3D Scanning/Reverse (RE) Engineering… but to shine some light on aspects of this process that seldom get published – yet experienced by anyone (realized or not) performing the process. Best to know how to set your expectations correctly to fairly gauge your success.

This industry sector has a great many tools and exciting technologies – but it isn’t magic – yet.

%d bloggers like this: