Automatic NURBS surfaces created from a mesh in VXmodel and imported in SOLIDWORKS.
Have you ever wondered how 3D scanning is used for reverse engineering? If so, you’re on the right page.
We just tried out and reviewed Creaform’s new HandySCAN 700 SILVER Series, a metrology-grade, handheld laser 3D scanner for professionals. Since Creaform also gave us access to their VXmodel add-on for VXelements, we took the opportunity to conduct a full reverse engineering use case with one of our 3D scan results.
Pierre-Antoine 3D scanning a part with the HandySCAN 700.
Before we walk you through the full workflow, let’s take a moment to define reverse engineering and why 3D scanners are used for this widespread application.
Reverse engineering and 3D scanning: a perfect fit
What is reverse engineering?
Sometimes referred to as “backwards engineering”, reverse engineering consists in understanding how an object– virtual or physical– works.
Reverse engineering is used for software, mechanics, chemicals, biology, and any other domain where technologies or structures must be fully understood in order to reproduce or enhance them.
Often, reverse engineering methods are required when little or zero information is available on how the product was originally designed or how it works.
What is reverse engineering with a 3D scanner ?
Reverse engineering with a 3D scanner consists in 3D scanning a physical subject (a part) in order to capture its shape, geometries, and surfaces, later to be re-used for design or manufacturing improvements without needing the original blueprints.
The whole process of reverse engineering with a 3D scanner allows one to go from a physical part to a CAD (Computer Aided Design) model.
Reverse engineering and 3D scanning: key steps.
Why use 3D scanning for reverse engineering?
3D scanning for reverse engineering holds enormous potential for many different applications.
The same, basic process applies to all of these applications: 3D scan the object, obtain a 3D mesh, and export it to a 3D file format. In most reverse engineering scenarios, the team or business lacks detailed blueprints for the part, hence the need to reverse engineer it.
However, the final intention differs depending on the use case. These are the most common uses cases of reverse engineering with a 3D scanner :
- Making a new part from an existing design
- Making a new part in interface with an existing part
- Understanding a competitor’s design
- Optimizing an existing design
Now that we’ve covered the basics, let’s get to that case study and VXelements review!
How we conducted a reverse engineering process with the Creaform HandySCAN 700 and VXelements
1. Choosing the part to reverse engineer
For this reverse engineering use case, we decided to go with the fire extinguisher that we had previously 3D scanned for our Creaform HandySCAN 700 review.
On this extinguisher, there’s an interesting metal part that is at the interface between the tank, the hose, and the opening pin. It also serves as a handle to carry the extinguisher and hang it on the wall.
The part, outlined in blue.
We chose this particular part because of its important role in the product, which could justify a redesign for optimization, and because it was difficult to isolate.
The part, which we’ll call “handle cap” from now on, is made from cast metal, likely 316L Steel. Its surface is a bit rough and was quite dirty (grease, dust, …) when we 3D scanned it, as we hadn’t prepped the handle cap at all.
2. 3D scanning the subject
As mentioned in the Creaform HandySCAN 700 review article, the extinguisher is about 80cm tall and made up of several parts with varying textures, colors, and materials.
We placed around 3 dozen markers on the extinguisher, and another dozen on the surrounding floor in order for the 3D scanner to be able to see at least 3 markers simultaneously during the 3D entire scanning process. We didn’t stick any markers on the handle cap part.
The entire extinguisher was captured in three 3D scanning sessions. For the first two sessions, we used the laser cross mode, a.k.a. cross grid mode. Then, in order to capture small details and very dark surfaces such as the hose and top valve, we used the single beam mode and cranked up the shutter speed almost to its maximum.
The fire extinguisher with positioning targets (markers) vs. the 3D scan result.
We then used the “marker alignment” software feature to automatically align the three different scans together and produce a single mesh.
3. Isolating the handle cap from the rest of the mesh
Thanks to VXmodels’ splitting and erasing tools, we were then able to single out the handle cap part by removing all the surrounding parts. After filling in the gaps and holes of where the surrounding parts used to be (such as the hose), we obtained a clean 3D mesh of the handle cap.
The isolated part before and after we filled in the holes.
We heavily relied on the VXmodel module to smooth the mesh, decimate its number of triangles, and properly clean some of the borders before filling in the gaps. The software’s “bridging” function is very powerful, too, and allows users to fill holes step by step all while precisely defining how the different surfaces interact with each other instead of generating a simple mesh only based upon its interfaces.
Interestingly, once the mesh is watertight and optimized, it can be directly printed on any 3D printer. This translates into a very fast reverse engineering process; professionals can quickly duplicate an object in a new material or repair a broken part.
4. Creating primitives
Once the mesh is closed and smoothed out, you can directly export it to a CAD tool, but as an STL file– a format that is often called a “dead skin”. This means that any modification to the 3D file would have to be done at the dot point level, without the possibility to modify the part in its globality.
In order to obtain a truly editable CAD file (also called B-Rep which stands for Boundary Representation), you need to transform this set of data into simple primitives such as cylinders, planes, pyramids, etc. That way, they can be directly edited in a few clicks with the help of VXmodel’s various tools and features.
VXmodel is packed with such functions. We mostly used the following two tools :
Primitive/entity creation tool
This tool makes it possible to simply select the best fitting primitive (sphere, cone, plane, cylinder, circle, …) and have the software apply it to the mesh’s surface. VXmodel is also able to extract slots, cross-sections, pipe center lines, and more.
Primitives fitted on the model in VXmodel, with accurate measurements (24.985mm vs 25mm when manually measured).
We mainly relied on the “summit selection”, which consists in selecting a number of dots from the surface. The software then automatically generates the primitive of your choice onto the mesh.
VXmodel directly displays data such as the maximum, mean, and minimum deviations between the newly instantiated primitive and the original mesh surface.
Automatic remeshing tool
This very powerful tool can generate a simplified net of NURBS (although it can seem like a quad mesh) based on the source mesh. It is very useful for the reverse engineering process, as it automatically recreates a new, optimized B-Rep file that is ready to be used in a CAD program and much easier to manipulate than an STL file.
However, NURBS being curved lines, you can’t achieve perfect 90° angles between surfaces, for example. That’s why in some cases you can use both NURBS and primitives, which is what we did here.
Once the entities were created in VXmodel, we simply exported them in IGES file format. To keep things simple, we exported all the “simple primitives” entities in one file, and the automatically generated NURBS in another.
5. Redesigning in CAD software
We imported the two IGES reference files from VXelements directly into SOLIDWORKS. Both files were then positioned in the same SOLIDWORKS assembly, and we started modeling a new part in context.
Assembly in SOLIDWORKS for in-context design. The primitives on the right were directly imported from VXmodel; the clean mesh on the left was generated with VXmodel.
For this 3D modeling process, we used the automatically generated mesh as a reference for most of the features, while we relied on the simple primitives for more detail and to precisely position specific parts of the geometry, such as the wide base cylinder and the top and bottom planes.
Finally, after a few hours of computer design, we obtained a clean B-Rep file of our handle cap, ready for sharing and manufacturing, with 3D printing for example.
6. 3D printing the reverse-engineered part
And 3D print it we did! We used the BCN3D Sigma R19 we have at the kxiop lab to make the part.
This is the result after 12 hours of printing:
3D printed part on the left, next to the original part.
We found that VXelements and its VXmodel module were quite comprehensive, providing all the right functionalities in the right place. Although it could be interesting to have a sort of guided mode that auto-suggests certain tools according to the model you’re working on, VXelements and VXmodel are intuitive to use. The software provided us with everything we needed to easily and quickly perform a reverse engineering case study.
The whole process took us a little over half a working day. Prepping the part with markers, 3D scanning the part, and aligning the three scans together was about an hour of work. It took us a little under one hour to clean the mesh and generate the different primitives. The complete redesign in SOLIDWORKS was a two-hour job, and the 3D printing process lasted 12 hours.
All in all we are very satisfied with the VXelements and VXmodel experience and the results we obtained.