A method and system for identifying processing features of planar sheet metal parts

By obtaining the face data in the design model, constructing unified data object management, and using sheet metal thickness and relative face data to identify sheet metal features, the problem of low accuracy of sheet metal feature recognition in the existing technology is solved, and efficient and accurate sheet metal feature recognition is achieved.

CN119416279BActive Publication Date: 2025-05-23TIANYU SOFTWARE
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410965091.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-07-18
Publication Date
2025-05-23
Estimated Expiration
2044-07-18

AI Technical Summary

Technical Problem

The existing feature recognition methods are not accurate when identifying sheet metal features, and the matching efficiency of graph-based methods is low. The method based on stereoscopic decomposition is highly complex, so it is impossible to fully utilize the data of the design model.

Method used

By obtaining all faces in the design model, a unified data object management is constructed, bending and curled features are identified using sheet metal thickness and opposite face data, and internal features of the sheet metal are identified based on these features.

Benefits of technology

It improves the accuracy and speed of feature recognition, solves the problems of low matching efficiency and high complexity in the existing methods, and is suitable for feature recognition of sheet metal parts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119416279B_ABST
    Figure CN119416279B_ABST
Patent Text Reader

Abstract

The present invention discloses a method for identifying the processing features of planar sheet metal parts, which obtains the design model of the sheet metal parts, obtains the geometric data of the surface, obtains the relative surface and adjacent surface of the surface through the topological relationship of the model, and constructs unified data object management data based on the geometric data of the surface, the relative surface, and the adjacent surface. For all data objects, it is traversed in sequence, and the sheet metal bending features are identified according to certain rules. Then, the sheet metal bending features obtain the feature surface, obtain the internal loop of the feature surface and the internal adjacent surface, and then identify the internal features of the sheet metal. The present invention can solve the technical problems that the existing graph-based feature automatic recognition method needs to perform graph decomposition processing, and needs to perform a large number of sub-graph matching, the matching efficiency is low, and different sub-graphs may be matched for the same part structure, resulting in the feature recognition accuracy being difficult to guarantee.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of three-dimensional digital process design, and more specifically, relates to a method and system for identifying processing features of planar sheet metal parts. Background Art

[0002] Feature recognition is the key to computer-aided process planning and computer-aided manufacturing, and is the integration of part geometry and topology information.

[0003] There are mainly two types of existing feature recognition methods. The first is a graph-based automatic feature recognition method. This method represents the boundary model of the part and the boundary pattern of the feature with a face edge graph or a topological graph, and identifies the feature by decomposing the part face edge graph into sub-graphs and comparing and matching them with the predefined feature topological graph. The second method is a feature automatic recognition method based on solid decomposition. This method performs feature recognition by operating the solid representation of the model. First, the part body needs to be convexly decomposed into convex body geometry, and then the decomposed convex bodies are re-merged into voxels corresponding to the feature. Finally, the voxels are classified to construct a volume representation of the feature. Due to different decomposition strategies, this method can be divided into a feature automatic recognition method based on solid alternating decomposition and a feature automatic recognition method based on unit body decomposition.

[0004] However, both of the above feature recognition methods have some non-negligible defects:

[0005] First, the automatic feature recognition method based on graphs requires the decomposition of graphs and a large number of sub-graph matching. The matching efficiency is low, and different sub-graphs may be matched for the same part structure, making it difficult to ensure the accuracy of feature recognition.

[0006] Second, the feature automatic recognition method based on stereo decomposition decomposes the original design model into different voxels, which reduces the connection relationship between the surfaces, cannot fully utilize the data of the design model, and the implementation process is relatively complicated, resulting in low system robustness;

[0007] Third, the above two methods are suitable for the recognition of general mechanical parts, but not for the recognition of sheet metal features, and do not fully consider the particularity of sheet metal parts. As a result, these methods have low accuracy in recognizing sheet metal features. Summary of the invention

[0008] In response to the above defects or improvement needs of the prior art, the present invention provides a method and system for identifying the processing features of planar sheet metal parts, with the purpose of solving the technical problems that the existing automatic feature recognition method based on graphs needs to perform graph decomposition processing and a large number of sub-graph matching, resulting in low matching efficiency, and different sub-graphs may be matched for the same part structure, resulting in difficulty in ensuring the accuracy of feature recognition, and the existing automatic feature recognition method based on three-dimensional decomposition decomposes the original design model into different elements, which reduces the connection relationship between surfaces, cannot fully utilize the data of the design model, and the implementation process is relatively complicated, resulting in low system robustness. The above two methods are both suitable for the identification of general mechanical parts, but not for the identification of sheet metal features, and do not fully consider the particularity of sheet metal parts, which leads to the technical problem that these methods have low accuracy in identifying sheet metal features.

[0009] To achieve the above object, according to one aspect of the present invention, a method for identifying processing features of a planar sheet metal part is provided, comprising the following steps:

[0010] (1) Obtain the design model, read all faces in the design model, and add all faces to the pre-established array object AllFaces;

[0011] (2) Take out one face from the array object AllFaces in turn, obtain the data of the face, construct the data object SFData according to the data of the face, and add the data objects corresponding to all the faces in the array object AllFaces to the pre-established array object AllSFData.

[0012] (3) Obtain the data object baseSFD with the largest area from the array object AllSFData;

[0013] (4) Calculating the sheet metal thickness of the design model according to the data object baseSFD obtained in step (3);

[0014] (5) Get the relative side of each data object in the array object AllSFData;

[0015] (6) According to the relative surface of each data object in the array object AllSFData obtained in step (5), the bending feature of the data object is obtained, and the bending feature of each data object is added to the pre-established array object AllBends.

[0016] (7) According to the relative surface of each data object in the array object AllSFData obtained in step (5), obtain the curling feature of the data object, and add the curling feature of each data object to the array object AllBends.

[0017] (8) Obtain all bending features from the array object AllBends, obtain the plane corresponding to each bending feature, and identify the internal features of the sheet metal of the design model based on the plane.

[0018] Preferably, step (2) comprises the following sub-steps:

[0019] (2-1) Set counter i=0;

[0020] (2-2) Determine whether i is less than the total number of faces in the array object AllFaces. If so, go to step (2-3), otherwise the process ends;

[0021] (2-3) Get the i-th face AllFaces[i] in the array object AllFaces, get the type, area, any point facePt on the face, the normal vector of the face AllFaces[i] at the point facePt, and the smooth adjacent faces of the face AllFaces[i], and determine whether the type of the face AllFaces[i] is a cylindrical surface. If it is a cylindrical surface, go to step (2-4), otherwise go to step (2-5).

[0022] (2-4) Get the axis of the cylindrical surface AllFaces[i], any point on the axis, and the radius of the cylindrical surface.

[0023] (2-5) Based on the face data obtained in steps (2-3) and (2-4), construct a face data object SFData, initialize the relative face in the data object SFData to empty, and add the data object SFData to the array object AllSFData for management.

[0024] (2-6) Counter i=i+1, go to step (2-2);

[0025] Preferably, the method for obtaining the smooth adjacent faces of face AllFaces[i] is: first, obtain the adjacent face set AdjFaces consisting of all adjacent faces of face AllFaces[i] from the design model; for each face AdjFace in the adjacent face set AdjFaces, obtain the edge coe shared by face AllFaces[i] and face AdjFace; select any point coept from the edge coe; then obtain the normal vector norm1 of face AllFaces[i] at the point coept; obtain the normal vector norm2 of face AdjFace at the point coept; finally, determine whether norm1 and norm2 are codirectional; if so, it indicates that face AdjFace is a smooth adjacent face of face AllFaces[i]; otherwise, it indicates that face AdjFace is not a smooth adjacent face of face AllFaces[i]; if all faces in the adjacent face set AdjFaces are not smooth adjacent faces of face AllFaces[i], the smooth adjacent faces of face AllFaces[i] are assigned to be empty.

[0026] Preferably, step (3) comprises the following sub-steps:

[0027] (3-1) Construct the data object baseSFD and assign it to empty;

[0028] (3-2) Construct the floating point number area and set area = 0.0;

[0029] (3-3) Set counter j = 0;

[0030] (3-4) Determine whether the counter j is less than the total number of the array object AllSFData. If so, proceed to step (3-5), otherwise the process ends;

[0031] (3-5) Get the area of ​​the j-th data object AllSFData[j] in the array object AllSFData, and determine whether the area is greater than the floating point number area. If so, proceed to step (3-6); otherwise, proceed to step (3-7);

[0032] (3-6) Set the value of the floating point number area to the area of ​​the data object AllSFData[j], and assign the data object AllSFData[j] to the data object baseSFD.

[0033] (3-7) Set counter j=j+1 and return to step (3-4).

[0034] Preferably, step (4) is specifically as follows: first, obtain the data of the surface corresponding to the data object baseSFD, including any point facePt on the surface and the normal faceNorm of the surface at the point; then, use the ray intersection method in the Opencascade tool to draw a ray from the point facePt in the opposite direction of the normal faceNorm; and calculate the distance between the surface where the ray intersects with the sheet metal part and the surface corresponding to the data object baseSFD, which is the sheet metal thickness thickness of the design model.

[0035] Step (5) includes the following sub-steps:

[0036] (5-1) Set counter k = 0;

[0037] (5-2) Determine whether the counter k is less than the total number of data objects in the array object AllSFData. If so, proceed to step (5-3), otherwise the process ends;

[0038] (5-3) Set counter m=k+1;

[0039] (5-4) Determine whether the counter m is less than the total number of array objects AllSFData, if so, proceed to step (5-5), otherwise proceed to step (5-11);

[0040] (5-5) Determine whether the corresponding side of the mth data object AllSFData[m] in the array object AllSFData is not empty. If so, proceed to step (5-6); otherwise, proceed to step (5-10);

[0041] (5-6) Determine whether the surface in the k-th data object AllSFData[k] and the surface in the m-th data object AllSFData[m] in the array object AllSFData are both planes. If they are both planes, proceed to step (5-7); otherwise, proceed to step (5-8);

[0042] (5-7) Determine whether the data object AllSFData[k] and the data object AllSFData[m] can form a planar opposite surface. If so, set the opposite surface of the data object AllSFData[k] to the data object AllSFData[m], and set the opposite surface of the data object AllSFData[m] to the data object AllSFData[k], and then go to step (5-10);

[0043] (5-8) Determine whether the surface in the k-th data object AllSFData[k] and the surface in the m-th data object AllSFData[m] in the array object AllSFData are both cylindrical surfaces. If so, proceed to step (5-9); otherwise, proceed to step (5-10);

[0044] (5-9) Determine whether the data object AllSFData[k] and the data object AllSFData[m] can form the opposite surface of the cylinder. If so, set the opposite surface of the data object AllSFData[k] to the data object AllSFData[m], and set the opposite surface of the data object AllSFData[m] to the data object AllSFData[k], and then go to step (5-10); otherwise, go directly to step (5-10);

[0045] (5-10) Set counter m=m+1 and return to step (5-4);

[0046] (5-11) Set counter k=k+1 and return to step (5-2);

[0047] Preferably, in step (5-7), when judging whether AllSFData[k] and AllSFData[m] can form planar opposite surfaces, firstly, extract the point facePt on the surface and the normal at the point from the data object AllSFData[k], offset the point facePt in the opposite direction of the normal to obtain the offset point, and judge whether the offset point is on the surface of the data object AllSFData[m]. If so, it means that the data object AllSFData[k] and the data object AllSFData[m] can form planar opposite surfaces. Otherwise, it means that the two cannot form planar opposite surfaces.

[0048] In step (5-9), when judging whether the data object AllSFData[k] and the data object AllSFData[m] can form opposite cylindrical surfaces, firstly, the cylindrical axis, any point on the cylindrical axis and the cylindrical radius are taken out from the data object AllSFData[k] to judge whether the cylindrical axis of the data object AllSFData[k] and the cylindrical axis of the data object AllSFData[m] are collinear and whether the radii of the two are the same. If so, the point facePt on the surface and the normal at the point are further taken out from the data object AllSFData[k], and the point facePt is offset in the opposite direction of the normal to obtain the offset point, and it is judged whether the offset point is on the surface of the data object AllSFData[m]. If so, it means that the data object AllSFData[k] and the data object AllSFData[m] can form opposite cylindrical surfaces. Otherwise, it means that the two cannot form opposite cylindrical surfaces.

[0049] Preferably, step (6) comprises the following sub-steps:

[0050] (6-1) Set counter n = 0;

[0051] (6-2) Determine whether the counter n is less than the total number of data objects in the array object AllSFData. If so, proceed to step (6-3), otherwise the process ends;

[0052] (6-3) Take the nth data object AllSFData[n] from the array object AllSFData, and determine whether the type of the surface in the data object AllSFData[n] is a plane. If yes, proceed to step (6-4); otherwise, proceed to step (6-8);

[0053] (6-4) Determine whether the corresponding face opp1 exists in the data object AllSFData[n]. If yes, proceed to step (6-5); otherwise, proceed to step (6-8);

[0054] (6-5) Determine whether there is a cylindrical surface cyl1 among the smooth adjacent surfaces in the data object AllSFData[n]. If not, proceed to step (6-8). If so, further determine whether the opposite surface cylopp1 of surface cyl1 exists. If so, proceed to step (6-6). Otherwise, proceed to step (6-8).

[0055] (6-6) Determine whether there is a smooth adjacent plane pla1 to the cylindrical surface cyl1. If not, proceed to step (6-8). If so, further determine whether there is an opposite surface plaopp1 to the smooth adjacent plane pla1. If so, proceed to step (6-7). Otherwise, proceed to step (6-8).

[0056] (6-7) construct the bending feature corresponding to the nth data object AllSFData[n] according to the face, opposite face opp1, cylindrical face cyl1, opposite face cylopp1, plane pla1, and opposite face plaopp1 in AllSFData[n], and add the bending feature to the pre-established array object AllBends;

[0057] (6-8) Counter n=n+1, and return to step (6-2);

[0058] Preferably, step (7) comprises the following sub-steps:

[0059] (7-1) Set counter o=0;

[0060] (7-2) Determine whether the counter o is less than the total number of data objects in the array object AllSFData. If so, proceed to step (7-3), otherwise the process ends;

[0061] (7-3) Obtain the oth data object AllSFData[o] in the array object AllSFData, and determine whether the surface in the data object AllSFData[o] has a curling feature or a bending feature. If not, proceed to step (7-4); otherwise, proceed to step (7-8);

[0062] (7-4) Determine whether the face in the data object AllSFData[o] is a plane. If not, proceed to step (7-8). Otherwise, further determine whether the opposite face of the data object AllSFData[o] exists. If so, proceed to step (7-5). Otherwise, proceed to step (7-8).

[0063] (7-5) Determine whether there is a cylindrical surface among the smooth adjacent surfaces in the data object AllSFData[o]. If not, proceed to step (7-8). If so, further determine whether the opposite surface of the cylindrical surface exists. If so, proceed to step (7-6). Otherwise, proceed to step (7-8).

[0064] (7-6) Determine whether the cylindrical surface in step (7-5) has other smooth adjacent planes. If so, proceed to step (7-8); otherwise, proceed to step (7-7);

[0065] (7-7) Based on the faces, opposite faces, cylindrical faces, and opposite faces of cylindrical faces in the data object AllSFData[o], construct the curling feature corresponding to the data object AllSFData[o], and add the curling feature to the array object AllBends.

[0066] (7-8) Set counter o=o+1 and return to step (7-2).

[0067] Preferably, step (8) comprises the following sub-steps:

[0068] (8-1) Set counter t=0;

[0069] (8-2) Determine whether the counter t is less than the total number of data objects in the array object AllBends. If so, proceed to step (8-3), otherwise the process ends;

[0070] (8-3) Determine whether the t-th data object AllBends[t] in the array object AllBends is a bending feature, if so, proceed to step (8-4), otherwise proceed to step (8-9);

[0071] (8-4) Obtain the plane pFace1 with bending features and the opposite face oppoFace1 of the plane pFace1 from the data object AllBends[t];

[0072] (8-5) Obtain the inner loop loop1 of the face pFace1 and the inner loop oppoLoop1 of the opposite face oppoFace1;

[0073] (8-6) Determine whether the inner loop loop1 and the inner loop oppoLoop1 can be grouped. If so, proceed to step (8-7); otherwise, proceed to step (8-9);

[0074] Specifically, this step is as follows: first, take out the edge set edges1 from the inner loop loop1, take out the edge set edges2 from the inner loop oppoLoop1, and then determine whether the total number of edge set edges1 is equal to the total number of edge set edges2. If they are not equal, it means that the inner loop loop1 and the inner loop oppoLoop1 cannot be grouped. If they are equal, further determine whether the type of edges included in the edge set edges1 is exactly the same as the type of edges included in the edge set edges2. If they are not the same, it means that the inner loop loop1 and the inner loop oppoLoop1 cannot be grouped. If they are the same, take any point from any edge in the edge set edges1 to determine whether the point is on an edge of the edge set edges2. If so, it means that the inner loop loop1 and the inner loop oppoLoop1 can be grouped. Otherwise, it means that the inner loop loop1 and the inner loop oppoLoop1 cannot be grouped.

[0075] (8-7) Obtain the adjacent face faceList1 of the inner loop loop1, obtain the adjacent face faceList2 of the inner loop oppoLoop1, and identify the internal features of the sheet metal of the design model according to the categories of the adjacent face faceList1 and the adjacent face faceList2;

[0076] Specifically, this step first determines whether the adjacent faces faceList1 and the adjacent faces faceList2 are independent of each other (if all faces in faceList1 do not belong to the adjacent faces faceList2, and all faces in the adjacent faces faceList2 do not belong to the adjacent faces faceList1, then the two are independent of each other). If so, the pit feature is constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Otherwise, the common face colist is taken out from the adjacent faces faceList1 and the adjacent faces faceList2, and it is determined whether the four conditions that all faces in the adjacent faces faceList1 are revolution faces (i.e., cylindrical faces, conical faces, or torus faces), all faces in the adjacent faces faceList2 are revolution faces, all faces in the common face colist are planes or revolution faces, and the axes of all revolution faces are collinear are simultaneously met. If so, the hole feature is constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Otherwise, the hole feature is constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Take out the common face colist from ist1 and the adjacent face faceList2, and construct all faces belonging to the adjacent face faceList1 but not belonging to face colist into a set list1; group the set list1 according to the distance of the face adjacent relationship, that is, the faces in the set list1 that are directly adjacent to the plane pFace1 are grouped as first-order adjacent faces, the faces in the set list1 that are adjacent to the first-order adjacent faces are grouped as second-order adjacent faces, the faces in the set list1 that are adjacent to the second-order adjacent faces are grouped as third-order adjacent faces, and the faces in the set list1 that are adjacent to the third-order adjacent faces are grouped as fourth-order adjacent faces. Determine whether the first-order adjacent faces and the third-order adjacent faces are both cylindrical faces, and whether the second-order adjacent faces and the fourth-order adjacent faces are both planes. If so, construct the rib feature using the adjacent face faceList1 and the adjacent face faceList2, and go to step (8-8). Otherwise, take out the common face colist from the adjacent face faceList1 and the adjacent face faceList2, and reconstruct all faces belonging to the adjacent face faceList1 but not belonging to face colist into a set list1;The set list1 is grouped according to the distance of the adjacent relationship of the faces, that is, the faces in the set list1 that are directly adjacent to the plane pFace1 are grouped as primary adjacent faces, and the faces in the set list1 that are adjacent to the primary adjacent faces are grouped as secondary adjacent faces. It is determined whether all the faces in the set list1 have been grouped after two groupings, and whether the two conditions that the primary adjacent faces are all cylindrical faces and the secondary adjacent faces are all planes are simultaneously met. If so, the louver feature is constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Otherwise, it means that the adjacent faces faceList1 and the adjacent faces faceList2 cannot form an internal feature of the sheet metal. ;

[0077] (8-8) Add the internal features of the sheet metal identified in (8-7) to the array object AllBends;

[0078] (8-9) Set counter t=t+1 and return to step (8-2).

[0079] According to another aspect of the present invention, a system for identifying processing features of planar sheet metal parts is provided, comprising:

[0080] The first module is used to obtain the design model, read all faces in the design model, and add all faces to the pre-established array object AllFaces;

[0081] The second module is used to take out one face from the array object AllFaces in turn, obtain the data of the face, construct the data object SFData according to the data of the face, and add the data objects corresponding to all the faces in the array object AllFaces to the pre-established array object AllSFData.

[0082] The third module is used to obtain the data object baseSFD with the largest area from the array object AllSFData;

[0083] The fourth module is used to calculate the sheet metal thickness thickness of the design model according to the data object baseSFD obtained in the third module;

[0084] The fifth module is used to obtain the relative surface of each data object in the array object AllSFData;

[0085] The sixth module is used to obtain the bending feature of each data object in the array object AllSFData obtained by the fifth module according to the relative surface of the data object, and add the bending feature of each data object to the pre-established array object AllBends.

[0086] The seventh module is used to obtain the curling feature of each data object in the array object AllSFData obtained by the fifth module according to the relative surface of the data object, and add the curling feature of each data object to the array object AllBends.

[0087] The eighth module is used to obtain all bending features from the array object AllBends, obtain the plane corresponding to each bending feature, and identify the internal features of the sheet metal of the design model based on the plane.

[0088] In general, the above technical solutions conceived by the present invention can achieve the following beneficial effects compared with the prior art:

[0089] (1) The present invention adopts steps (6), (7) and (8) and utilizes a rule-based feature recognition method. For each feature, the type and topological relationship of the surface are strictly restricted. Therefore, the technical problems of low subgraph matching efficiency and low feature recognition accuracy caused by repeated subgraph matching in the existing graph-based feature recognition method can be solved.

[0090] (2) The present invention adopts step (2) and step (5), extracts the required surface data before feature recognition, fully considers the connection relationship and relative relationship of the surfaces, and constructs a unified data object for management. Therefore, it can solve the technical problems in the existing feature recognition method based on stereo decomposition, such as the relatively single decomposition mode, incomplete consideration of the connection relationship of the surfaces, low data utilization rate of the design model, and relatively complicated implementation process, resulting in low system robustness.

[0091] (3) The present invention adopts steps (4), (6), (7) and (8), which fully utilizes the properties of sheet metal thickness and specifically proposes identification rules for bending features, curling features and internal features of sheet metal, thereby solving the technical problem that the existing feature recognition method is applicable to general parts but not to sheet metal parts;

[0092] (4) The present invention has good scalability. In step (2), the present invention fully extracts the data of the surface in the design model, including the type of surface, the geometric parameters of the surface, and the topological relationship of the surface. These data are not only applicable to the sheet metal features mentioned in the present invention, but also to other sheet metal features such as buckles. Only by slightly modifying the recognition rules, it can be applied to the recognition of other sheet metal features. Therefore, the present invention has good scalability.

[0093] (5) The present invention has a fast feature recognition speed. The present invention can significantly improve the feature recognition speed in two aspects. First, it makes full use of the sheet metal thickness and the relative surface data of the sheet metal, which provides two important data restrictions for the feature recognition process. For incorrect features, the recognition step can be quickly skipped, thereby improving the recognition speed. Second, in step (8), the adjacent surface data is used. For all internal features of the sheet metal, the adjacent surface data is used for recognition, which is equivalent to using one piece of data multiple times, reducing the number of data processing times and improving the feature recognition speed. BRIEF DESCRIPTION OF THE DRAWINGS

[0094] Figure 1 It is an overall flow chart of the method for identifying the processing features of planar sheet metal parts of the present invention;

[0095] Figure 2 is a schematic diagram of the surface data obtained in step (2) of the method of the present invention;

[0096] Figure 3 is a detailed flow chart of step (5) in the method of the present invention;

[0097] Figure 4 It is a schematic diagram of the internal features of the sheet metal of the design model;

[0098] Figure 5 It is a detailed flow chart of step (8) in the method of the present invention. DETAILED DESCRIPTION

[0099] In order to make the purpose, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention. In addition, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.

[0100] like Figure 1 As shown, the present invention provides a method for identifying the processing features of a planar sheet metal part, comprising the following steps:

[0101] (1) Obtain the design model, read all faces in the design model, and add all faces to the pre-established array object AllFaces;

[0102] Specifically, this step uses the design model as system input, and the system automatically obtains the surfaces in the design model, including planes, cylindrical surfaces, conical surfaces, torus surfaces, spherical surfaces, etc.

[0103] The design model in this step is the sheet metal parts designed by the designer, such as CNC machine tool housing, electric control cabinet housing, etc.

[0104] (2) Take out one face from the array object AllFaces in turn, obtain the data of the face, construct the data object SFData according to the data of the face, and add the data objects corresponding to all the faces in the array object AllFaces to the pre-established array object AllSFData.

[0105] The face data includes the face type (plane, cylinder, torus), the face area, any point facePt on the face, the face normal vector faceNorm at point facePt, the face's opposite face (note that the relative face value is initialized to null in this step, and the specific value will be calculated in the subsequent steps), the smooth adjacent faces of the outer ring of the face, and if the face is a cylinder, the face data also includes the axis of the cylinder, any point on the axis, and the radius of the cylinder. The face data can be referred to Figure 2 shown.

[0106] This step includes the following sub-steps:

[0107] (2-1) Set counter i=0;

[0108] (2-2) Determine whether i is less than the total number of faces in the array object AllFaces. If so, go to step (2-3), otherwise the process ends;

[0109] (2-3) Get the i-th face AllFaces[i] in the array object AllFaces, get the type, area, any point facePt on the face, the normal vector of the face AllFaces[i] at the point facePt, and the smooth adjacent faces of the face AllFaces[i], and determine whether the type of the face AllFaces[i] is a cylindrical surface. If it is a cylindrical surface, go to step (2-4), otherwise go to step (2-5).

[0110] Specifically, the method for obtaining the smooth adjacent faces of face AllFaces[i] is: first, obtain the adjacent face set AdjFaces consisting of all adjacent faces of face AllFaces[i] from the design model; for each face AdjFace in the adjacent face set AdjFaces, obtain the edge coe shared by face AllFaces[i] and face AdjFace; select any point coept from the edge coe; then obtain the normal vector norm1 of face AllFaces[i] at the point coept; obtain the normal vector norm2 of face AdjFace at the point coept; finally, determine whether norm1 and norm2 are codirectional; if so, it means that face AdjFace is a smooth adjacent face of face AllFaces[i]; otherwise, it means that face AdjFace is not a smooth adjacent face of face AllFaces[i]; if all faces in the adjacent face set AdjFaces are not smooth adjacent faces of face AllFaces[i], the smooth adjacent faces of face AllFaces[i] are assigned to empty.

[0111] (2-4) Get the axis of the cylindrical surface AllFaces[i], any point on the axis, and the radius of the cylindrical surface.

[0112] (2-5) Based on the face data obtained in steps (2-3) and (2-4), construct a face data object SFData, initialize the relative face in the data object SFData to empty, and add the data object SFData to the array object AllSFData for management.

[0113] (2-6) Counter i=i+1, go to step (2-2);

[0114] The advantage of this step is that the required surface data is obtained at the beginning of the processing flow, and a unified data object management is adopted to facilitate data search and use in subsequent steps, avoiding the problem of repeated data acquisition.

[0115] (3) Obtain the data object baseSFD with the largest area from the array object AllSFData;

[0116] This step contains the following sub-steps:

[0117] (3-1) Construct the data object baseSFD and assign it to empty;

[0118] (3-2) Construct the floating point number area and set area = 0.0;

[0119] (3-3) Set counter j = 0;

[0120] (3-4) Determine whether the counter j is less than the total number of the array object AllSFData. If so, proceed to step (3-5), otherwise the process ends;

[0121] (3-5) Get the area of ​​the j-th data object AllSFData[j] in the array object AllSFData, and determine whether the area is greater than the floating point number area. If so, proceed to step (3-6); otherwise, proceed to step (3-7);

[0122] (3-6) Set the value of the floating point number area to the area of ​​the data object AllSFData[j], and assign the data object AllSFData[j] to the data object baseSFD;

[0123] (3-7) Set counter j = j + 1 and return to step (3-4);

[0124] (4) Calculating the sheet metal thickness of the design model according to the data object baseSFD obtained in step (3);

[0125] Specifically, this step first needs to obtain the data of the surface corresponding to the data object baseSFD, including any point facePt on the surface and the normal faceNorm of the surface at that point. Then, using the ray intersection method in the Opencascade tool, a ray is drawn from the point facePt in the opposite direction of the normal faceNorm, and the distance between the surface where the ray intersects with the sheet metal part and the corresponding surface of the data object baseSFD is calculated, which is the sheet metal thickness thickness of the design model.

[0126] The advantage of this step is that the thickness of the sheet metal is obtained, thereby adding a very critical data to the subsequent feature recognition process, laying a foundation for the correct recognition of features, and making the present invention more suitable for sheet metal parts.

[0127] (5) Get the relative side of each data object in the array object AllSFData;

[0128] like Figure 3 As shown, this step includes the following sub-steps:

[0129] (5-1) Set counter k = 0;

[0130] (5-2) Determine whether the counter k is less than the total number of data objects in the array object AllSFData. If so, proceed to step (5-3), otherwise the process ends;

[0131] (5-3) Set counter m=k+1;

[0132] (5-4) Determine whether the counter m is less than the total number of array objects AllSFData, if so, proceed to step (5-5), otherwise proceed to step (5-11);

[0133] (5-5) Determine whether the corresponding side of the mth data object AllSFData[m] in the array object AllSFData is not empty. If so, proceed to step (5-6); otherwise, proceed to step (5-10);

[0134] (5-6) Determine whether the surface in the k-th data object AllSFData[k] and the surface in the m-th data object AllSFData[m] in the array object AllSFData are both planes. If they are both planes, proceed to step (5-7); otherwise, proceed to step (5-8);

[0135] (5-7) Determine whether the data object AllSFData[k] and the data object AllSFData[m] can form a planar opposite surface. If so, set the opposite surface of the data object AllSFData[k] to the data object AllSFData[m], and set the opposite surface of the data object AllSFData[m] to the data object AllSFData[k], and then go to step (5-10);

[0136] Specifically, when judging the planar relative faces, you first need to take out the point facePt on the surface and the normal at the point from the data object AllSFData[k], offset the point facePt in the opposite direction of the normal (the offset length is equal to the thickness of the sheet metal thickness) to obtain the offset point, and judge whether the offset point is on the surface of the data object AllSFData[m]. If so, it means that the data object AllSFData[k] and the data object AllSFData[m] can form a planar relative face, otherwise it means that the two cannot form a planar relative face.

[0137] (5-8) Determine whether the surface in the k-th data object AllSFData[k] and the surface in the m-th data object AllSFData[m] in the array object AllSFData are both cylindrical surfaces. If so, proceed to step (5-9); otherwise, proceed to step (5-10);

[0138] (5-9) Determine whether the data object AllSFData[k] and the data object AllSFData[m] can form the opposite surface of the cylinder. If so, set the opposite surface of the data object AllSFData[k] to the data object AllSFData[m], and set the opposite surface of the data object AllSFData[m] to the data object AllSFData[k], and then go to step (5-10); otherwise, go directly to step (5-10);

[0139] Specifically, when judging whether the two can form a cylindrical opposite surface, it is first necessary to extract the cylindrical axis, any point on the cylindrical axis and the cylindrical radius from the data object AllSFData[k], and judge whether the cylindrical axis of the data object AllSFData[k] and the cylindrical axis of the data object AllSFData[m] are collinear, and whether the radii of the two are the same. If so, further extract the point facePt on the surface and the normal at the point from the data object AllSFData[k], offset the point facePt in the opposite direction of the normal (the offset length is the thickness of the sheet metal) to obtain the offset point, and judge whether the offset point is on the surface of the data object AllSFData[m]. If so, it means that the data object AllSFData[k] and the data object AllSFData[m] can form a cylindrical opposite surface, otherwise it means that the two cannot form a cylindrical opposite surface.

[0140] (5-10) Set counter m=m+1 and return to step (5-4);

[0141] (5-11) Set counter k=k+1 and return to step (5-2);

[0142] The advantage of this step is that the relative relationship of the faces is obtained, which fully considers the particularity of sheet metal parts, that is, the plane thickness of sheet metal parts remains basically unchanged during the forming process. The relative relationship of the faces provides more data support for sheet metal feature recognition, thereby improving the accuracy of feature recognition.

[0143] (6) According to the relative surface of each data object in the array object AllSFData obtained in step (5), the bending feature of the data object is obtained, and the bending feature of each data object is added to the pre-established array object AllBends.

[0144] This step includes the following sub-steps:

[0145] (6-1) Set counter n = 0;

[0146] (6-2) Determine whether the counter n is less than the total number of data objects in the array object AllSFData. If so, proceed to step (6-3), otherwise the process ends;

[0147] (6-3) Take the nth data object AllSFData[n] from the array object AllSFData, and determine whether the type of the surface in the data object AllSFData[n] is a plane. If yes, proceed to step (6-4); otherwise, proceed to step (6-8);

[0148] (6-4) Determine whether the corresponding face opp1 exists in the data object AllSFData[n]. If yes, proceed to step (6-5); otherwise, proceed to step (6-8);

[0149] (6-5) Determine whether there is a cylindrical surface cyl1 among the smooth adjacent surfaces in the data object AllSFData[n]. If not, proceed to step (6-8). If so, further determine whether the opposite surface cylopp1 of surface cyl1 exists. If so, proceed to step (6-6). Otherwise, proceed to step (6-8).

[0150] (6-6) Determine whether there is a smooth adjacent plane pla1 to the cylindrical surface cyl1. If not, proceed to step (6-8). If so, further determine whether there is an opposite surface plaopp1 to the smooth adjacent plane pla1. If so, proceed to step (6-7). Otherwise, proceed to step (6-8).

[0151] (6-7) construct the bending feature corresponding to the nth data object AllSFData[n] according to the face, opposite face opp1, cylindrical face cyl1, opposite face cylopp1, plane pla1, and opposite face plaopp1 in AllSFData[n], and add the bending feature to the pre-established array object AllBends;

[0152] Specifically, this step is to create a new data object of the bending feature, which records the face, relative face opp1, cylindrical face cyl1, relative face cylopp1, plane pla1, and relative face plaopp1 in AllSFData[n]. The data object of the bending feature needs to be added to the array object AllBends for unified management.

[0153] (6-8) Counter n=n+1, and return to step (6-2);

[0154] The advantage of this step is that the bending features of the sheet metal are identified. During the identification process, the type of surface, the connection relationship of the surfaces, and the connection relationship between the relative surfaces and the relative surfaces are taken into consideration. The identification process is simple, the restriction conditions are sufficient, and the accuracy of feature recognition is improved.

[0155] (7) According to the relative surface of each data object in the array object AllSFData obtained in step (5), obtain the curling feature of the data object, and add the curling feature of each data object to the array object AllBends.

[0156] This step includes the following sub-steps:

[0157] (7-1) Set counter o=0;

[0158] (7-2) Determine whether the counter o is less than the total number of data objects in the array object AllSFData. If so, proceed to step (7-3), otherwise the process ends;

[0159] (7-3) Obtain the oth data object AllSFData[o] in the array object AllSFData, and determine whether the surface in the data object AllSFData[o] has a curling feature or a bending feature. If not, proceed to step (7-4); otherwise, proceed to step (7-8);

[0160] (7-4) Determine whether the face in the data object AllSFData[o] is a plane. If not, proceed to step (7-8). Otherwise, further determine whether the opposite face of the data object AllSFData[o] exists. If so, proceed to step (7-5). Otherwise, proceed to step (7-8).

[0161] (7-5) Determine whether there is a cylindrical surface among the smooth adjacent surfaces in the data object AllSFData[o]. If not, proceed to step (7-8). If so, further determine whether the opposite surface of the cylindrical surface exists. If so, proceed to step (7-6). Otherwise, proceed to step (7-8).

[0162] (7-6) Determine whether the cylindrical surface in step (7-5) has other smooth adjacent planes. If so, proceed to step (7-8); otherwise, proceed to step (7-7);

[0163] (7-7) Based on the faces, opposite faces, cylindrical faces, and opposite faces of cylindrical faces in the data object AllSFData[o], construct the curling feature corresponding to the data object AllSFData[o], and add the curling feature to the array object AllBends.

[0164] Specifically, this step is to create a new data object of the curling feature, which records the face, opposite face, cylindrical face, and opposite face of the cylindrical face in AllSFData[o]. The data object of the bending feature needs to be added to the array object AllBends for unified management.

[0165] (7-8) Set counter o=o+1 and return to step (7-2);

[0166] (8) Obtain all bending features from the array object AllBends, obtain the plane corresponding to each bending feature, and identify the internal features of the sheet metal of the design model based on the plane.

[0167] Specifically, the internal features of the sheet metal of the design model include punching hole features, pit features, rib features, and louver features. The schematic diagram of each feature is as follows: Figure 4 shown.

[0168] like Figure 5 As shown, this step includes the following sub-steps:

[0169] (8-1) Set counter t=0;

[0170] (8-2) Determine whether the counter t is less than the total number of data objects in the array object AllBends. If so, proceed to step (8-3), otherwise the process ends;

[0171] (8-3) Determine whether the t-th data object AllBends[t] in the array object AllBends is a bending feature, if so, proceed to step (8-4), otherwise proceed to step (8-9);

[0172] (8-4) Obtain the plane pFace1 with bending features and the opposite face oppoFace1 of the plane pFace1 from the data object AllBends[t];

[0173] (8-5) Obtain the inner loop loop1 of the face pFace1 and the inner loop oppoLoop1 of the opposite face oppoFace1;

[0174] (8-6) Determine whether the inner loop loop1 and the inner loop oppoLoop1 can be grouped. If so, proceed to step (8-7); otherwise, proceed to step (8-9);

[0175] Specifically, this step needs to determine whether the inner loop loop1 and the inner loop oppoLoop1 can form a group. First, it is necessary to take out the edge set edges1 from the inner loop loop1, and take out the edge set edges2 from the inner loop oppoLoop1, and then determine whether the total number of edge set edges1 is equal to the total number of edge set edges2. If they are not equal, it means that the inner loop loop1 and the inner loop oppoLoop1 cannot form a group. If they are equal, it is further determined whether the type of edges included in the edge set edges1 is exactly the same as the type of edges included in the edge set edges2. If they are not the same, it means that the inner loop loop1 and the inner loop oppoLoop1 cannot form a group. If they are the same, take any point from any edge in the edge set edges1 to determine whether the point is on an edge of the edge set edges2. If so, it means that the inner loop loop1 and the inner loop oppoLoop1 can form a group, otherwise it means that the inner loop loop1 and the inner loop oppoLoop1 cannot form a group.

[0176] (8-7) Obtain the adjacent face faceList1 of the inner loop loop1, obtain the adjacent face faceList2 of the inner loop oppoLoop1, and identify the internal features of the sheet metal of the design model according to the categories of the adjacent face faceList1 and the adjacent face faceList2;

[0177] Specifically, this step first determines whether the adjacent faces faceList1 and the adjacent faces faceList2 are independent of each other (if all faces in faceList1 do not belong to the adjacent faces faceList2, and all faces in faceList2 do not belong to the adjacent faces faceList1, then the two are independent of each other). If so, the pit feature is constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Otherwise, the common face colist is taken out from the adjacent faces faceList1 and the adjacent faces faceList2, and it is determined whether the four conditions that all faces in the adjacent faces faceList1 are revolution faces (cylindrical faces, conical faces, torus faces), all faces in the adjacent faces faceList2 are revolution faces (cylindrical faces, conical faces, torus faces), all faces in the common face colist are planes or revolution faces, and the axes of all revolution faces are collinear are simultaneously met. If so, the hole feature is constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Otherwise, the hole feature is taken out from the adjacent faces faceList1 and the adjacent faces faceList2. Take out the common face colist from faceList1 and the adjacent face faceList2, and construct all faces belonging to the adjacent face faceList1 but not belonging to face colist into a set list1; group the set list1 according to the distance of the face adjacent relationship, that is, the faces in the set list1 that are directly adjacent to the plane pFace1 are grouped as first-order adjacent faces, the faces in the set list1 that are adjacent to the first-order adjacent faces are grouped as second-order adjacent faces, the faces in the set list1 that are adjacent to the second-order adjacent faces are grouped as third-order adjacent faces, and the faces in the set list1 that are adjacent to the third-order adjacent faces are grouped as fourth-order adjacent faces. Determine whether the first-order adjacent faces and the third-order adjacent faces are both cylindrical faces, and whether the second-order adjacent faces and the fourth-order adjacent faces are both planes. If so, construct the rib feature using the adjacent face faceList1 and the adjacent face faceList2, and go to step (8-8). Otherwise, take out the common face colist from the adjacent face faceList1 and the adjacent face faceList2, and reconstruct all faces belonging to the adjacent face faceList1 but not belonging to face colist into a set list1;The set list1 is grouped according to the distance of the adjacent relationship of the faces, that is, the faces in the set list1 that are directly adjacent to the plane pFace1 are grouped as primary adjacent faces, and the faces in the set list1 that are adjacent to the primary adjacent faces are grouped as secondary adjacent faces. It is determined whether all the faces in the set list1 have been grouped after two groupings, and whether the two conditions that the primary adjacent faces are all cylindrical faces and the secondary adjacent faces are all planes are simultaneously met. If so, the louver feature is constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Otherwise, it means that the adjacent faces faceList1 and the adjacent faces faceList2 cannot form an internal feature of the sheet metal. ;

[0178] (8-8) Add the internal features of the sheet metal identified in (8-7) to the array object AllBends;

[0179] (8-9) Set counter t=t+1 and return to step (8-2);

[0180] The advantage of this step is that adjacent faces faceList1 and adjacent faces faceList2 are obtained. The internal features of the sheet metal mentioned in this step are all identified using the data of these two adjacent faces, with high data utilization and fast recognition speed. Corresponding recognition rules are proposed for different sheet metal features, which provides a guarantee for the accuracy of feature recognition.

[0181] The present invention obtains the design model of the sheet metal part, obtains the geometric data of the surface, obtains the relative surface and adjacent surface of the surface through the topological relationship of the model, and constructs unified data object management data according to the geometric data of the surface, the relative surface, and the adjacent surface. For all data objects, it is traversed in sequence, and the sheet metal bending features are identified according to certain rules. Then the sheet metal bending features obtain the feature surface, obtain the internal ring of the feature surface and the internal adjacent surface, and then identify the internal features of the sheet metal, such as punching holes, shutters, etc. The present invention identifies the sheet metal features according to certain rules, solves the problem that a large number of sub-graph matching is required in the feature recognition method based on the graph, and the technical problem that the feature recognition efficiency is not high. The feature recognition method of the present invention requires a large amount of geometric data and topological data extracted from the design model, fully considers the connection relationship of the surface, solves the technical problem that the connection relationship of the surface is not fully considered in the feature recognition algorithm based on volume decomposition, and the data preprocessing process is too complicated. The present invention is proposed for planar sheet metal parts, focusing on the problem of sheet metal feature recognition. Compared with the general feature recognition method, the scope of application of the present invention is reduced, but it is more suitable for sheet metal feature recognition, and it is more valuable and feasible when processing sheet metal models.

[0182] It will be easily understood by those skilled in the art that the above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection scope of the present invention.

Claims

1. A method for identifying the processing features of planar sheet metal parts, characterized in that: The following steps are involved: (1) Obtain the design model, read all faces in the design model, and add all faces to the pre-established array object AllFaces; (2) Take one face from the array object AllFaces in turn, obtain the data of the face, construct the data object SFData based on the data of the face, and add the data objects corresponding to all the faces in the array object AllFaces to the pre-established array object AllSFData; (3) Obtain the data object baseSFD with the largest area from the array object AllSFData; (4) Calculating the sheet metal thickness of the design model according to the data object baseSFD obtained in step (3); (5) Get the relative side of each data object in the array object AllSFData; (6) according to the relative surface of each data object in the array object AllSFData obtained in step (5), obtain the bending feature of the data object, and add the bending feature of each data object to the pre-established array object AllBends; (7) according to the relative surface of each data object in the array object AllSFData obtained in step (5), obtain the curling feature of the data object, and add the curling feature of each data object to the array object AllBends; (8) Obtain all bending features from the array object AllBends, obtain the plane corresponding to each bending feature, and identify the internal features of the sheet metal of the design model based on the plane; step (8) includes the following sub-steps: (8-1) Set counter t=0; (8-2) Determine whether the counter t is less than the total number of data objects in the array object AllBends. If so, proceed to step (8-3), otherwise the process ends; (8-3) Determine whether the t-th data object AllBends[t] in the array object AllBends is a bending feature, if so, proceed to step (8-4), otherwise proceed to step (8-9); (8-4) Obtain the plane pFace1 with bending features and the opposite face oppoFace1 of the plane pFace1 from the data object AllBends[t]; (8-5) Obtain the inner loop loop1 of the face pFace1 and the inner loop oppoLoop1 of the opposite face oppoFace1; (8-6) Determine whether the inner loop loop1 and the inner loop oppoLoop1 can be grouped. If so, proceed to step (8-7); otherwise, proceed to step (8-9); (8-7) Obtain the adjacent face faceList1 of the inner loop loop1, obtain the adjacent face faceList2 of the inner loop oppoLoop1, and identify the internal features of the sheet metal of the design model according to the categories of the adjacent face faceList1 and the adjacent face faceList2; (8-8) Add the internal features of the sheet metal identified in (8-7) to the array object AllBends; (8-9) Set counter t=t+1 and return to step (8-2).

2. The method for identifying the processing features of planar sheet metal parts according to claim 1, characterized in that: Step (2) includes the following sub-steps: (2-1) Set counter i=0; (2-2) Determine whether i is less than the total number of faces in the array object AllFaces. If so, go to step (2-3), otherwise the process ends; (2-3) Get the i-th face AllFaces[i] in the array object AllFaces, get the type, area, any point facePt on the face, the normal vector of the face AllFaces[i] at the point facePt, and the smooth adjacent faces of the face AllFaces[i], and determine whether the type of the face AllFaces[i] is a cylindrical surface. If it is a cylindrical surface, go to step (2-4), otherwise go to step (2-5); (2-4) Get the axis of the cylindrical surface AllFaces[i], any point on the axis, and the radius of the cylindrical surface; (2-5) Based on the face data obtained in step (2-3) and step (2-4), construct a face data object SFData, initialize the relative face in the data object SFData to be empty, and add the data object SFData to the array object AllSFData for management; (2-6) Counter i=i+1, go to step (2-2).

3. The method for identifying the processing features of planar sheet metal parts according to claim 2, characterized in that: The method for obtaining the smooth adjacent faces of face AllFaces[i] is: first, obtain the adjacent face set AdjFaces consisting of all adjacent faces of face AllFaces[i] from the design model; for each face AdjFace in the adjacent face set AdjFaces, obtain the edge coe shared by face AllFaces[i] and face AdjFace; randomly select a point coept from the edge coe; then obtain the normal vector norm1 of face AllFaces[i] at the point coept; obtain the normal vector norm2 of face AdjFace at the point coept; finally, determine whether norm1 and norm2 are codirectional; if so, it indicates that face AdjFace is a smooth adjacent face of face AllFaces[i]; otherwise, it indicates that face AdjFace is not a smooth adjacent face of face AllFaces[i]; if all faces in the adjacent face set AdjFaces are not smooth adjacent faces of face AllFaces[i], the smooth adjacent faces of face AllFaces[i] are assigned to be empty.

4. The method for identifying the processing features of planar sheet metal parts according to claim 3, characterized in that: Step (3) includes the following sub-steps: (3-1) Construct the data object baseSFD and assign it to empty; (3-2) Construct the floating point number area and set area = 0.0; (3-3) Set counter j = 0; (3-4) Determine whether the counter j is less than the total number of the array object AllSFData. If so, proceed to step (3-5), otherwise the process ends; (3-5) Get the area of ​​the j-th data object AllSFData[j] in the array object AllSFData, and determine whether the area is greater than the floating point number area. If so, proceed to step (3-6); otherwise, proceed to step (3-7); (3-6) Set the value of the floating point number area to the area of ​​the data object AllSFData[j], and assign the data object AllSFData[j] to the data object baseSFD; (3-7) Set counter j=j+1 and return to step (3-4).

5. The method for identifying the processing features of planar sheet metal parts according to claim 4, characterized in that: Step (4) is as follows: first, obtain the data of the surface corresponding to the data object baseSFD, including any point facePt on the surface and the normal faceNorm of the surface at the point; then, use the ray intersection method in the Opencascade tool to draw a ray from the point facePt in the opposite direction of the normal faceNorm, and calculate the distance between the surface where the ray intersects with the sheet metal part and the surface corresponding to the data object baseSFD, which is the sheet metal thickness thickness of the design model; Step (5) includes the following sub-steps: (5-1) Set counter k = 0; (5-2) Determine whether the counter k is less than the total number of data objects in the array object AllSFData. If so, proceed to step (5-3), otherwise the process ends; (5-3) Set counter m=k+1; (5-4) Determine whether the counter m is less than the total number of array objects AllSFData, if so, proceed to step (5-5), otherwise proceed to step (5-11); (5-5) Determine whether the corresponding side of the mth data object AllSFData[m] in the array object AllSFData is not empty. If so, proceed to step (5-6); otherwise, proceed to step (5-10); (5-6) Determine whether the surface in the k-th data object AllSFData[k] and the surface in the m-th data object AllSFData[m] in the array object AllSFData are both planes. If they are both planes, proceed to step (5-7); otherwise, proceed to step (5-8); (5-7) Determine whether the data object AllSFData[k] and the data object AllSFData[m] can form a planar opposite surface. If so, set the opposite surface of the data object AllSFData[k] to the data object AllSFData[m], and set the opposite surface of the data object AllSFData[m] to the data object AllSFData[k], and then go to step (5-10); (5-8) Determine whether the surface in the k-th data object AllSFData[k] and the surface in the m-th data object AllSFData[m] in the array object AllSFData are both cylindrical surfaces. If so, proceed to step (5-9); otherwise, proceed to step (5-10); (5-9) Determine whether the data object AllSFData[k] and the data object AllSFData[m] can form the opposite surface of the cylinder. If so, set the opposite surface of the data object AllSFData[k] to the data object AllSFData[m], and set the opposite surface of the data object AllSFData[m] to the data object AllSFData[k], and then go to step (5-10); otherwise, go directly to step (5-10); (5-10) Set counter m=m+1 and return to step (5-4); (5-11) Set counter k=k+1 and return to step (5-2).

6. The method for identifying the processing features of planar sheet metal parts according to claim 5, characterized in that: In step (5-7), when judging whether AllSFData[k] and AllSFData[m] can form a planar opposite surface, firstly extract the point facePt on the surface and the normal at the point from the data object AllSFData[k], offset the point facePt in the opposite direction of the normal to obtain the offset point, and judge whether the offset point is on the surface of the data object AllSFData[m]. If so, it means that the data object AllSFData[k] and the data object AllSFData[m] can form a planar opposite surface, otherwise, it means that the two cannot form a planar opposite surface; In step (5-9), when judging whether the data object AllSFData[k] and the data object AllSFData[m] can form opposite cylindrical surfaces, firstly, the cylindrical axis, any point on the cylindrical axis and the cylindrical radius are taken out from the data object AllSFData[k] to judge whether the cylindrical axis of the data object AllSFData[k] and the cylindrical axis of the data object AllSFData[m] are collinear and whether the radii of the two are the same. If so, the point facePt on the surface and the normal at the point are further taken out from the data object AllSFData[k], and the point facePt is offset in the opposite direction of the normal to obtain the offset point, and it is judged whether the offset point is on the surface of the data object AllSFData[m]. If so, it means that the data object AllSFData[k] and the data object AllSFData[m] can form opposite cylindrical surfaces. Otherwise, it means that the two cannot form opposite cylindrical surfaces.

7. The method for identifying the processing features of planar sheet metal parts according to claim 6, characterized in that: Step (6) includes the following sub-steps: (6-1) Set counter n = 0; (6-2) Determine whether the counter n is less than the total number of data objects in the array object AllSFData. If so, proceed to step (6-3), otherwise the process ends; (6-3) Take the nth data object AllSFData[n] from the array object AllSFData, and determine whether the type of the surface in the data object AllSFData[n] is a plane. If yes, proceed to step (6-4); otherwise, proceed to step (6-8); (6-4) Determine whether the corresponding face opp1 exists in the data object AllSFData[n]. If yes, proceed to step (6-5); otherwise, proceed to step (6-8); (6-5) Determine whether there is a cylindrical surface cyl1 among the smooth adjacent surfaces in the data object AllSFData[n]. If not, proceed to step (6-8). If so, further determine whether the opposite surface cylopp1 of surface cyl1 exists. If so, proceed to step (6-6). Otherwise, proceed to step (6-8). (6-6) Determine whether there is a smooth adjacent plane pla1 to the cylindrical surface cyl1. If not, proceed to step (6-8). If so, further determine whether there is an opposite surface plaopp1 to the smooth adjacent plane pla1. If so, proceed to step (6-7). Otherwise, proceed to step (6-8). (6-7) construct the bending feature corresponding to the nth data object AllSFData[n] according to the face, opposite face opp1, cylindrical face cyl1, opposite face cylopp1, plane pla1, and opposite face plaopp1 in AllSFData[n], and add the bending feature to the pre-established array object AllBends; (6-8) Counter n=n+1, and return to step (6-2).

8. The method for identifying the processing features of planar sheet metal parts according to claim 7, characterized in that: Step (7) includes the following sub-steps: (7-1) Set counter o=0; (7-2) Determine whether the counter o is less than the total number of data objects in the array object AllSFData. If so, proceed to step (7-3), otherwise the process ends; (7-3) Obtain the oth data object AllSFData[o] in the array object AllSFData, and determine whether the surface in the data object AllSFData[o] has a curling feature or a bending feature. If not, proceed to step (7-4); otherwise, proceed to step (7-8); (7-4) Determine whether the face in the data object AllSFData[o] is a plane. If not, proceed to step (7-8). If yes, further determine whether the opposite face of the data object AllSFData[o] exists. If yes, proceed to step (7-5). Otherwise, proceed to step (7-8). (7-5) Determine whether there is a cylindrical surface among the smooth adjacent surfaces in the data object AllSFData[o]. If not, proceed to step (7-8). If so, further determine whether the opposite surface of the cylindrical surface exists. If so, proceed to step (7-6). Otherwise, proceed to step (7-8). (7-6) Determine whether the cylindrical surface in step (7-5) has other smooth adjacent planes. If so, proceed to step (7-8); otherwise, proceed to step (7-7); (7-7) constructing a curling feature corresponding to the data object AllSFData[o] according to the face, opposite face, cylindrical face, and opposite face of the cylindrical face in the data object AllSFData[o], and adding the curling feature to the array object AllBends; (7-8) Set counter o=o+1 and return to step (7-2).

9. The method for identifying the processing features of planar sheet metal parts according to claim 8, characterized in that: Step (8-6) is specifically as follows: first, take out the edge set edges1 from the inner loop loop1, take out the edge set edges2 from the inner loop oppoLoop1, and then determine whether the total number of edge set edges1 is equal to the total number of edge set edges2. If they are not equal, it means that the inner loop loop1 and the inner loop oppoLoop1 cannot be grouped. If they are equal, further determine whether the type of edges included in the edge set edges1 is exactly the same as the type of edges included in the edge set edges2. If they are not the same, it means that the inner loop loop1 and the inner loop oppoLoop1 cannot be grouped. If they are the same, take any point from any edge in the edge set edges1 to determine whether the point is on an edge of the edge set edges2. If so, it means that the inner loop loop1 and the inner loop oppoLoop1 can be grouped. Otherwise, it means that the inner loop loop1 and the inner loop oppoLoop1 cannot be grouped. Step (8-7) is specifically as follows: first, determine whether the adjacent faces faceList1 and the adjacent faces faceList2 are independent of each other. If so, use the adjacent faces faceList1 and the adjacent faces faceList2 to construct the pit feature, and proceed to step (8-8); otherwise, take out the common face colist from the adjacent faces faceList1 and the adjacent faces faceList2, and determine that all faces in the adjacent faces faceList1 are revolution faces, which include cylindrical faces, conical faces, and torus faces, all faces in the adjacent faces faceList2 are revolution faces, all faces in the common face colist are planes or revolution faces, and all faces in the adjacent faces faceList2 are revolution faces. Are the four conditions that the axes of the revolved surfaces are all collinear all met at the same time? If so, use the adjacent faces faceList1 and the adjacent faces faceList2 to construct the hole feature and go to step (8-8). Otherwise, take out the common face colist from the adjacent faces faceList1 and the adjacent faces faceList2, and construct all the faces that belong to the adjacent faces faceList1 but do not belong to the face colist into a set list1; group the set list1 according to the distance of the face adjacent relationship, that is, the faces in the set list1 that are directly adjacent to the plane pFace1 are grouped as primary adjacent faces, and the faces in the set list1 that are adjacent to the primary adjacent faces are grouped as secondary adjacent faces. The faces in the set list1 that are adjacent to the secondary adjacent faces are grouped into tertiary adjacent faces, and the faces in the set list1 that are adjacent to the tertiary adjacent faces are grouped into quartic adjacent faces. It is determined whether the primary adjacent faces and tertiary adjacent faces are all cylindrical faces, and whether the secondary adjacent faces and quartic adjacent faces are all planes. If so, the rib features are constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Otherwise, the common faces colist are taken from the adjacent faces faceList1 and the adjacent faces faceList2, and all faces that belong to the adjacent faces faceList1 but do not belong to the faces colist are reconstructed into the set list1. According to The set list1 is grouped according to the proximity of the face adjacency relationship, that is, the faces in the set list1 that are directly adjacent to the plane pFace1 are grouped as primary adjacent faces, and the faces in the set list1 that are adjacent to the primary adjacent faces are grouped as secondary adjacent faces. It is determined whether all the faces in the set list1 have been grouped after two groupings, and whether the two conditions that the primary adjacent faces are all cylindrical faces and the secondary adjacent faces are all planes are simultaneously met. If so, the louver feature is constructed using the adjacent faces faceList1 and the adjacent faces faceList2, and the process goes to step (8-8). Otherwise, it means that the adjacent faces faceList1 and the adjacent faces faceList2 cannot constitute the internal features of the sheet metal.

10. A system for identifying the processing features of planar sheet metal parts, characterized in that: include: The first module is used to obtain the design model, read all faces in the design model, and add all faces to the pre-established array object AllFaces; The second module is used to take out one face from the array object AllFaces in turn, obtain the data of the face, construct the data object SFData according to the data of the face, and add the data objects corresponding to all the faces in the array object AllFaces to the pre-established array object AllSFData; The third module is used to obtain the data object baseSFD with the largest area from the array object AllSFData; The fourth module is used to calculate the sheet metal thickness thickness of the design model according to the data object baseSFD obtained in the third module; The fifth module is used to obtain the relative face of each data object in the array object AllSFData; The sixth module is used to obtain the bending feature of each data object in the array object AllSFData obtained by the fifth module according to the relative surface of the data object, and add the bending feature of each data object to the pre-established array object AllBends; The seventh module is used to obtain the curling feature of each data object according to the relative surface of the array object AllSFData obtained by the fifth module, and add the curling feature of each data object to the array object AllBends; The eighth module is used to obtain all bending features from the array object AllBends, obtain the plane corresponding to each bending feature, and identify the internal features of the sheet metal of the design model based on the plane; The eighth module includes the following submodules: The first submodule is used to set the counter t=0; The second submodule is used to determine whether the counter t is less than the total number of data objects in the array object AllBends. If so, it goes to the third submodule, otherwise the process ends; The third submodule is used to determine whether the t-th data object AllBends[t] in the array object AllBends is a bending feature. If it is, it will be transferred to the fourth submodule, otherwise it will be transferred to the ninth submodule; The fourth submodule is used to obtain the plane pFace1 with bending features and the opposite face oppoFace1 of the plane pFace1 from the data object AllBends[t]; The fifth submodule is used to obtain the inner loop loop1 of the face pFace1 and the inner loop oppoLoop1 of the opposite face oppoFace1; The sixth submodule is used to determine whether the inner loop loop1 and the inner loop oppoLoop1 can form a group, if yes, then transfer to the seventh submodule, otherwise transfer to the ninth submodule; The seventh submodule is used to obtain the adjacent face faceList1 of the inner loop loop1, obtain the adjacent face faceList2 of the inner loop oppoLoop1, and identify the internal features of the sheet metal of the design model according to the categories of the adjacent face faceList1 and the adjacent face faceList2; The eighth submodule is used to add the internal features of the sheet metal identified in the seventh submodule to the array object AllBends; The ninth submodule is used to set the counter t=t+1 and return to the second submodule.

Citation Information

Patent Citations

  • Sheet metal part characteristic interval judgment method based on three-dimensional model

    CN115391932A

  • Feature mapping-based process model reverse generation method and system

    CN116484525A