A method of identifying closed pocket manufacturing features from a CAD model

CN118245788BActive Publication Date: 2026-10-30JIKIMO NETWORK TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202410445917.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-04-15
Publication Date
2026-10-30
Estimated Expiration
2044-04-15

AI Technical Summary

Technical Problem

[0005]现有技术的技术方案是利用主元分析PCA方法将待识别三维CAD实体模型的五维点云数据组降维至二维,从而获得待识别三维CAD实体模型的二维点云数据组,无法识别封闭槽腔特征;本发明提出了一种全新的识别方法,利用Open CASCADE库识别CAD模型中的封闭槽腔特征

Benefits of technology

[0031]本发明基于点、边、环、面的拓扑关系进行识别,可识别具有样条曲线复杂轮廓的封闭槽腔,适用范围广,同时设计了封闭槽分割算法,使得本方法可应用于阶梯槽的情景,为制造企业提供了便捷、准确的封闭槽腔识别方式,基于C++OCC库的识别方法,具有较快的运行速度,有助于提高企业的生产效率。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118245788B_ABST
    Figure CN118245788B_ABST
Patent Text Reader

Abstract

The present application relates to a kind of methods for identifying closed groove manufacturing features from CAD model, it includes identifying and removing geometric boundary surface, obtain the surface to be processed;Then the surface to be processed is clustered grouping;While identifying the empty ring in all rings of Shape, and sorting according to the area size of the figure surrounded by empty ring, then determine the surface group where empty ring is;Confirm the surface group is not processed, process surface group by closed groove segmentation algorithm, obtain one or more closed grooves;After processing next empty ring;Finally, groove surface is deleted from the surface to be processed, repeat the above process, until all empty ring is processed completely;The identification method involved in the present application is based on the topological relationship of point, edge, ring and surface, can identify closed groove cavity with complex profile of spline curve, wide application range, can be applied to the situation of step groove, provide a convenient and accurate closed groove cavity identification method for manufacturing enterprises, with faster running speed, can improve the production efficiency of enterprise.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of CAD model feature recognition technology, and in particular to a method for identifying manufacturing features of closed cavities from CAD models. Background Technology

[0002] Currently, in the field of CNC machine tool manufacturing, in order to manufacture high-precision and complex products, increase production capacity, ensure quality, and avoid significantly increasing costs, digital design and manufacturing must be implemented. Among these, computer-aided design (CAD) is an effective means of verifying the feasibility of complex product designs. Computer-aided process design (CAPP), as the link between CAD and CAM, plays a crucial role in technical information processing, feature extraction, process planning, and integration. It can interpret the design information contained in CAD based on model features. Currently, the input product data used for feature recognition adopts various neutral file formats, such as IGES, STL, and STEP.

[0003] Closed cavities are one of the most common and important machining features, and they are widely found in various parts used daily. If we can accurately and efficiently extract the closed cavity features from the STEP file and transmit their feature information, we can provide a data foundation for subsequent automatic toolpath planning.

[0004] Based on the search results, there is currently a patent publication number: CN107463533B. This invention discloses a method for recognizing manufacturing features of 3D CAD solid models based on PCA and CNN. It utilizes Principal Component Analysis (PCA) to reduce the dimensionality of the five-dimensional point cloud data set of the 3D CAD solid model to two dimensions, thereby obtaining a two-dimensional point cloud data set of the 3D CAD solid model. The data of the solid model to be recognized is input into a successfully trained CNN manufacturing feature recognizer. The CNN manufacturing feature recognizer outputs all manufacturing features of the 3D CAD solid model to be recognized based on the data. The successfully trained CNN manufacturing feature recognizer achieves the output of all manufacturing features of the 3D CAD solid model to be recognized, with fast recognition speed and high accuracy.

[0005] The existing technical solution uses principal component analysis (PCA) to reduce the dimensionality of the five-dimensional point cloud data set of the three-dimensional CAD entity model to be identified to two dimensions, thereby obtaining a two-dimensional point cloud data set of the three-dimensional CAD entity model to be identified, which cannot identify closed cavity features. This invention proposes a novel identification method that uses the Open CASCADE library to identify closed cavity features in CAD models. Summary of the Invention

[0006] The present invention addresses the technical problems identified in the prior art by providing a method for identifying manufacturing features of closed cavities from a CAD model, comprising the following steps:

[0007] Step 1: Read the Shape from the STEP model, identify the geometric boundary surfaces of the Shape, delete the identified geometric boundary surfaces, and the remaining surfaces are the faces to be processed;

[0008] Step 2: Cluster the faces to be processed. The rule for clustering is to group adjacent faces together.

[0009] Step 3: Traverse each face on the Shape using TopExp_Explorer. For each face, use TopExp_Explorer to find all loops on each face. At the same time, use the ShapeAnalysis::OuterWire function provided by the OCC library to find the outer loops of the face. All loops on the face other than the outer loops are inner loops. The inner loops are the empty loops required by this method. Extract all empty loops in the Shape. Let the number of empty loops be n, and set the index of the empty loop being processed to i.

[0010] Step 4: Traverse all empty cycles, determine the face group containing the i-th empty cycle, traverse all edges in the face group and all edges of the empty cycle. If a face group has an edge that is the same as an edge of the empty cycle, then the empty cycle is in this face group; if the face group corresponding to the empty cycle still exists, then continue to the next step.

[0011] Step 5: Using the empty ring and its corresponding face group as the processing object, the closed slot segmentation algorithm is used to process the face group, dividing the face group into one or more closed slots. Multiple closed slots correspond to the case of stepped slots.

[0012] Step 6: Remove the groove surface of the resulting closed groove from the surface group;

[0013] Step 7: Determine if all empty loops have been processed. The method is i <= n? If i is less than n, it means there are still empty loops to be processed, so continue to step 4 and process i+1 empty loops; if i = n, it means all empty loops have been processed, and then proceed to the next step.

[0014] Step 8: Identify all closed grooves. For the remaining unidentified faces, create a new Shape. Once the closed groove features are identified, the process is complete. End.

[0015] Preferably: After extracting all empty rings in the Shape, sort them according to the area of ​​the empty rings.

[0016] Preferably: In step 4, if the face group corresponding to the empty ring does not exist, then determine whether the face group containing the (i+1)th empty ring exists, until all empty rings have been processed.

[0017] The steps of the closed slot segmentation algorithm are as follows:

[0018] Step 1: Use an empty ring, a Shape, and a group of faces as input;

[0019] Step 2: Based on the empty ring, calculate the direction of the slot, obtain the edges and vertices on the empty ring, traverse all edges on the face group, and find the edges that share vertices with the ring.

[0020] Step 3: Traverse the face group and distinguish between the bottom face and the side face; the face perpendicular to the groove direction is the bottom face, and the rest are the side faces.

[0021] Step 4: Determine whether the side surface is between the first bottom surface and the empty ring. Based on this, classify all side surfaces into the groove surface corresponding to the current empty ring, the surface to be cut, and the remaining side surface. The surface between the first bottom surface and the empty ring is the groove surface corresponding to the current empty ring. Only a part of the surface between the empty ring and the bottom surface is the surface to be cut. The surface that is not in the middle at all is the remaining side surface.

[0022] The determination method is as follows: First, calculate the distance D0 between the bottom face and the empty ring. Then, obtain all vertices (Vertex1, ..., VertexN) of the face, and calculate the distances D1 and D2 between each vertex and the bottom face and the empty ring. If all vertices satisfy D1 + D2 = D0, then this face is the slot face corresponding to the current empty ring; if some vertices of the face satisfy this condition, then it is the face to be cut; if none of the vertices of the face satisfy this condition, then it is the remaining side face.

[0023] Step 5: If there is a surface to be cut, use BRepFeat_SplitShape to cut the surface to be cut, and get newShape and new surface. For the cut new surface, perform step 4 to get the groove surface corresponding to the current empty ring and the remaining side surface.

[0024] Step 6: Place the bottom surface of the first layer into the groove surface corresponding to the current empty ring. At this time, the empty ring and its corresponding groove surface form a complete closed cavity. Store it as the result.

[0025] Step 7: Determine if the remaining groove surfaces are empty. If they are empty, the algorithm ends and the result is output. Otherwise, cluster the remaining bottom surfaces and remaining side surfaces to obtain t sub-surface groups, and let k' = 1.

[0026] Step 8: For sub-face group k', use ShapeAnalysis_FreeBounds to calculate its empty rings;

[0027] Step 9: Using the new empty ring, sub-face group k', and newShape from Step 8 as new inputs, perform Step 1, while k' = k' + 1;

[0028] Step 10: If k'>t, it means that all sub-face groups have been processed and the algorithm is complete; otherwise, proceed to step 8.

[0029] Step 11: Once all faces in the face group have been processed, output the results and the algorithm ends.

[0030] The beneficial effects of this invention patent:

[0031] This invention identifies closed cavities based on the topological relationships of points, edges, loops, and surfaces. It can identify closed cavities with complex spline curve contours and has a wide range of applications. At the same time, a closed cavity segmentation algorithm is designed, which makes this method applicable to stepped cavities. It provides manufacturing enterprises with a convenient and accurate way to identify closed cavities. The identification method based on the C++ OCC library has a fast running speed, which helps to improve the production efficiency of enterprises. Attached Figure Description

[0032] Figure 1 This is a schematic diagram of a closed cavity;

[0033] Figure 2 This is a schematic diagram of an empty loop;

[0034] Figure 3 This is a schematic diagram of the inner and outer ring roads;

[0035] Figure 4 Flowchart of a method for identifying features in a closed cavity manufacturing process;

[0036] Figure 5 This is a schematic diagram showing the surfaces to be processed and the results of clustering and grouping.

[0037] Figure 6 This is a schematic diagram showing the case where the surface to be cut belongs to two slots;

[0038] Figure 7 Here is a flowchart of the closed slot segmentation algorithm;

[0039] Figure 8 This is a schematic diagram of the new surface after the cutting result. Detailed Implementation

[0040] The technical solution of the present invention will be described in detail below. In order to better understand the technical solution of the present invention, the meaning of the terms will be explained first:

[0041] 1. Open CASCADE (hereinafter referred to as OCC) is an open-source 3D geometry calculation and modeling kernel library. It provides rich functions and tools to process and manipulate complex 3D geometric data. It has the characteristics of being open source and free, cross-platform, high performance, extensibility, and multi-language support, giving enterprises more freedom of commercial use rights without having to pay expensive copyright fees like ACIS or Parasolid.

[0042] 2. STEP is an abbreviation for Standard for the Exchange of Product Model Data, a comprehensive ISO standard formally named ISO 10303. This standard describes how to represent and exchange digital product information. STEP provides product information identification as well as the necessary mechanisms and definitions, enabling the exchange of product data. STEP represents an open standard used to meet product data requirements throughout the entire product lifecycle, including geometry, topology, tolerances, relationships, attributes, assembly, and configuration. It is one of the commonly used standards in industrial production.

[0043] 3. Closed cavity: This means the sides of the cavity are all solid surfaces with no openings, such as... Figure 1 As shown, this paper describes the identified closed cavity features using a data structure of rings and cavity-related surface groups. Each closed cavity corresponds to an empty ring and a cavity surface group, the latter containing the side surface of the cavity, and if it is a blind cavity, also containing the bottom surface of the blind cavity. This data structure facilitates the acquisition of information such as the depth and contour of the cavity, which is helpful for subsequent processing planning.

[0044] 4. Empty Ring: An empty ring is a shape enclosed by a ring that has no solid faces inside. In this article, the inner ring is considered an empty ring. For example... Figure 2 As shown.

[0045] 5. Inner ring and outer ring: Both inner and outer rings refer to the outline of a surface. For example... Figure 3 As shown, Figure 3 for Figure 2 In a solid object, a face is represented by a solid line (outer ring) and a dashed line (inner ring). Each face has an outer ring, while it may have one or more inner rings, or none at all.

[0046] 6. STEPControl_Reader class: This is a class in Open CASCADE used to read STEP format CAD model files and convert them into Open CASCADE data structures.

[0047] 7. The TopExp_Explorer class is a unified tool in Open CASCADE for traversing sub-objects of a shape. It provides a convenient way to access sub-objects of a shape, such as vertices, edges, faces, and volumes.

[0048] 8. TopoDS_Face: A data structure representing a face. A face is typically composed of boundary curves and has normal vectors and parameterized expressions. In Open CASCADE, TopoDS_Face is a wrapper around a face object and provides some operation and attribute access interfaces.

[0049] 9. TopoDS_Wire: A data structure representing a ring. A ring is a collection of connected edges arranged in a certain order, forming a closed or open curve.

[0050] 10. TopoDS_Edge: A data structure representing an edge. An edge typically consists of a start point, an end point, and a continuous curve segment.

[0051] 11. TopoDS_Vertex: A data structure representing a vertex. A vertex is a point in a geometric figure, with three-dimensional spatial coordinates, and it is usually connected to an edge or face.

[0052] 12. ShapeAnalysis::OuterWire function: A function provided by Open CASCADE for finding the outer ring of a face. The function takes the face as input and returns the outer ring corresponding to that face.

[0053] 13. BRepFeat_SplitShape tool: Used to split a given shape object into two parts. This tool class is commonly used for cutting operations in geometric modeling, such as cutting a solid into two or more parts. Input: The shape of the solid to be cut, the edges describing the cutting location, and the faces containing those edges. Output: The new solid shape after cutting, including the newly cut faces.

[0054] 14. ShapeAnalysis_FreeBounds: This is a utility class in Open CASCADE used to analyze free boundaries in shape objects. Free boundaries are boundaries on a shape that are not constrained by other faces or curves. One function is to generate one or more loops from multiple input edges, with the generation rule being to connect edges with common points to form loops.

[0055] The identification of manufacturing features first requires extracting topological elements such as points, edges, loops, and faces from the STEP file. Then, the closed cavity features are located through the topological relationships between these elements. Since the Open CASCADE library (hereinafter referred to as the OCC library) provides rich data structures and algorithms for manipulating geometry, describing and analyzing topological relationships, the identification scheme of this invention uses the STEPControl_Reader class provided by the OCC library to read the STEP file and construct a solid (hereinafter referred to as a Shape). Then, the TopExp_Explorer class extracts all point, edge, loop, and face information from the Shape.

[0056] The identification process of this invention patent is as follows: First, identify and remove geometric boundary surfaces to obtain the surfaces to be processed; then, cluster the surfaces to be processed into groups; simultaneously, identify empty rings in all rings of the Shape and sort them according to the area of ​​the shape enclosed by the empty rings, because the presence of empty rings can indicate potential slots, so larger empty rings are processed first; then, determine the face group to which the empty ring belongs; after confirming the face group, if the face group is still not processed, process the face group using a closed slot segmentation algorithm to obtain one or more closed slots; then process the next empty ring; finally, delete the slotted face from the surface to be processed, indicating that the face group has been processed. Repeat the above process until all empty rings have been processed, the specific steps are as follows:

[0057] like Figure 1-8 As shown, a method for identifying manufacturing features of closed cavities from a CAD model includes:

[0058] like Figure 4-5 As shown: Step 1: Read the Shape from the STEP model. Using the Shape as the processing object, find the geometric boundary surfaces of the Shape, which generally include the top surface, bottom surface, and side boundary surfaces. Then remove these surfaces, and the remaining surfaces are the faces to be processed.<TopoDS_Face> TopoDS_Face is a class in the TopoDS library that represents a face of a 3D model. Subsequent processing uses the faces and shapes to be processed, removing geometric boundary surfaces, leaving the remaining faces to be processed.

[0059] like Figure 5 As shown in the diagram on the right: Step 2: Cluster the faces. The rule for clustering is to group adjacent faces together, resulting in four face groups.

[0060] Step 3: Extract all empty loops in the Shape, where the number of empty loops is n, and i = 1. The extraction method is to traverse each face of the Shape using TopExp_Explorer. For each face, TopExp_Explorer can also be used to find all loops on that face.<TopoDS_Wire> Meanwhile, the ShapeAnalysis::OuterWire function provided by the OCC library is used to find the outer ring of the face. All rings on the face other than the outer ring are inner rings. The inner rings are the empty rings required by this method. Then, the empty rings are sorted according to their area. The area of ​​the empty ring refers to the area of ​​the shape enclosed by the empty rings. The purpose of sorting is to ensure that for the stepped groove face group, we can always start processing from the topmost empty ring and prioritize processing the empty rings with larger areas. The current empty ring number is set to i.

[0061] Step 4: Traverse all empty cycles, determine the face group containing the i-th empty cycle, traverse all edges in the face group and all edges of the empty cycle. If a face group has an edge that is the same as an edge of the empty cycle, then the empty cycle is in this face group; if the face group corresponding to the empty cycle still exists (denoted by Y), then continue to step 5; if the face group corresponding to the empty cycle does not exist (denoted by N), then determine the face group containing the (i+1)-th empty cycle, and repeat this step until all empty cycles have been processed.

[0062] Step 5: Using the empty ring and its corresponding face group as the processing object, the closed slot segmentation algorithm is used to process the face group, dividing the face group into one or more closed slots. Multiple closed slots correspond to the case of stepped slots. The process of the closed slot segmentation algorithm is relatively complex, and the detailed process will be explained in detail later.

[0063] Step 6: Remove the obtained closed groove surface from the surface group. The purpose of removing the groove surface is to avoid the problem of repeated processing when there are multiple empty rings corresponding to a surface group in the case of stepped grooves or through grooves.

[0064] Step 7: Determine if all empty loops have been processed, i.e., i <= n? If i is less than n, it means there are still empty loops to process, so continue to step 4 to process the next empty loop; if i = n, it means all empty loops have been processed, and then proceed to step 8.

[0065] Step 8: Identify all closed grooves. For the remaining unidentified faces, create a new Shape. Once the closed groove features are identified, the process is complete. End.

[0066] The closed slot segmentation algorithm will be explained in detail below:

[0067] like Figure 6 As shown: The closed slot segmentation algorithm is part of the closed slot cavity recognition method. Its function is to segment the input face group into individual closed slot cavities, each of which has its corresponding empty ring and slot surface. If a stepped slot exists, this algorithm will segment multiple closed slot cavities. Its processing object is the face group corresponding to the empty ring. The algorithm's input is the empty ring, the face group corresponding to the empty ring, and the Shape. The empty ring is used to locate the closed slot cavity; the face group needs to be segmented to determine the slot to which the face belongs; the Shape plays an auxiliary role. In cases where a face belongs to two slot cavities, this face needs to be cut. This invention patent uses the BRepFeat_SplitShape tool from the OCC library for face cutting. This tool requires a Shape as input and generates a newShape after cutting.

[0068] like Figure 7 As shown: Closed slot segmentation algorithm flow:

[0069] First, the direction of the slot is calculated using an empty ring. Then, based on the slot direction, the faces of the face group are divided into bottom and side faces. If a bottom face exists, the side faces are divided into the slot face corresponding to the current empty ring, the face to be cut, and the remaining side faces, using the first bottom face as the boundary. Otherwise, the current empty ring and the faces of the face group form a through slot. If a face to be cut exists, BRepFeat_SplitShape is used for cutting, and the newly generated face is divided into the slot face corresponding to the current empty ring and the remaining side faces. The current bottom face is also classified as the slot face corresponding to the current empty ring. Thus, the first closed slot cavity is segmented. At this point, it is determined whether the remaining side faces are empty. If they are empty, the segmentation is complete. Otherwise, the remaining side faces and bottom faces are clustered into t sub-face groups. For each sub-face group, its empty ring is calculated. The empty ring of this sub-face group must be on the same plane as the bottom face of the first layer. Then, the empty ring of the sub-face group, newShape, and the sub-face group are used as new inputs to recursively call the closed slot segmentation algorithm. The same operation is performed on each sub-face group obtained by clustering until there are no more remaining faces. At this point, the closed slot segmentation is complete, and the algorithm ends.

[0070] The specific steps are as follows:

[0071] Step 1: Use an empty ring, a Shape, and a group of faces as input;

[0072] Step 2: Based on the empty ring, calculate the direction of the slot and obtain the edges on the empty ring.<TopoDS_Edge> and vertex<TopoDS_Vertex> Traverse all edges on the face group and find the edge that shares a vertex with the ring but is not on the ring. The direction of the straight line of this edge is the direction of the slot.

[0073] Step 3: Traverse the face group and distinguish between the bottom face and the side face. The face perpendicular to the groove direction is the bottom face, and the rest are the side faces;

[0074] Step 4: Determine if a side face lies between the first bottom face and the empty ring. Based on this, classify all side faces into the slot face corresponding to the current empty ring, the face to be cut, and the remaining side faces. Faces between the first bottom face and the empty ring are the slot faces corresponding to the current empty ring. Faces with only a portion between the empty ring and the bottom face are the faces to be cut. Faces not in the middle are the remaining side faces. The determination method is as follows: First, calculate the distance D0 between the bottom face and the empty ring. Then, obtain all vertices of the face (Vertex1, ..., VertexN). For each vertex, calculate its distances D1 and D2 to the bottom face and the empty ring, respectively. If all vertices satisfy D1 + D2 = D0, then this face is the slot face corresponding to the current empty ring. If some vertices of the face satisfy this condition, it is the face to be cut. If none of the vertices of the face satisfy this condition, then it is a remaining side face.

[0075] like Figure 8As shown: Step 5: If a face to be cut exists, use BRepFeat_SplitShape to cut the face to be cut, resulting in a newShape and a new face, that is... Figure 8 The cutting results in the middle; for the cut new surface, perform step 4 to obtain the groove surface corresponding to the current empty ring and the remaining side surface;

[0076] Step 6: Place the bottom surface of the first layer into the groove surface corresponding to the current empty ring. At this time, the empty ring and its corresponding groove surface form a complete closed cavity. Store it as the result.

[0077] Step 7: Determine if the remaining groove surfaces are empty. If they are empty, the algorithm ends and the result is output. Otherwise, cluster the remaining bottom surfaces and remaining side surfaces to obtain t sub-surface groups, and let k' = 1.

[0078] Step 8: For sub-face group k', use ShapeAnalysis_FreeBounds to calculate its empty rings;

[0079] Step 9: Using the new empty ring, sub-face group k', and newShape from Step 8 as new inputs, perform Step 1, while k' = k' + 1;

[0080] Step 10: If k'>t, it means that all sub-face groups have been processed and the algorithm is complete; otherwise, proceed to step 8.

[0081] Step 11: Once all faces in the face group have been processed, output the results and the algorithm ends.

[0082] The beneficial effects of this invention patent:

[0083] This invention identifies closed cavities based on the topological relationships of points, edges, loops, and surfaces. It can identify closed cavities with complex spline curve contours and has a wide range of applications. At the same time, a closed cavity segmentation algorithm is designed, which makes this method applicable to stepped cavities. It provides manufacturing enterprises with a convenient and accurate way to identify closed cavities. The identification method based on the C++ OCC library has a fast running speed, which helps to improve the production efficiency of enterprises.

[0084] The above are merely preferred embodiments of the present invention and do not limit the patent scope of the present invention. Any equivalent process transformations made based on the content of the present invention specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of the present invention.

Claims

1. A method for identifying manufacturing features of closed cavities from a CAD model, characterized in that: Includes the following steps: Step 1: Read the Shape from the STEP model, identify the geometric boundary surfaces of the Shape, delete the identified geometric boundary surfaces, and the remaining surfaces are the faces to be processed; Step 2: Cluster the faces to be processed. The rule for clustering is to group adjacent faces together. Step 3: Traverse each face on the Shape using TopExp_Explorer. For each face, use TopExp_Explorer to find all loops on each face. At the same time, use the ShapeAnalysis::OuterWire function provided by the OCC library to find the outer loops of the face. All loops on the face other than the outer loops are inner loops. The inner loops are the empty loops required by this method. Extract all empty loops in the Shape. Let the number of empty loops be n, and set the index of the empty loop being processed to i. Step 4: Traverse all empty cycles, determine the face group containing the i-th empty cycle, traverse all edges in the face group and all edges of the empty cycle. If a face group has an edge that is the same as an edge of the empty cycle, then the empty cycle is in this face group; if the face group corresponding to the empty cycle still exists, then continue to the next step. Step 5: Using the empty ring and its corresponding face group as the processing object, the closed slot segmentation algorithm is used to process the face group, dividing the face group into one or more closed slots. Multiple closed slots correspond to the case of stepped slots. Step 6: Remove the groove surface of the resulting closed groove from the surface group; Step 7: Determine if all empty loops have been processed. The method is i <= n?. If i is less than n, it means there are still empty loops to be processed. Then, continue to step 4 and process i+1 empty loops. If i=n, ​​it means that all empty loops have been processed, and then proceed to the next step; Step 8: Identify all closed grooves. For the remaining unidentified faces, create a new Shape. Once the closed groove features are identified, the process is complete. End. The steps of the closed slot segmentation algorithm are as follows: Step 1: Use an empty ring, a Shape, and a group of faces as input; Step 2: Based on the empty ring, calculate the direction of the slot, obtain the edges and vertices on the empty ring, traverse all edges on the face group, and find the edges that share vertices with the ring. Step 3: Traverse the face group and distinguish between the bottom face and the side face; the face perpendicular to the groove direction is the bottom face, and the rest are the side faces. Step 4: Determine whether the side surface is between the first bottom surface and the empty ring. Based on this, classify all side surfaces into the groove surface corresponding to the current empty ring, the surface to be cut, and the remaining side surface. The surface between the first bottom surface and the empty ring is the groove surface corresponding to the current empty ring. Only a part of the surface between the empty ring and the bottom surface is the surface to be cut. The surface that is not in the middle at all is the remaining side surface. The determination method is as follows: First, calculate the distance D0 between the bottom face and the empty ring. Then, obtain all vertices of the face (Vertex1, ..., VertexN). For each vertex, calculate its distances D1 and D2 to the bottom face and the empty ring respectively. If all vertices satisfy D1 + D2 = D0, then this face is the slot face corresponding to the current empty ring. If some vertices in the face satisfy this condition, then it is the face to be cut. If none of the vertices in the face satisfy this condition, then it is the remaining side face. Step 5: If there is a surface to be cut, use BRepFeat_SplitShape to cut the surface to be cut, and get newShape and new surface. For the cut new surface, perform step 4 to get the groove surface corresponding to the current empty ring and the remaining side surface. Step 6: Place the bottom surface of the first layer into the groove surface corresponding to the current empty ring. At this time, the empty ring and its corresponding groove surface form a complete closed cavity. Store it as the result. Step 7: Determine if the remaining groove surfaces are empty. If they are empty, the algorithm ends and the result is output. Otherwise, cluster the remaining bottom surfaces and remaining side surfaces to obtain t sub-surface groups and let k'=1. Step 8: For sub-face group k', use ShapeAnalysis_FreeBounds to calculate its empty rings; Step 9: Using the new empty ring, sub-face group k', and newShape from Step 8 as new inputs, perform Step 1, while k' = k' + 1; Step 10: If k'>t, it means that all sub-face groups have been processed and the algorithm is complete; otherwise, proceed to step 8. Step 11: Once all faces in the face group have been processed, output the results and the algorithm ends.

2. The method for identifying manufacturing features of closed cavities from a CAD model as described in claim 1, characterized in that: After extracting all empty rings in the Shape, sort them according to the area of ​​the empty rings.

3. The method for identifying manufacturing features of closed cavities from a CAD model as described in claim 1, characterized in that: In step 4, if the face group corresponding to the empty ring does not exist, then it is determined whether the face group containing the (i+1)th empty ring exists, until all empty rings have been processed.

Citation Information

Patent Citations

  • A method for manufacturing feature recognition of 3D CAD solid models based on PCA and CNN

    CN107463533B

  • Machining feature recognition method for plate parts

    CN116403207A

  • KR20220071454A