1 Introduction

The integration of computer-aided design (CAD) and computer-aided manufacturing (CAM) has increased the production efficiency in current manufacturing industries, and integrating generative CAPP [1, 2] to CAD/CAM will enhance the productivity. Automatic feature recognition (AFR) is necessary to achieve generative process planning. AFR approaches provide abilities to recognize high-level geometrical entities and features [3], and approaches such as graph-based, rule-based, hint-based, volume decomposition approaches are the most applied in research works performed so far to recognize features from CAD models [4]. The other methods applied by researchers to recognize features are edge boundary classification, slicing method, intelligent feature recognition methodology, and ontology.

Graph-based method was applied to generate attributed adjacency graph (AAG), and the generated AAG was decomposed into concave subgraphs whose properties of nodes were used to recognize interacting features such as pocket, open pocket, slot, step, blind hole and through hole. The method is adoptable only if, for every part feature, the AAG has a corresponding subgraph, and the pocket feature is recognized only if it contains a planar base face. In some cases, the generated cavity feature volume is more than required feature volume. The edges with constant attributes were only considered, and an additional fillet elimination method is necessary to avoid the difficulties faced in graph-based and hint-based approaches due to the presence of fillets [5, 6]. Liu et al. [7] recognized features of mill/turn parts having multiple extreme faces by generating AAG from B-rep CAD model of mill/turn part and extracting geometrical, topological information from AAG through geometric reasoning approach. The proposed method is able to overcome the difficulties faced during extraction features of mill/turn part having multiple extreme faces. The work mainly focuses on regular form mill/turn parts.

Sunil et al. [8] proposed hybrid (graph- and rule-based) approach to recognize pocket, hole, slot and step features of prismatic parts. Face adjacency graphs (FAGs) were generated from the input B-rep CAD models, and then FAGs were twice or thrice decomposed to obtain Base Explicit Feature Graphs (BEFGs) and No-base Explicit Feature Graphs. To overcome the issues that arose by the presence of smooth and concave faces (called base fillets) attached to base face of a feature, rule-based approach was used to identify base fillets. BEFGs were formed by base face, base fillet and its concave adjacent face. BEFGs were used to recognize 2.5D blind features, while NBEFGs were used to recognize 2.5D through features. But the hybrid approach does not recognize protruding features.

The volumetric features were classified, and an algorithm was developed to recognize the volumetric features of the part model. The algorithm recognized all simple features that were classified [9]. Dwijayanti and Aoyama [10] adopted VDM to recognize machining features of a part model and classified part surfaces as open surface and closed surface based on parameter comparison of surfaces. The shape of total delta volume or machining feature obtained by volume decomposition is recognized, and the delta volume and part model’s surface parameters are automatically compared. If machining feature has two open surfaces and four closed surfaces, then it is identified as closed slot, while machining feature having three open surfaces and three closed surfaces is identified as open slot. Similarly closed pocket, open pocket, step, through hole and blind hole were identified. The work mainly focuses on identification of non-interacting features. Woo and Sakurai generated delta volume by subtracting part model from stock and decomposed the delta volume into non-redundant maximal volumes and redundant maximal volumes. The redundant volumes that can be machined in single machining process using 3-axis machine were recognized as maximal features. The time taken for decomposition is more in parts having more feature intersections compared to parts having less feature intersections [11].

The review on major feature recognition concepts and approaches suggested a need of greater approach in handling interacting features [12]. A neural network-based algorithm was developed for feature recognition of non-orthogonal interacting features such as blind slots and pockets of a part model [13]. The neural network-based algorithm recognized interacting features but failed to recognize intersecting features. Lai et al. [14] developed an algorithm to detect all types of loops used in CAD models and to enable the recognition of features across multiple faces. The detected loops were divided into three types: (i) First type of loop lies on a single face; (ii) second type of loop lies within a region in which faces are smoothly connected to each other; and (iii) final type of loop lies across multiple groups of faces. The loop recognition system must be integrated with other feature recognition algorithms in order to detect general types of features more thoroughly.

Genetic algorithm (GA) was introduced for feature recognition from CAD databases having large data. A comparison of CPU time between hybrid method and GA-based search techniques was made based on recorded experimental data on prismatic parts and industrial components. It was found that CPU time taken by GA-based technique is lesser in comparison with hybrid method’s CPU time [15]. Fu et al. [16] developed an algorithm to automate the turning process planning for mill/turn parts. The dominant rotational axis from mill/turn part was identified, and an axisymmetric model was generated by the algorithm. The turntable features were obtained by several Boolean subtractions of axisymmetric model and mill/turn part. The turning sequencing for turnable features was done based on the analysis of the knowledge. The work mainly concentrated on turning features of mill/turn parts and does not discuss the mill parts. Li and Shah [17] proposed a new method of recognizing turning features on mill/turn parts. The profiles of revolved faces on a mill/turn part were obtained to detect the unturnable portions of these profiles. The so-detected profiles were then utilized to construct part graph and to solve the feature interactions between coaxial turning features. Finally, graph-based and rule-based feature recognitions were combined to recognize turning features. The work mainly focuses on regular form turning feature recognition.

Ismail et al. proposed an edge boundary classification (EBC) technique to recognize polyhedral features such as pockets, slots and steps [18]. The EBC technique was also applied to recognize cylindrical-based and conical-based features of B-rep models. The pre-defined EBC patterns of cylindrical features were used to recognize cylindrical-based features like blind hole, through hole, boss, internal undercuts and conical-based features like chamfers and tapers [19].

Sheen and You [20] developed slicing method to recognize features wherein the workpiece was sliced at two regions: (i) region just below top profile and (ii) region just above bottom profile. Based on the comparison of top and bottom profiles shape, area and shape of walls between them, 2.5D and 3D features were recognized. The research work was constrained to recognition of 2.5D and 3D machining features machinable on 3-axis CNC milling. Sivakumar and Dhanalakshmi [21], based on feature extraction, proposed a simplified methodology to integrate computer-aided inspection (CAI) into CAD and CAM. The part model information extracted from STEP AP203 file was utilized to generate the NC code. The generated G codes were controller dependent unlike STEP NC, and using these generated NC codes, the parts were machined in CNC. The work mainly focuses on feature extraction and machining of cylindrical parts.

Nasr and Kamrani [22] classified prismatic form features into (i) interior form features and (ii) exterior form features and developed a feature recognition algorithm to recognize these features: slots, holes, pockets, inclined surfaces and steps of prismatic parts. The interacting and compound features were not recognized. Balic et al. [23] designed a programming system based on genetic algorithm (GA) for CNC cutting tools selection, tool sequences planning and optimization of cutting conditions. The system recognized already-machined part of workpiece and generated optimal tool path. The work mainly focuses on tool selection, tool path generation and detecting collisions of cutting tool with workpiece.

A set of concepts were introduced into AFR to recognize features of B-rep CAD models wherein the decoupling feature representation and recognition was adopted. The features like blind pocket, through pocket, blind slot, through slot, circular slot, blind step, blind hole, through hole were recognized, while chamfer features were not recognized. The recognition of features of non-polyhedral CAD models using ontology remains unexplored [24].

The hybrid approaches like graph- and hint-based, graph- and rule-based approaches need to overcome the presence of fillets before recognizing 2.5D features. Volume decomposition approach was only applied to recognize features of cuboid, cylindrical shape parts, cast-then-machined parts [25] and to recognize features formed in single machining process using 3-axis machine. Other feature recognition methods only focused on recognition of cylindrical- and conical-based features, features that are machinable on 3-axis CNC milling, and features of prismatic parts. Hence, there is a need for studying novel method that can automatically recognize interacting and compound volumetric features without overcoming the presence of fillets and generate material removal volume for each recognized feature. Therefore, the present work will enhance the classification of regular form features and proposes a novel approach to recognize interacting and compound volumetric features. The present work also will generate MRV for the recognized volumetric features.

2 Technical definition

A component is made of surfaces, and each surface is made of one or more faces. The surfaces that surround a component are called boundary surfaces. The shape of faces can be of any form, and geometrical shapes such as planar, cylindrical, conical, spherical and torus represent regular form. The developed algorithm recognizes regular form faces and their features of input CAD part model and categorizes the faces into regular form category based on their geometrical shapes.

Form feature is a class used to represent features that are characterized by their geometrical shapes, for example non-complex features like hole, boss, pocket and chamfer. Compound features (like open pocket with hole) are made of two or more non-complex features [26]. The regular form features are classified (Fig. 1a) into two types: (i) volumetric features and (ii) surface-based features, and the present work mainly concentrates on volumetric features. The feature obtained by machining certain amount of material from stock model is called volumetric feature, while feature obtained by metal forming process is called surface-based feature, for example bead, bend and flange [28]. Volumetric features are subclassified into three types: within-face features, edge-based features, edge- and vertex-based features. The within-face features (boss, circular holes, non-circular holes) lie within peripheral loop of a part’s face, edge-based features (through slot, notch) form a channel between two faces of a surface, and slot feature may be of U-slot and UV-slot types. Edge-based feature (shell) forms a shell body of a part. Edge- and vertex-based features (step, fillet, chamfer, open pocket) lie adjacent to boundary faces of a part. A part model having volumetric features is shown in Fig. 1b.

Fig. 1
figure 1

a Classification of regular form features; b part model with volumetric features

3 Methodology

A new algorithm is developed to automatically recognize faces, interacting and compound volumetric features of a part and to automatically generate material removal volume for the recognized volumetric features. The CAD part model in SAT file format extension is input, and results are obtained in TXT file and SAT file formats. The flowchart of the algorithm is shown in Fig. 2.

Fig. 2
figure 2

Flowchart of algorithm for interacting and compound features recognition

3.1 Part model

A boundary representation (B-rep) CAD part model contains faces, loops, edges and vertices and is perfect input for feature recognition techniques. The input CAD part model is of regular form solid body with two-manifold boundary, and algorithm utilizes the dimensions of input CAD part model to construct stock model by setting tolerances as per user requirements.

Each recognized face of input model is set apart based on their geometrical shapes and segmented into three regions: top, contour and bottom, based on the face’s normal vector direction at its midpoint. The segmentation is necessary to generate SDVs and explode view for ODValgorithm. The midpoint of a parametric face is determined by parametric Eq. (3.4).

The conditions to evaluate vector for X, Y and Z vector components and face segmentation based on normal vector direction are shown in Table 1.

Table 1 Segmentation of a face

3.2 Loop

A loop is made of edges and is of two types: peripheral loop and internal loop. The loop that bounds a face is called peripheral loop, while the loop that lies within a peripheral loop is called internal loop. Based on the number of loops (N) present on face, the algorithm categorizes face into two types:

  1. i.

    Face with internal features

    If (∞ > N > 1);

  2. ii.

    Face without internal features

    If (2 > N > 0);

Next, face with internal features is looked into for type of internal loop(s), and if the loop type detected is hole (H) then the hole may be

  1. i.

    H == CH;

    If CE \( \in \) loop of H and SE \( \notin \) loop of H;

  2. ii.

    H == NCH;

    If SE \( \cap \) CE \( \in \) loop of H;

  3. iii.

    H == B;

    If loop of H \( \in \) P;

  4. iv.

    H == S;

    If loop of H == peripheral loop,

where CH is circular hole; NCH is non-circular hole; SE is straight edge(s); CE is curve edge(s); B is boss; P is protrusion; and S is shell.

If the loop type is peripheral loop (Pr) and is twice detected, then surface has slot or notch feature.

3.3 Outermost face

The part model shown in Fig. 3 is taken from the paper [6] and appended with more features.

Fig. 3
figure 3

Part model

The algorithm recognizes all the outermost planar faces (OPFs) of top, contour and bottom regions by applying rules in the ways shown in Table 2.

Table 2 Recognition of outermost planar face

3.4 Feature face

The algorithm recognizes all feature faces (FFs) of top, contour and bottom regions by applying rules in the ways shown in Table 3.

Table 3 Recognition of feature face

3.5 Identification of volumetric features

The algorithm identifies a volumetric feature by type of loop and designating each face of feature as cf, pf, ipf, bf, ch, f based on the geometrical shape of feature face identified, as shown in Table 4.

Table 4 Identification of features
  1. i.

    Within-face features

    The algorithm identifies boss and assigns their faces with bf and cf; here, the base face (bf) will be at top. The identified through circular hole is assigned with only cf for its faces, while blind circular hole is identified and its faces are assigned with cf and bf. Similarly, through non-circular hole faces are identified and designated with pf, f and/or ch, and blind non-circular hole faces are identified and designated with pf, bf, f and/or ch.

  2. ii.

    Edge-based features

    The algorithm identifies U-slot (blind or through) feature and designates its faces with pf, bf, f and/or ch. The algorithm identifies UV-slot (blind or through) feature and designates its faces with pf, ipf, bf, f and/or ch. Notch feature is identified and assigned with two ipf for its faces, while algorithm-identified shell feature faces are designated with pf, cf, bf, f and/or ch.

  3. iii.

    Edge- and vertex-based features

    A curve face that satisfies cases IV, V and VI is identified as fillet feature, and a planar face that satisfies cases IV, V and VI is identified by the algorithm as chamfer feature. A combination of two pf with/without f and/or ch is identified as step feature, and the open pocket feature is identified and designated with pf, bf, f and/or ch for its faces.

3.6 Generation of MRV for faces

Steps followed by algorithm to automatically generate MRV for recognized faces are (i) face copy, (ii) displacement of copied face and (iii) lofting and Boolean subtraction [27]. Figure 4 depicts the step-wise generation of MRV.

Fig. 4
figure 4

Step-wise generation of MRV for a part model

  1. i.

    Face copy

    The geometrical shape and size of recognized face without internal features are copied twice to obtain two face copies of the face. In case of recognized face having internal features, separation and covering of loops is performed before face copy step.

    The peripheral and internal loops of recognized face are separated and are perfectly covered by new face along their geometrical boundaries using cover-circuit API function. The so-obtained new faces are copied to obtain another face copy; Fig. 4a, c shows internal loop covering of one hole feature, and loop covering for remaining holes is done similarly.

  2. ii.

    Displacement of copied face

    The second face copy of recognized face is displaced to certain distance as per user requirements in the same normal vector direction as of recognized face, while first face copy is not displaced from its original position. In case of exploded view both the first and second face copies are displaced to certain distance in the same normal vector direction as of recognized face’s normal vector direction at its midpoint (Fig. 4a).

  3. iii.

    Lofting and Boolean subtraction

    The sub-delta volume is generated in between the two face copies using loft API function. Figure 4b, d shows sub-delta volume for one hole feature, and similarly, sub-delta volume for remaining holes is generated. An additional step Boolean subtraction is performed in case of recognized face having internal features, to obtain MRV. The sub-delta volume of face covering internal loop (Fig. 4d) is Boolean-subtracted from sub-delta volume of face covering peripheral loop (Fig. 4b) to obtain MRV for top region face with internal features (Fig. 4e).

3.7 Generation of MRV for features

The stock model made of only x, y and z tolerances is called hollow stock model, and the tolerance values are input by the user. The algorithm Boolean-subtracts part model and hollow stock model in stock model to obtain the material removal volume for features of part model (Fig. 5).

Fig. 5
figure 5

Boolean subtraction operation

4 Implementation and verification of the developed algorithm

For the implementation of algorithm Microsoft visual studio 2010 professional edition version 10.0.30319.1 RTMRel with Microsoft.NET Framework version 4.5.50938 RTMRel SP1 platform and ACIS solid modeler R25 SP1 was used.

4.1 Example 1

A regular form part model (Fig. 6a) is considered to test and verify the developed algorithm. The CAD part model of SAT file format is input, and the algorithm recognizes all the outermost faces and feature faces and generates MRV for all the recognized faces (Fig. 6b, c).

Fig. 6
figure 6

a CAD part model, b MRV for outermost faces, c MRV for feature faces and designation to recognized features

The loop type detection by algorithm (Fig. 7a) shows that there are six peripheral loops made of 12, 14, 4, 4, 9 and 9 edges, respectively, and within each peripheral loop there are 3, 1, 1, 1, 1 and 1 hole(s), respectively. The number of edges of holes highlighted by curly brackets is equal to the number of edges of their peripheral loops, thereby hinting the presence of shell features.

Fig. 7
figure 7figure 7

a Results of loop type detection, b top view and isometric bottom view of MRV showing base faces (bf) of features

Figure 7b shows top view, isometric bottom view of MRV for faces and designation of feature faces by algorithm. The base faces (bf) of blind holes, and open pockets are shown in isometric bottom view of MRV.

The top view of MRV (Fig. 7b) depicts the below-mentioned volumetric features that are identified by the algorithm by designating their faces;

  1. 1.

    Combination of cf-cf-bf represents the boss feature.

  2. 2.

    Combination of cf-cf represents through circular hole feature.

  3. 3.

    Combination of cf-cf-bf represents blind circular hole feature.

  4. 4.

    Combination of pf-ch-pf-ch-pf-ch-pf-ch-bf represents through non-circular hole feature.

  5. 5.

    Combination of pf-f-pf-f-pf-f-pf-f represents blind non-circular hole feature.

  6. 6.

    Combination of pf-bf represents step feature.

  7. 7.

    A single f represents fillet feature.

  8. 8.

    A single ch represents chamfer feature.

  9. 9.

    Combination of pf-bf represents step feature which is interacting with pocket feature.

  10. 10.

    Combination of pf-bf represents step feature which is interacting with pocket feature.

  11. 11.

    Combination of pf-f-f-pf-bf represents open pocket feature.

  12. 12.

    Combination of pf-f-f-pf-bf designated to feature faces represents open pocket feature.

  13. 13.

    Blind UV-slot is shown by a combination of pf-ipf-pf-ipf-pf-bf designated for its faces, and the feature forms compound feature with pocket (Fig. 8).

    Fig. 8
    figure 8

    Blind UV-slot

  14. 14.

    Combination of pf-pf-pf-bf represents blind U-slot, and the feature forms compound feature with pocket (Fig. 9).

    Fig. 9
    figure 9

    Blind U-slot

  15. 15.

    A combination of pf-pf-pf-pf assigned for feature faces represents shell feature (Fig. 10).

    Fig. 10
    figure 10

    Shell

  16. 16.

    Combination of pf-pf-pf-pf represents shell feature (Fig. 11).

    Fig. 11
    figure 11

    Shell

  17. 17.

    Through U-slot is represented by a combination of pf-bf-pf-bf and is a compounded with notch feature (Fig. 12).

    Fig. 12
    figure 12

    Shell

  18. 18.

    A combination of ipf-ipf represents notch feature (Fig. 12).

The MRV for all the features of part model is obtained by performing Boolean subtraction operation and is shown in Fig. 13a, b.

Fig. 13
figure 13

a MRV for features, b top, front and right side views of MRV for features. Application of novel approach for auto-recognition of feature faces, outermost faces, interacting and compound volumetric features of part model and auto-generation of material removal volume for feature faces is found to be feasible. The blind features and through features present in part model are successfully identified, and delta volume is generated for each feature. All the features volumes obtained are coded with different colors to show that each feature volume can be individually picked and exploded in any x, y and z directions as per user requirements

4.2 Example 2

A V-block part model having fillet and chamfer in its slot feature is considered (Fig. 14a). The SAT file format of V-block part model is input to algorithm for test and validation. The algorithm recognizes all the outermost faces and feature faces and generates material removal volume for the recognized feature faces (Fig. 14b).

Fig. 14
figure 14figure 14

a V-block; b MRV for outermost faces and feature faces. c Results of loop type detection; d top and bottom views of MRV with designations

The results obtained from loop type detection by algorithm (Fig. 14c) show one peripheral loop made of 32 edges, and within the peripheral loop are four holes made of two edges. The top view of material removal volume shows designations of feature faces, and bottom view of material removal volume (Fig. 14d) shows the face containing four blind circular holes, two through U-slots and two through UV-slots.

Figure 15 shows algorithm-generated material removal volume for features. The algorithm generates volume for slots and chamfer, and fillet features present within a feature. The total time taken by algorithm to identify feature faces and generate material removal volume for the recognized feature faces is approximately 23 s.

Fig. 15
figure 15

MRV for all the features of V-block part model

The new approach applied to auto-recognize faces and its features and auto-generate material removal volume for the so-recognized feature faces is found to be accomplished. The new method of feature identification is successfully identified through UV-slots, through U-slots and blind holes.

5 Conclusion

The developed algorithm recognizes interacting and compound volumetric features, and there is no need to overcome the presence of fillets before recognizing any features, as in case of other hybrid approaches developed by other researches [5, 6, 8]. The originality of this work is that (i) classification of regular form features exhibits enhanced sub-types of volumetric features and (ii) algorithm can detect feature faces and generate MRV for each chamfer and fillet features that are internal part of another feature. This novel approach is applied to recognize outermost faces and feature faces, and the recognized feature faces are designated to identify feature type. The developed algorithm successfully recognizes all features and generates material removal volume for the feature faces. The recognition of interacting and compound volumetric features will be useful for further development of manufacturing of prismatic parts.