Reverse Engineering

The reverse engineering solution we present here allows automatic conversion of a triangulated CAD model (*.stl, *.wrl or *.af format) into a fully parametric CAD model defined by NURBS surfaces, forming a consistent BREP.

The main steps of the reverse process:

  • Load a mesh file and check mesh consistency
  • Divide mesh to number of mesh patches (segmentation)
  • Reverse divided mesh patches to parametric representation (planes, cylinders, SORs, ruled surfaces, NURBS and so on)
  • Sew the parametric patches to solid (BREP)
  • Store the resulting solid model into a CAD format (IGES, STEP or native CATIA V5)

Consistency Check

Consistency check of the triangulated
3D model, Problem tree

We load a triangulated model into the 3DTransVidia application and verify the mesh (triangulation) consistence. The Mesh diagnostics are run on the model showing potential problems in the project tree. The problems are classified into different types: Gaps, Overlaps, T-connections, Ledges, Open Contours, Untrimmed Surfaces, and Mesh Open Contours.

The errors can be automatically repaired using special repair functions. The automatic repair will work within a specified tolerance range control by the settings of the repair process. Errors larger than tolerance or errors not possible to repair without changing the model will not be corrected automatically. Those have to be repaired manually using special repair functions. The manual process has organized and easy to use work-flow allowing repair to different errors individually operating on parts of the model (automatic selection of error places and neighbors significantly simplifies the process).


Patch division after segmentation

Once the model is clean (we have eliminated all inconsistencies in the triangulated representation), we can start segmentation (automatic division into patches). We need to select the mesh and start automatic segmentation. There are a number of parameters defining the segmentation operation. Changing the settings will influence the segmentation results. The segmentation results are directly visible on the model as highlighted edges defining different patches.

Closer investigation shows that patch division (using default segmentation settings) is not giving sufficient result. The red arrows indicate the places where fillets are not extracted (identified) as separate patches. To improve the segmentation we will use the "Planar Patches" option. Now we have more adequate segmentation (as you can see on the picture below for this patch, the fillets are extracted).

Fillets are not found
Fillets are identified as separate patches

The same problem appears on the other part of the model.

Fillets are not found
Fillets are identified as separate patches

Joining Patches

In some situations (see below) patches should be joined to form one larger patch. This is possible by choosing the "Join" function and selecting patches directly on the model.

Selecting patches for "join operation"
One patch after "join operation"


Once we have satisfactory segmentation the reverse process can start. Activate "Reverse" and select all patches (using "picking by window"). The selected items (meshes) will appear in the elements list (Figure 1).

The reverse process is automatically applied to all selected patches. The resulting reversed mesh patches will show in the project tree list (Figure 2). We have now parametric surfaces representing the model. The patches are analyzed during the reverse process and fitted with the optimal parametric surface type. When possible the system will analyze surface definition (Surface of Revolution, Surface Plane, Surface Extrude – see resulting surfaces in project tree) or NURBS for more complex representation.

Figure 1
Figure 2


The sewing is applied to stitch the model into a solid representation (BREP) on a defined model tolerance. The choice of tolerance is dependent on the receiving system requirements. E.g. if we want to get solid in CATIA V5 we need to stitch the model on tolerance 0,001 mm to maintain correct solid representation in CATAI V5. Other systems may have other requirements. When creating STEP or IGES it is recommended to use a high enough model tolerance to maintain solid definition in other systems.

Stitching process
Consistent solid after stitching

Saving Results

Note the results can be saved. Here we save the results into IGES format.

Stitching results saved into IGES format

The reverse process is now completed. This example illustrates one of the RE solutions offered by Capvidia. For more applications and reverse engineering technologies, contact one of our offices.

Capvidia provides all the necessary functions for automatic reverse engineering of 3D CAD in triangulated representation into a parametric (NURBS) representation. The RE technology is available as a library that can be easily integrated into other applications. It is currently used by Materialize in their 3Matic software.