Automatic Recognition of Machining Features using STEP Files

DOI : 10.17577/IJERTV2IS3117

Download Full-Text PDF Cite this Publication

Text Only Version

Automatic Recognition of Machining Features using STEP Files

V. N. Malleswaria*, Dr. P. M.Vallib, Dr. M. M. M. Sarcarc

a Department of Industrial Engineering, GITAM University, Visakhapatnam, India;

b Department of Industrial Engineering, GITAM University ,Visakhapatnam, India;

c Department of Mechanical Engineering, Andhra University, Visakhapatnam, India

Abstract

Creating link between CAD and CAPP is one of the most difficult tasks in concurrent design and manufacturing. Without proper interface between CAD and CAPP it is impossible to generate a process plan efficiently. Feature recognition is the key to achieve this objective.

In the present work software is developed in JAVA for feature recognition purpose. The input for the software is a STEP file. The software recognizes various strings in the STEP file, interprets them in terms of manufacturing and recognizes features for turned components. Rule based technique is used during recognizing process. The proposed feature recognizer is capable of recognizing cylinder and cross hole features.

Keywords- CAD, CAPP, Feature recognition, STEP

  1. Introduction

    Computer Aided Process Planning (CAPP) plays an important role in the development of Computer Integrated Manufacturing (CIM) systems and provides a vital link between computer Aided Design (CAD) and Computer Aided Manufacturing (CAM). Automatic extraction and recognition of part features directly from a CAD database also strengthen the link between CAD and CAPP. When manual process is used in translation of geometry language of the CAD to the higher level language of CAPP, it is often error prone, inconsistent and time consuming.

    Direct information transfer using feature technology from CAD to CAPP will reduce many problems. But, most of existing CAD system does not provide part feature information. In other word, CAPP systems do not understand the three dimensional geometry of the designed parts from CAD systems in term of their engineering meaning related to manufacturing or/and assembly. To solve the CAD and CAPP interface problem, the feature recognition is one the most efficient approach.

    Feature extraction can be platform independent and platform dependent. In the platform independent approach, the parts geometrical data are extracted from a neutral file such as DXF, IGES, and STEP etc. In contrast, the platform dependent approach extracts the information of the design features directly from a design by feature solid model through the object oriented model of the part.

    There are different neutral files available. Some of the neutral files are IGES, STEP, DXF, STL files etc. STEP and IGES are most popular. STEP is intended for product data exchange, whereas IGES is for geometry data exchange. STEP is worldwide recognized neutral file format where it is available for almost all commercial CAD software.

    ISO 10303 is an ISO standard for the computer interpretable representation and exchange of product manufacturing information. Its official title is: Automation systems and integration – Product data representation and exchange. It is known informally as "STEP", which stands for "Standard for the Exchange of Product model data". For mechanical parts, the description of product data has been standardized by ISO10303 and different protocols are available in STEP. Some of the Application Protocols are AP203, AP214, AP224 etc used for different applications. AP203 is Configuration controlled 3D designs of mechanical parts and assemblies. ISO-10303-21 is the beginning keyword of STEP file and END-ISO-10303-21 is the ending key word of the STEP file. It is based on the B-Rep.

  2. Literature Review

    Recognizing machining features from a CAD model is the first and foremost task in a CAPP system to plan further activities. There have been many previous attempts to recognize form features for manufacturing purposes, which can be broadly categorized into four areas: Syntactic pattern recognition, Rule based, Hint based, Graph based and Artificial neural network based systems. Syntactic pattern recognition uses a sequence of coded characters. The authors [1] extracted features from engineering drawings created in CADD format. The authors [2] developed a system for recognition of tapered and curved base features later used same technique for identifying the finish cut machinable volume from rough machined parts. Rule based technique used by authors [3-5]. The authors [3] used (Data Interchange Format) DXF file for the recognition of features. The author [4] used the STEP design file as a information source for recognition of features. This work is limited to only prismatic parts. The author [5] used STEP 214 file for extraction of basic features. The authors [6] used 3D model data in STEP AP-203

    format as input and recognized various features. This work was mainly focused for sheet metal components. The authors [7] developed a system for 2.5 D parts and used hint based technique. The graph based technique was introduced by authors [8], presented attributed adjacency graph for recognizing polyhedral features for process planning. In graph based technique the features are recognized using arcs or nodes. Nodes represent attributes such as surface finish of a face, type of face such as planar, cylindrical etc. whereas arcs represents concavity and convexity of the corresponding edges. The main limitation of this approach is its inability to detect features with non planar surfaces. The use of the modified attributes adjacency scheme was another effort by authors [9] in identifying features. The authors [10] used both graph and hint based feature recognition. The authors [11] presented a model for 2.5 D parts for this purpose used artificial neural network. The authors [12] used ray firing technique, rays are passed from a virtual plane parallel to machining surface. Because of length change from plane to various parts of the CAD models, different patterns are produced. From these patterns, features are recognized.

    Most of the feature recognition systems developed so far deal with a variety of straight features of slot class, hole class and their interactions with each other on the planes for prismatic parts. These systems are found lacking in the identification of complicated features, such as cross hole features and inclined holes in rotational parts. This research work concentrates on developing a feature recognizer for this purpose.

  3. Methodology

    In this research, the STEP file is suggested to be the standard for the design file due to the fact that it is an emerging international standard protocol for the exchange of technical product data and the standard protocol is one of the key tools in the field of electronic commerce. It is part of the thrust toward global manufacturing and worldwide competitiveness. Many major multinational companies are investing significant resources for its development and implementation. The first requirement for the present developed system is extracted geometrical data from STEP file.

    1. Geometric data Extraction from STEP file

      The STEP file is a text file that contains geometrical data of a component including boundary representation data such as shells, faces, edge loops, vertices; surface geometric data such as planes, cylinders, cones, toroidal, spherical; curve geometry such as lines, circles, B-splines, ellipses.

      Searching STEP file starts with a string CLOSED_SHELL and ends with the coordinates of geometry. Extraction of various strings and entities (# number) from STEPfile is done according to the hierarchy shown in (Figure 1). In this research JAVA language is used to search various strings and entities in the STEP file. JAVA is based on object oriented program, so representation and extraction of data is simple and easy. The command strLine.indexOf("CLOSED_SHELL") is one of the functions that can be used to locate a

      specified text string, e.g., CLOSED_SHELL of a file. Like that all the strings are located and placed in arrays. All these arrays are placed in tabular form and then these tables are displayed in windows.

      Figure 1. Hierarchy of geometrical strings

      For the purpose of recognition of feature, evaluation of EDGE_CURVE construction, circle centers, radius of the circles, various surfaces, surface radius and axis coordinates of surface is required. For explanation of above aspects recognition of a cylindrical feature is described in detail in the following sections.

      1. EDGE_CURVE construction

        As shown in (Figure 2) CLOSED_SHELL (#35) consists of various ADVANCED_FACEs (#75). Each ADVANCED_FACE is bounded by number of edges which is termed as FACE_OUTER_BOUND (#74). Each FACE_OUTER_BOUND is formed with edges as a loop which is termed as EDGE_LOOP (#69). Further each EDGE_LOOP is formed by ORIENTED_EDGEs (#70, #71, #72, #73) termed as EDGE_CURVE (#49, #56, #63, #68). Each

        EDGE_CURVE last entity connects geometric shapes like CIRCLE (#44), LINE (#53), CIRCLE(#60), LINE(#67). So, for a cylinder EDGE_CURVE construction is circle, line, circle, line.

      2. Finding the centers of circles of a cylinder

        As shown in (Figure 2) and in continuation from EDGE_CURVE construction (eg. circle, line, circle, line) each circle (#44 and #60) consists of AXIS2_PLACEMENT_3D (#43). In turn, AXIS2_PLACEMENT_3D consists of a circle center as CARTESIAN_POINT (#41). The Last three numbers without hashes of CARTESIAN_POINT indicates coordinates of the circle center (x=0, y=0, z=0).

      3. Finding the radius of circle of a cylinder

        As shown in (Figure 2) and in continuation from EDGE_CURVE construction (eg. circle, line, circle, line,) the last number without hash (#) in the CIRCLE (#44) denotes the radius of the circle (50).

      4. Finding the surface and radius

        As shown in (Figure 2) CLOSED_SHELL (#35) consists of various ADVANCED_FACEs (#75). Each ADVANCED_FACE consists of surfaces like CYLINDRICAL_SURFACE (#40), CONICAL_SURFACE,TOROIDAL_SURFACE,SPHERICAL_SURFACE etc. The last number

        without hash (#) in the CYLINDRICAL_SURFACE denotes the radius of the cylinder (50).

      5. Recognition of axis coordinates of a cylinder

        As shown in (Figure 2) CYLINDRICAL_SURFACE string line contains axis information (#39). This entity (#39) is in turn connected to AXIS2_PLACEMENT_3D. In this line, entity #93 connects to CARTESIAN_POINT (Axis2P3D Location .) string. Last three numbers (0, 30,

        0) indicates axis coordinates of the cylinder.

            1. Recognition of a cylindrical feature

              After extracting data from STEP file, following rules are applied for recognition of cylindrical feature. The geometry is shown in Figure 3.

              Rule 1: EDGE_CURVE construction must be circle, line, circle, line (or) line, circle, line, circle Rule 2: Radius of circles in EDGE_CURVE is equal to cylinder radius.

              Rule 3: X and Z coordinates of circle centers are same and Y coordinate is different. Rule 4: Surface must be CYLINDRICAL_SURFACE.

              Figure 3 Cylindrical feature geometry

            2. Recognition of a cylindrical cross hole feature

              Existence of bspline string in EDGE_CURVE construction indicates cross hole feature presence. The procedure for finding the cylindrical cross hole feature, position with respect to axis, inclination of hole is shown in Figure 4.

              #35=CLOSED_SHELL('Closed shell',(#75,#92,#132,#149,#177,..#586));

              #75=ADVANCED_FACE('PartBody',(#74),#40,.T.);

              #40=CYLINDRICAL_SURFACE('generated cylinder',#39,50.); #74=FACE_OUTER_BOUND('',#69,.T.) ;

              #69=EDGE_LOOP('',(#70,#71,#72,#73)) ;

              #70=ORIENTED_EDGE('',*,*,#49,.F.) ;

              #71=ORIENTED_EDGE('',*,*,#56,.T.) ;

              #72=ORIENTED_EDGE('',*,*,#63,.T.) ;

              #73=ORIENTED_EDGE('',*,*,#68,.F.) ;

              #49=EDGE_CURVE('',#46,#48,#44,.T.) ;

              #56=EDGE_CURVE('',#46,#55,#53,.F.) ;

              #63=EDGE_CURVE('',#55,#62,#60,.T.) ;

              #68=EDGE_CURVE('',#48,#62,#67,.F.) ;

              #44=CIRCLE('generated circl',#43,50.) ;

              #53=LINE('Line',#50,#52) ;

              #60=CIRCLE('generated circle',#59,50.) ;

              #67=LINE('Line',#64,#66) ;

              #43=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#41,#42,$) ;

              #59=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#57,#58,$) ;

              #41=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,0.)) ;

              #57=CARTESIAN_POINT('Axis2P3D Location',(0.,20.,0.)) ;

              #39=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#93,#94,#95) ;

              #93=CARTESIAN_POINT('Axis2P3D Location',(0.,30.,0.)) ;

              #35=CLOSED_SHELL('Closed shell',(#75,#92,#132,#149,#177,..#586));

              #75=ADVANCED_FACE('PartBody',(#74),#40,.T.);

              #40=CYLINDRICAL_SURFACE('generated cylinder',#39,50.); #74=FACE_OUTER_BOUND('',#69,.T.) ;

              #69=EDGE_LOOP('',(#70,#71,#72,#73)) ;

              #70=ORIENTED_EDGE('',*,*,#49,.F.) ;

              #71=ORIENTED_EDGE('',*,*,#56,.T.) ;

              #72=ORIENTED_EDGE('',*,*,#63,.T.) ;

              #73=ORIENTED_EDGE('',*,*,#68,.F.) ;

              #49=EDGE_CURVE('',#46,#48,#44,.T.) ;

              #56=EDGE_CURVE('',#46,#55,#53,.F.) ;

              #63=EDGE_CURVE('',#55,#62,#60,.T.) ;

              #68=EDGE_CURVE('',#48,#62,#67,.F.) ;

              #44=CIRCLE('generated circl',#43,50.) ;

              #53=LINE('Line',#50,#52) ;

              #60=CIRCLE('generated circle',#59,50.) ;

              #67=LINE('Line',#64,#66) ;

              #43=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#41,#42,$) ;

              #59=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#57,#58,$) ;

              #41=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,0.)) ;

              #57=CARTESIAN_POINT('Axis2P3D Location',(0.,20.,0.)) ;

              #39=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#93,#94,#95) ;

              #93=CARTESIAN_POINT('Axis2P3D Location',(0.,30.,0.)) ;

              Figure 2 Partial STEP file for cylinder recognition

              Figure 4. Feature recognition procedure

            3. Development of a JAVA program

        Developed JAVA program is user friendly and extracted geometrical data can be seen in tabular form. When a JAVA program is executed, a window is opened and asks filename as shown in (Figure 5).

        After entering filename with .stp extension press OK button a window opens as shown in (Figure 6).In this window if window button is pressed then FOB (face outer bound), FB (face bound), PLANE, CIRCLE, MAIN and FEATURE buttons appears. When these buttons are pressed various windows opens as shown in Figure 7. When FEATURE button pressed then it displays the various features and parameters of each feature. When other buttons are pressed various windows are opened which displays extracted data tabular form. Face bound table information will be displayed when there is an internal feature exists.

        Figure 5. Window asking filename

        Figure 6. Starting window of JAVA program

        Figure 7. Geometric extracted from STEP file displayed in FOB, FB, PLANE, CIRCLE and MAIN tables

  4. Case study to illustrate the developed feature recognition methodology

    The part shown in Figure 8(a) is considered to explain the methodology. This consists of seven features. Two external cylinders, four internal cylinders (holes) and one cross hole. This cross

    hole is at a distance of 26mm from cylinder of radius 50 and length 10. Figure 8(b) shows feature numbers. All features re recognized and also their parameters like length, radius, position of hole with respect to axis and nature of hole (through/blind) is recognized. Final output is shown in Figure 9. The results of experimentation showed that the proposed method for feature recognition is capable of automatically identifying the feature type, comprising faces and feature dimensions.

  5. Conclusions

In the present work, a feature recognizer was developed to recognize cylinder and cylindrical cross hole features. The developed methodology is coded using the JAVA language. Various components are tested on a Pentium IV 2.4 GHz PC for its capability of handling combinations of more than one feature. The feature recognizer took a minimum amount of time to recognize the features and to generate the output. Some of the limitations and characteristics of the system and issues to be investigated in future research are as follows. The system is limited to rotational components. However, the principles and techniques can be extended to prismatic components with modification of the new coding scheme. The data extracted contain information such as feature type and dimensions of feature that is required for process planning functions for manufacturing a part.

Figure 8 (a) cast study (b) case study with feature numbers

Figure 9 Output for case study

References

  1. Prabhu, B.S. and Pande, S.S. Automatic extraction of manufacturable features from CADD models using syntactic pattern recognition technique. International Journal of Production Research, 37(6), 1259-1281, 1999.

  2. Arivazhagan, A., Mehta, N. K. and Jain, P. K. Development of a feature recognition module for tapered and curved base features. International Journal of Advanced Manufacturing Technology, 39(34), 319-332, 2007.

  3. Ahmad, N. and Haque, A.F.M.A. Manufacturing feature recognition of parts using DXF files. 4th international conference on mechanical engineering, 111-115, 2001.

  4. Lau, H.C.W., Lee, C.K.M., Jiang, B., Hui, I.K. and Pun, K.F. Development of a computer- integrated system to support CAD to CAPP. International Journal of Advanced Manufacturing Technology, 26(910), 1032-1042, 2004.

  5. Yifei, T., Dongbo, L., Changbo, L. and Minjian, Y. A feature-extraction-based process- planning system. International Journal of Advanced Manufacturing Technology , 38(11- 12),1192-1200, 2007.

  6. Kannan, T.R. and Shunmugam, M.S. Processing of 3D sheet metal components in STEP AP-203 format Part I: feature recognition system. International Journal of Production Research

    ,47(4), 941-964 , 2009.

  7. Verma, A.K. and Rajotia, S.A hint-based machining feature recognition system for 2.5D parts. International journal of production research, 46(6),1515-1537, 2008.

  8. S.Joshi and T.C.Chang, Graph based heuristics for recognition of machined features from a 3D solid model. Computer Aided Design, 20, 58-66, 1988.

  9. Ibrhim, R.N. and McCormack, D. Process planning using adjacency-based feature extraction. International Journal of Advanced Manufacturing Technology, 20(11), 817-823, 2002.

  10. Gao, J., Zheng, D. T. and Gindy, N. Extraction of machining features for CAD/CAM integration. International Journal of Advanced Manufacturing Technology, 24(78), 573- 581,2004.

  11. Sunil, V.B. and Pande, S.S.Automatic recognition of machining features using artificial neural networks. International Journal of Advanced Manufacturing Technology, 41(9-10), 932- 947,2009.

  12. Ranjan, R., Kumar, N., Pandey, R.K. and Tiwari, M.K. Automatic recognition of machining features from a solid model using the 2D feature pattern. International Journal of Advanced Manufacturing Technology, 26(7-8), 861-869, 2004.

Leave a Reply