./features/sheet metal features
Download Features Source code Forum Ask for support

Sheet metal features

Analysis Situs provides a generic feature recognition framework that finds various applications. One of them is the recognition and unfolding of sheet metal parts. In this chapter, we cover different aspects of the sheet metal recognition algorithms. Contact us for more details and support on that matter.


Sheet Metal Recognition and Unfolding algorithm (SMRU) is a closed-sourced part of Analysis Situs SDK. The elements of this algorithm and some details of its implementation have been published in our Manifold Geometry blog in the "sheet metal" rubric.

Face Transition Graph

Face Transition Graph (FTG) is a graph derived from the AAG by turning bend nodes into arcs. By definition, all nodes of the FTG represent sheet faces. This derived data structure is used for several purposes:

  1. Merge aligned bends together, so that we know the minimal number of bending operations to fabricate the given sheet metal part.
  2. Find circuits to check unfoldability of sheet metals (as a consequence, such object types as rectangular tubes can be recognized thanks to the FTG).

The FTG data structure might have a lot of arcs for complex models. The following image illustrates FTG constructed for a rectangular tube part with many cuts along its "bend lines."

By using wise heuristics, many excessive arcs can be pruned from the graph. Speaking about tubes, we can eliminate all transitions between the sheet faces that reside on the same geometric plane. This heuristic leaves the followed simplified version of FTG:

Closed sheet metal parts, such as tubes, will necessarily leave circuits in the corresponding FTG (given that FTG is constructed for one side of a two-sided CAD model). To find such, Johnson's algorithm for detecting elementary loops [Johnson, 1975] can be applied. Johnson's algorithm is initially designed for directed graphs (digraphs). Since FTG is an undirected graph, the dual representation with mutually directed arcs has to be used.