25.02.2022

# C3D Modeler Offers CAE Developers New Median Shelling

The C3D geometric kernel adds a new operation that constructs median shells, thin-walled shells between faces. In this note, we give an overview of the new function we think will be useful to developers of CAE (computer-aided engineering) software.

## Where Median Shells Are Used

When calculating thin-walled structures, CAE programs need to construct median shells based on the bodies of 3D models. According to the theory of shells and plates, if a characteristic dimension (say, thickness) of a body is significantly less than the other two dimensions (height and width), then the constitutive relations of continuum mechanics can be significantly simplified. In effect, the three-dimensional problem is reduced to a two-dimensional one. For CAE, wall thicknesses are reduced to shells.

Structures in a variety of fields can be presented in the form of shells. Examples include machine hulls in mechanical engineering; overlaps and walls in construction; fuselages and load-bearing surfaces in aircraft construction; and hulls and other elements of ship structures in shipbuilding.

## Features of Our Algorithm

Our new algorithm constructs median shells based on pairs of equidistant faces of bodies. The user begins by specifying the pairs manually, or else by searching for them automatically. In the second step, the user sets the minimum and maximum values ​​of the distance between faces -- the desired thickness range; the minimum thickness is 0. The construction algorithm takes the selected faces of the median shell, and then reaches out to other faces; if this is not possible, then they must be mutual trimmed.

Figure 1 shows the original model with parts of different thicknesses (on the left), and the result of constructing the median shell to the right.

Figure 1. Initial structure (left); result of the median shell construction (right)

The position of median shells relative to parent faces can be controlled using the median shell offset parameter. It varies from 0 to 1. By default, it is 0.5, which means that the median shell is constructed equidistant between the original faces. Figure 2 shows different results of the offset parameter.

Figure 2. Constructing a median shell with different offset parameter values. Left: 0.5, right: 0.2

There are structures whose equidistant pairs of faces are connected to each other through fillet faces. Such cases are handled with the fillet flag. Figure 3 illustrates constructing the median shell with different values of the fillet flag.

Figure 3. Initial model (left) and the result of the median shell constructed with different processing of fillets: without processing (center) and with the average fillet radius (right)

The shell thickness value can be recorded as an attribute attached to the resulting median shell.

## Coding Example

This code fragment initializes the median shell object:

```// 1. Select the base solid.
SolidSPtr baseSolid( ::SelectSolid() );
// 2. Fill operation parameters.
MbSNameMaker snameMaker( (SimpleName)ct_MedianShell, MbSNameMaker::i_SideNone, 0 ); // An object defining names generation in the operation.
std::vector<IndicesPair> facePairs; // Empty, auto search of median faces will be performed.
MedianShellValues params;
params.dmin = 1.0; // The minimal distance.
params.dmax = 5.0; // The maximal distance.
params.filletType = MedianShellValues::FilletType::tf_none; // Type of fillet radius calculation between faces of median shell.
MbMedianShellParams opParams( facePairs, params, snameMaker );
MbMedianShellResults results; // The operation results.
// 3. Perform the median shell operation.
MbResultType res = ::MedianShell( *baseSolid, cm_Copy, opParams, results );
// 4. Obtain operation result.
if ( results._solid != nullptr )