Feature surface identification method, electronic equipment and computer readable storage medium
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- ABB (SCHWEIZ) AG
- Filing Date
- 2023-08-31
- Publication Date
- 2026-05-26
Smart Images

Figure CN122095401A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the invention generally relate to the field of three-dimensional modeling, and more specifically, to methods, electronic devices, and computer-readable storage media for identifying feature surfaces. Background Technology
[0002] With the growing demand for flexible manufacturing, the use of robots in processing solutions and projects has increased in recent years. Robots are widely used in industrial applications such as polishing, grinding, and milling. Process paths can be determined using computer-aided manufacturing tools.
[0003] With the widespread adoption of mobile devices and the improvement of computing power, there are increasingly more scenarios where users are using tablets to intervene in the manufacturing process. Furthermore, web applications offer a cross-platform and fast solution. Using touchscreens to access web applications provides users with a more convenient interactive experience, making web applications a trend in the manufacturing industry. Summary of the Invention
[0004] In view of the aforementioned problems, the exemplary embodiments of this disclosure propose a solution for identifying feature surfaces on the web page side.
[0005] In a first aspect of this disclosure, exemplary embodiments of this disclosure provide a method for identifying feature surfaces. The method includes: obtaining first 3D model data of a three-dimensional 3D object model, the first 3D model data including a plurality of polygons; combining two adjacent polygons into a polygon set in response to determining that the included angle between two adjacent polygons is less than an angle threshold; and determining feature surfaces of the 3D object model based at least in part on the polygon set.
[0006] In these embodiments, the polygons included in the 3D model data can be combined into different polygon sets such that the included angle between two adjacent polygons in a polygon set is less than a predetermined angle threshold. In this way, polygons in a feature (which cannot be directly determined by a 3D modeling web application from the structural information included in the 3D model data) can be combined and identified for subsequent processing design.
[0007] In some example embodiments, combining two adjacent polygons includes: identifying an outer polygon that shares a polygonal edge with an inner polygon in a polygon set; determining the angle between the outer polygon and the inner polygon; identifying the outer polygon as an inner polygon in response to determining that the angle between the outer polygon and the inner polygon is less than an angle threshold; and adding the outer polygon to the polygon set. In these embodiments, all polygons associated with the feature can be identified by examining the angle between each outer polygon that is outside the feature's polygon set but adjacent to it.
[0008] In some example embodiments, determining the angle between the peripheral polygon and the inner polygon includes: determining a first normal vector of the peripheral polygon and a second normal vector of the inner polygon; and determining the angle between the first normal vector and the second normal vector as the angle between the peripheral polygon and the inner polygon. In these embodiments, the normal vectors of the polygons can be extracted directly from the 3D model data or calculated based on vertex information. This allows the angle between two adjacent polygon surfaces to be converted into the angle between the normal vectors of the two adjacent polygon surfaces.
[0009] In some example embodiments, combining two adjacent polygons further includes: determining the peripheral polygon as an outer polygon in response to determining that the angle between the peripheral polygon and the inner polygon is greater than an angle threshold; and discarding the outer polygon. In these embodiments, if the angle between the peripheral polygon and the inner polygon is greater than a predetermined angle threshold, the peripheral polygon will be considered to be in a different plane than the inner polygon. Therefore, the peripheral polygon will be determined as an outer polygon and will not be combined into the current polygon set.
[0010] In some example embodiments, the method further includes: determining individual edges from the polygon edges of a polygon set, each individual edge belonging to a single polygon in the polygon set; and forming at least one feature edge of the feature by connecting the individual edges. In these embodiments, some edges of the polygon at the outermost edge of the feature are connected to polygons having other features and belong only to a single polygon of the feature. These edges are individual edges and can form the edges of the feature.
[0011] In some example embodiments, determining a separate edge includes: determining the polygon edges of each polygon in the polygon set; determining the number of polygons to which the polygon edge belongs; and determining the polygon edge as a separate edge in response to determining that the number associated with the polygon edge is equal to one. In these embodiments, the number of polygon edges appearing in a polygon can indicate whether the polygon edge is a separate edge and whether it forms part of a feature edge.
[0012] In some example embodiments, forming at least one feature edge includes: determining a connection order of individual edges based on the vertices of the individual edges; and connecting the individual edges in the determined connection order to form at least one edge line. In these embodiments, the feature edge line can be formed by connecting selected individual edges in a connection order indicated by the vertices.
[0013] In some example embodiments, the method further includes: associating each vertex of the feature with a unique vertex index; and determining a vertex index pair for each polygon edge, wherein the order of the two vertex indices in the vertex index pair indicates the orientation of the polygon edge. In these embodiments, by indexing vertices, edges and polygons can be well labeled with vertex indices, thereby facilitating feature face identification.
[0014] In some example embodiments, determining the connection order includes arranging individual edges such that the index of the next vertex of a preceding individual edge is the same as the index of the previous vertex of a subsequent individual edge, to obtain the connection order. In these embodiments, edges can be easily formed by connecting two individual edges at a common vertex shared by the two individual edges.
[0015] In some example embodiments, the polygon is a triangle. In these embodiments, any type of polygon can be divided into at least one triangle. Thus, the method can be applied to every type of polygon.
[0016] In some example embodiments, obtaining the first 3D model data includes: obtaining second 3D model data with feature information of a 3D object model; extracting vertex information, polygon information, and orientation information of polygons from the second 3D model data to obtain the first 3D model data. The feature information of the second 3D model, which defines which polygons belong to a specific feature, may not be parsed by 3D modeling network applications. In these embodiments, the information necessary to implement the feature surface identification method can be obtained, thereby enabling the method to be implemented on the roll paper side.
[0017] In some example embodiments, the method further includes: in response to receiving an instruction to process a feature of the 3D model data, determining whether the processing operation is performed on the surface of the feature or on the edge of the feature; in response to determining that the processing operation is performed on the surface of the feature, emitting a regular ray onto a set of polygons to obtain an intersection between the regular ray and the set of polygons; and connecting the intersections to obtain a processing path.
[0018] In some alternative embodiments, the method further includes: in response to determining that a processing operation will be performed on an edge of a feature, emitting a regular ray onto at least one feature edge to obtain an intersection point between the regular ray and at least one feature edge; and connecting the intersection points to obtain a processing path. In these embodiments, the workpiece represented by the 3D model can be processed on feature edges or feature surfaces. Feature edges and feature surfaces can be determined. This significantly improves the usability of the method.
[0019] In a second aspect, an example embodiment of this disclosure provides an electronic device. The electronic device includes: at least one processor; and at least one memory storing instructions, which, when executed by the at least one processor, cause the device to perform a method according to the first aspect of this disclosure.
[0020] On a third-party surface, exemplary embodiments of this disclosure provide a computer-readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method according to a first-party surface of this disclosure. Attached Figure Description
[0021] The above and other objects, features, and advantages of the exemplary embodiments disclosed herein will become more readily understood from the following detailed description with reference to the accompanying drawings. In the drawings, several exemplary embodiments disclosed herein will be shown by way of example and not limitation, in which:
[0022] Figure 1 A block diagram of an example 3D modeling system in which exemplary embodiments of the present disclosure may be implemented is shown schematically;
[0023] Figure 2A A flowchart illustrating a method for identifying a feature surface according to an embodiment of the present disclosure is shown schematically;
[0024] Figure 2B A flowchart illustrating a method for combining polygons according to an embodiment of the present disclosure is shown schematically.
[0025] Figure 3 A flowchart illustrating a method for edge extraction according to an embodiment of the present disclosure is shown schematically;
[0026] Figure 4A A schematic diagram illustrating an example process for combining polygons according to some embodiments of the present disclosure is shown.
[0027] Figure 4B A schematic diagram illustrating an example process for indexing vertices according to some embodiments of the present disclosure is shown.
[0028] Figure 4C A schematic diagram illustrating an example process for edge extraction according to some embodiments of the present disclosure is shown.
[0029] Figure 4D A schematic diagram illustrating an example process for determining a processing path according to some embodiments of the present disclosure is shown.
[0030] Figure 5 A schematic diagram illustrating an example process for combining polygons according to some further embodiments of the present disclosure; and
[0031] Figure 6 A schematic diagram of an electronic device for implementing a method according to an embodiment of the present disclosure is shown.
[0032] In all the accompanying drawings, the same or similar reference numerals denote the same or similar elements. Detailed Implementation
[0033] The principles of this disclosure will now be described with reference to some exemplary embodiments. It should be understood that these embodiments are described for illustrative purposes only and to assist those skilled in the art in understanding and implementing this disclosure, and do not imply any limitation on the scope of this disclosure. The disclosure described herein can be implemented in various ways other than those described below.
[0034] In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.
[0035] References to "an embodiment," "some embodiments," "example embodiments," etc., in this disclosure indicate that the described embodiments may include a particular feature, structure, or characteristic, but each embodiment need not include that particular feature, structure, or characteristic. Furthermore, these expressions do not necessarily refer to the same embodiment. Additionally, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is believed that in conjunction with other embodiments (whether explicitly described or not) affecting such a feature, structure, or characteristic is within the scope known to those skilled in the art.
[0036] It should be understood that while the terms “first” and “second”, etc., may be used herein to describe various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, without departing from the scope of the exemplary embodiments, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.
[0037] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the exemplary embodiments. As used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise. It will also be understood that the terms “comprising,” “including,” “having,” “having,” “containing,” and / or “comprising” as used herein specify the presence of the stated features, elements, and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.
[0038] As mentioned above, traditionally, design processing is accomplished through client applications deployed on engineers' computing devices. These client applications can be referred to as Computer-Aided Manufacturing (CAM) software. To keep pace with the trend of using web applications for CAM design, various 3D modeling web applications have been developed.
[0039] However, traditional web applications can only identify model files with structural information. For model files constructed by connecting triangles in a plane, local features cannot be identified. Without local features, most functions of traditional machining software cannot be implemented in web applications.
[0040] In light of the above, a feature identification mechanism implemented by a web application is provided. In this mechanism, polygons included in the 3D model data can be combined into different polygon sets such that the angle between two adjacent polygons in a polygon set is less than a predetermined angle threshold. In this way, polygons in a feature (which cannot be directly determined by a 3D modeling web application from the structural information included in the 3D model data) can be combined and identified for subsequent processing design.
[0041] Reference Figures 1 to 6 The architecture according to embodiments of this disclosure is described. Figure 1 A block diagram schematically illustrates an example 3D modeling system 100 in which exemplary embodiments of the present disclosure may be implemented.
[0042] like Figure 1 As shown, the 3D modeling system 100 includes a terminal device 110 and a network device 130 connected to the terminal device 110. On the terminal device 110, a web application 111 is executed. The web application may be a 3D modeling application for industrial manufacturing. 3D model data 120 is uploaded to the network device 130 via an interface in the web application 111. A 3D mesh model is a collection of vertices, edges, and surfaces (or faces) that collectively form a 3D object. A vertex is a coordinate in three-dimensional space, each edge connects two adjacent vertices, and surfaces (also called polygons) surround the edges to form the surface of the object. The most commonly used polygons in a 3D mesh model are triangles and quadrilaterals. The 3D model data 120 includes modeling information about the workpiece to be processed. The modeling information may include a 3D mesh.
[0043] When 3D model data 120 is uploaded to network device 130, network device 130 can read 3D model data 120 and perform functions related to processing design. For example, network device 130 can extract structural information of 3D object model 121 and present a meshed 3D object model 112 in web application 111. Users can interact with 3D object model 112 via input and output interfaces (such as the touchscreen of terminal device 110) to perform processing design functions. For example, users can select features of the meshed 3D object model by clicking on polygons on the touchscreen. After the user selects a polygon, the feature to which the polygon belongs can be highlighted in a way that shows the entire feature being selected. For example, when a polygon in the end face of the meshed 3D object model 112 is selected, the end face will be highlighted with a different color than other features. Processing operations can then be performed on the end face. At this point, the web application presents a simulated processing tool with regular rays to perform processing on the end face, and the projection of the rays on the end face is simultaneously displayed on the end face. The processing path can be formed by connecting the projection points on the end surface in a sequence that the processing tool can access.
[0044] In the following text, reference will be made to Figures 2A-5 Describe the feature surface identification mechanism in detail. Figure 2A A flowchart of a method 200 for feature surface identification according to an embodiment of the present disclosure is illustrated schematically. For purposes of discussion, reference will be made to... Figure 1 Description of method 200. For example, this method can be described by... Figure 1 This is achieved through network device 130.
[0045] like Figure 2A As shown, at point 210, network device 130 obtains first 3D model data of a 3D object model. Here, the first 3D object model data includes multiple polygons. The first 3D model data can be 3D model data in a first format that includes structural information but no local features. That is, the first format 3D model data may include vertex information, polygon information, and polygon orientation information.
[0046] Typically, during the generation of a 3D model, a 3D mesh is created to represent the physical geometry of the 3D object. The 3D mesh model can be built in a specific coordinate system, and the vertices of the 3D mesh model are located in the coordinate system and have their own coordinates. Associated vertices form corresponding polygons in the 3D mesh model. At this point, the vertex information of the 3D model can indicate the coordinates of the vertices in the 3D mesh model. Polygon information can indicate the vertices that form each polygon. Orientation information can indicate the orientation of the polygons in the coordinate system. For example, orientation information can be the normal vector of a single polygon.
[0047] Furthermore, conventional 3D mesh models created by regular client applications (such as CAM software) may also contain local feature information, which indicates the corresponding set of polygons forming the respective local features. This type of 3D mesh model may be referred to as second-format 3D model data or second 3D model data. However, the local feature information of the second 3D model data may not be parsable by web applications. In some example embodiments, network device 130 may receive second 3D model data uploaded from a web application. Network device 130 can extract vertex information, polygon information, and polygon orientation information from the second 3D model data to obtain first 3D model data.
[0048] At 220, network device 130 determines that the included angle between two adjacent polygons is less than an angle threshold. In some embodiments, the angle determination process can be initiated when a user receives a selection of a polygon from the user who wishes to perform processing on the features to which the selected polygon belongs. After selecting a polygon, adjacent polygons are selected and their included angles are determined.
[0049] At point 230, network device 130 combines two adjacent polygons into a polygon set. An angle less than an angle threshold between two adjacent polygons indicates that they lie on the same plane. In other words, these two adjacent polygons can be part of a feature. Thus, by combining associated polygons into a polygon set, the feature to which the polygons belong can be determined. (Refer to...) Figure 2B Describe in detail the combination of adjacent polygons.
[0050] In some example embodiments, the angle threshold can be predefined based on the geometric characteristics of the feature. For example, when the desired feature is a plane, the angle threshold can be defined to be relatively small. Conversely, when the desired feature is a curved surface such as a cylinder or a sphere, the angle threshold can be defined to be relatively large.
[0051] At point 240, network device 130 determines the feature faces of the 3D object model in part based on polygon sets. When associated polygons are combined into corresponding polygon sets, the features to which the corresponding polygon set belongs are receptively identified. In this way, even in the absence of local feature information, feature faces formed by polygons from a specific polygon set can be accurately selected for subsequent CAM design procedures.
[0052] Figure 2B A flowchart illustrating a method 220 for combining polygons according to an embodiment of the present disclosure is shown schematically. For purposes of discussion, reference will be made to... Figure 1 Description of method 220. For example, this method can be described by... Figure 1 The network device 130 in the middle is used to implement this, and method 220 can correspond to Figure 2AStep 220 is shown.
[0053] like Figure 2B As shown in 221, network device 130 identifies an outer polygon that surrounds a set of polygons and shares polygon edges with the inner polygons in the set of polygons. The outer polygon may be referred to as an adjacent polygon of the inner polygon that is the outermost or innermost polygon in the set of polygons.
[0054] In some example embodiments, at the start of the combination process, the initial polygon may be selected randomly or in response to a user's choice. Figure 4A A schematic diagram of an example process 400A for combining polygons according to some embodiments of the present disclosure is shown. Figure 4A The image shows a portion of the mesh of a 3D object model. For example, a user can initialize the process of combining polygons into different polygon sets by selecting polygon 410 as the initial polygon and adding the initial polygon as an inner polygon to the polygon set. At this time, the outer polygons surrounding the polygon set and sharing common edges with the inner polygons include polygons 420-1, 420-2, and 420-3.
[0055] Back Figure 2B At 222, network device 130 determines the angle between the outer polygon and the inner polygon. In some embodiments, in order to determine whether the angle between two adjacent polygons is less than an angle threshold, network device 130 may obtain the normal vectors of the two selected adjacent polygons.
[0056] At 223, network device 130 determines whether the angle between the outer polygon and the inner polygon is less than an angle threshold. If network device 130 determines that the angle between the outer polygon and the inner polygon is less than the angle threshold, then method 220 proceeds to 225.
[0057] At 225, network device 130 determines the outer polygon as an inner polygon. Thus, the outer polygon is identified as belonging to the same features associated with the current polygon set. Then, at 226, network device 130 adds the outer polygon to the polygon set.
[0058] If network device 130 determines that the angle between the outer polygon and the inner polygon is not less than an angle threshold, then method 220 proceeds to 224. At 224, network device 130 identifies the outer polygon as the outer polygon. Thus, the outer polygon is determined to be not among the same features associated with the current polygon set. Then, at 227, network device 130 discards the outer polygon and proceeds to 228.
[0059] Refer again Figure 4AAfter identifying the outer polygons, polygons 420-1, 420-2, and 420-3, network device 130 can determine the angle between polygon 420-1 and the inner polygon 410, the angle between polygon 420-2 and the inner polygon 410, and the angle between polygon 420-3 and the inner polygon 410. For example... Figure 4A As shown, the included angles between polygons 420-1, 420-2, 420-3, and 410 are all less than the angle threshold. Therefore, polygons 420-1, 420-2, and 420-3 are identified as internal polygons and added to the current polygon set. After adding the newly identified internal polygons, the internal polygons in the polygon set include polygons 420-1, 420-2, 420-3, and 410. The outermost polygons in the polygon set are polygons 420-1, 420-2, and 420-3, and their adjacent polygons are identified as outer polygons, including polygons 430-1, 430-2, 430-3, 430-4, 430-5, and 430-6. Similarly, polygons 430-1, 430-2, 430-3, 430-4, 430-5, and 430-6 are identified as internal polygons.
[0060] return Figure 2B At 228, after adding or discarding a peripheral polygon, network device 130 determines whether another peripheral polygon exists. If network device 130 determines that another peripheral polygon exists, method 220 returns to 222. Otherwise, if network device 130 determines that no other peripheral polygon exists, method 220 proceeds to 229. At 229, network device 130 terminates method 220.
[0061] Refer again Figure 4AAfter adding polygons 430-1, 430-2, 430-3, 430-4, 430-5, and 430-6 to the current polygon set, polygons 440-1, 450-1, 450-2, 440-2, 450-3, 450-4, 440-3, 450-5, and 450-6 are identified as outer polygons. Based on the angles between these outer polygons and their corresponding adjacent inner polygons, polygons 440-1, 440-2, and 440-3 are determined to be inner polygons and will be added to the current polygon set. However, polygons 450-1, 450-2, 450-3, 450-4, 450-5, and 450-6 are identified as outer polygons and discarded. In the next iteration, after adding polygons 440-1, 440-2, and 440-3, polygons 460-1, 460-2, and 460-3, which share a common edge with polygons 440-1, 440-2, and 440-3, are identified as peripheral polygons. However, the corresponding angles between these peripheral polygons and their respective internal polygons are determined to be greater than an angle threshold, and all of these polygons are identified as external polygons and discarded. At this point, no other peripheral polygons remain. The combination process can be terminated, and the complete feature face including polygons 410, 420-1, 420-2, 420-3, 430-1, 430-2, 430-3, 430-4, 430-5, 430-6, 440-1, 440-2, and 440-3 is determined.
[0062] In such an embodiment, by iteratively exploring the angle between the outer polygon and its adjacent inner polygon, a complete set of polygons associated with a specific feature can be obtained.
[0063] According to this disclosure, after determining the feature surface, the edges of the feature can also be extracted. This will be combined with... Figure 4B-4C refer to Figure 3 Describe in detail the method used to determine feature edges. Figure 3 A flowchart illustrating a method 300 for edge extraction according to an embodiment of the present disclosure is shown schematically. For purposes of discussion, reference will be made to... Figure 1 Description of method 300. For example, this method can be described by... Figure 1 This is achieved through network device 130.
[0064] like Figure 3As shown, at 310, network device 130 determines the polygon edges of each polygon in the polygon set. In some embodiments, to facilitate the determination of vertices, edges, and polygons, network device 130 may associate each vertex of the feature with a unique vertex index. Furthermore, network device 130 may determine a vertex index pair for each polygon edge. In this case, the order of the two vertex indices in the vertex index pair indicates the orientation of the polygon edge. (Refer to...) Figure 4B Describe the indexing process in detail.
[0065] Figure 4B A schematic diagram of an example process 400A for indexing vertices according to some embodiments of this disclosure is shown. For clarity without loss of generality, in Figure 4B The image shows three adjacent triangles: triangle 401, triangle 402, and triangle 403. As shown, in the original 3D model data, the triangles are indexed using different characters. Triangle 401 includes three vertices: A, B, and C. Triangle 402 includes vertices D, E, and F. Triangle 403 includes vertices H, I, and G. All nine vertices are listed: A, B, C, D, E, F, H, I, and G, and each is associated with a unique numeric vertex index. That is, vertex A is associated with vertex index 0; vertex B with vertex index 1; vertex C with vertex index 2; vertex D with vertex index 3; vertex E with vertex index 4; vertex F with vertex index 5; vertex G with vertex index 6; vertex H with vertex index 7; and vertex I with vertex index 8.
[0066] Therefore, triangles 401, 402, and 403 can also be indexed using vertex indices. Triangle 401 can be indexed by the vertices belonging to triangle 401. Triangle 401 can be indexed using "CBA", triangle 402 using "DFE", and triangle 403 using "HIG". In this case, the vertices can be arranged counterclockwise relative to the triangle. For each vertex's numerical index, triangle 401 can also be called "2-1-0", triangle 402 can also be called "3-5-4", and triangle 403 can also be called "7-8-6". Therefore, the edges of each polygon can also be indexed using vertex indices. For example, triangle 401 includes edges CB, BA, and AC corresponding to edges 2-1, 1-0, and 0-2. Similarly, triangle 402 includes edges DF, FE, and ED corresponding to edges 3-5, 5-4, and 4-3. Finally, triangle 403 includes edges HI, IG, and GH corresponding to edges 7-8, 8-6, and 6-7.
[0067] In this traditional indexing scheme, the polygons of the mesh are indexed using different vertex indices. In this case, when edge BC is considered to belong to triangle CBA, it can be indexed as "2-1", and when the same edge ED is considered to belong to triangle DFE, it can be indexed as "4-3". Therefore, identical edges cannot be identified.
[0068] To ensure that identical edges are uniquely identified by their indices, an index merging operation is performed. During this operation, different indices of a vertex are replaced by a single index. As a result, subscripts "B" and "D" are replaced by "Y", subscripts "C", "G", and "E" are replaced by "X", and subscripts "F" and "H" are replaced by "Z". Now, triangle 401 includes vertices A, Y, and X. Triangle 402 includes vertices Y, Z, and E. Triangle 403 includes vertices Z, I, and X. All five vertices are associated with unique numerical vertex indices. That is, vertex A is associated with vertex index 0. Vertex X is associated with vertex index 1. Vertex Y is associated with vertex index 2. Vertex Z is associated with vertex index 3. Vertex I is associated with vertex index 4.
[0069] Therefore, triangle 401 can be indexed using "YXA", triangle 402 using "YZX", and triangle 403 using "ZIX". In this case, the vertices can be arranged counterclockwise relative to the triangles. For each vertex's numerical index, triangle 401 can also be called "2-1-0", triangle 402 can also be called "2-3-1", and triangle 403 can also be called "3-4-1". Therefore, the edges of each triangle can also be indexed using vertex indices. For example, triangle 401 includes edges YX, XA, and AY corresponding to edges 2-1, 1-0, and 0-2. Similarly, triangle 402 includes edges YZ, ZX, and XY corresponding to edges 2-3, 3-1, and 1-2. Finally, triangle 403 includes edges Z1, IX, and XZ corresponding to edges 3-4, 4-1, and 1-3.
[0070] In this indexing scheme, as shown in the figure, edge YX is shared by triangles 401 and 402. Under this indexing system, edge YX belongs to two triangles and can be counted twice, once as edge 2-1 (edge YX in triangle YXA) and once as edge 1-2 (edge XY in triangle YZX).
[0071] In contrast, under the indexing system according to this disclosure, although the same vertex index pair can be used to index common edges in different indexing orders, the same vertex index pair can still be used to identify common edges. This indexing system forms the basis of the feature edge extraction scheme. Thus, this indexing system allows common edges to be distinguished from individual edges. Simultaneously, redundant vertex indexes are discarded, thereby reducing the amount of redundant data.
[0072] return Figure 3 At point 320, network device 130 determines the number of polygons to which a polygon edge belongs. As mentioned above, a polygon edge can belong to one or two polygons. When the polygon edges of each polygon are determined, polygon edges belonging to two polygons will be counted twice. For example, Figure 4B The edge BC belongs to two triangles and will be counted twice. Since vertex index pairs 2-1 and 1-2 both include vertex index 1 and vertex index 2, these vertex index pairs can indicate the common edge BC. Thus, it can be easily determined that edge BC belongs to two polygons. Figure 4B The indexing system shown facilitates the determination of the number of polygons to which a polygon's edge belongs.
[0073] At 330, network device 130 determines whether the number associated with the polygon edge is 1. If network device 130 determines that the number associated with the polygon edge is not equal to 1, then method 300 proceeds to 340. At 340, network device 130 identifies the polygon edge as a common edge, and at 350, network device 130 discards the common edge. When the number is equal to 1, it indicates that the edge belongs to the polygon within the edge region of the feature and is part of the feature edge.
[0074] If network device 130 determines that the number of polygon edges associated with it is equal to 1, then method 300 proceeds to 360. At 360, network device 130 identifies the polygon edges as individual edges. At 370, network device 130 determines the connection order of the individual edges based on their vertices. At 380, network device 130 connects the individual edges in the determined connection order to form at least one edge line.
[0075] In these embodiments, by determining the number of polygons to which an edge belongs, it can be determined whether the edge is a separate edge or a shared edge. (Refer to...) Figure 4C Describe in detail the process used to form the edge lines.
[0076] Figure 4C A schematic diagram illustrating an example process for edge extraction according to some embodiments of the present disclosure is shown. Figure 4C As shown, this includes polygons 410, 420-1, 420-2, 420-3, 430-1, 430-2, 430-3, 430-4, 430-5, 430-6, 440-1, 440-2, and 440-3. Figure 4AThe vertices of the features shown are indexed by the characters "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", and "L". These characters can be used to... Figure 4B The process shown is indexed. For example, the characters “A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “J”, “K”, and “L” can correspond to “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, and “11”. Thus, polygon 410, including vertex “CDB”, can be indexed as “2-3-1”, and therefore includes edges “2-3”, “3-1”, and “1-2”. Polygon 420-1, including vertex “CBA”, can be indexed as “2-1-0”, and therefore includes edges “2-1”, “1-0”, and “0-2”. Polygon 420-2, including vertex “DEB”, can be labeled as “3-4-2”, and therefore includes edges “3-4”, “4-2”, and “2-3”. Polygon 420-3, including vertex "FDC", can be indexed as "5-3-2", therefore it includes edges "5-3", "3-2", and "2-5". Polygon 430-1, including vertex "ABL", can be indexed as "0-1-11", therefore it includes edges "0-1", "1-11", and "11-0". Polygon 430-2, including vertex "BEK", can be indexed as "1-4-10", therefore it includes edges "1-4", "4-10", and "10-1". Polygon 430-3, including vertex "DJE", can be indexed as "3-9-4", therefore it includes edges "3-9", "9-4", and "4-3". Polygon 430-4, including vertex "FID", can be indexed as "5-8-3", therefore it includes edges "5-8", "8-3", and "3-5". Polygon 430-5, including vertex "GFC", can be indexed as "6-5-2", therefore it includes edges "6-5", "5-2", and "2-6". Polygon 430-6, including vertex "HCA", can be indexed as "7-2-0", therefore it includes edges "7-2", "2-0", and "0-7". Polygon 440-1, including vertex "BKL", can be indexed as "1-10-11", therefore it includes edges "1-10", "10-11", and "11-1". Polygon 440-2, including vertex "ID", can be indexed as "8-9-3", therefore it includes edges "8-9", "9-3", and "3-8". Polygon 440-3, including vertex "GCH", can be indexed as "6-2-7", therefore it includes edges "6-2", "2-7", and "7-6".
[0077] All polygon edges are determined according to the indexing system. Edge AH is indexed as "0-7", edge HG as "7-6", edge GF as "6-5", edge FI as "5-8", edge IJ as "8-9", edge JE as "9-4", edge EK as "4-10", edge KL as "10-11", and edge LA as "11-0". At this point, vertices can be arranged such that the index of the next vertex of a preceding individual edge is the same as the index of the previous vertex of a following individual edge, to obtain the connection order. Thus, the connection order could be "0-7", "7-6", "6-5", "5-8", "8-9", "9-4", "4-10", "10-11", "11-0". The feature edge line “0-7-7-6-6-5-5-8-8-9-9-4-4-10-10-11-11-0” is formed by connecting edges in a defined connection order, and the feature edge line is closed.
[0078] Figure 4D A schematic diagram of an example process 400C for determining a processing path according to some embodiments of the present disclosure is shown. Figure 4D As shown, in order to perform surface treatment operations on the feature surface, regular rays simulating actual processing tools are projected onto the feature surface 450. Feature surface 450 corresponds to... Figure 4A The features identified in the illustrated embodiment. A total of nine regular rays are emitted, including regular rays 460-1, 460-2, 460-3, 460-4, 460-5, 460-6, 460-7, 460-8, and 460-9. The projected regular rays intersect the feature surface at multiple processing points. The processing path 470 can be determined by connecting the processing points in a practically feasible order.
[0079] Figure 5 A schematic diagram of an example process 500 for combining polygons according to some further embodiments of the present disclosure is shown. Figure 5 A mesh 3D model of the flange is shown. This mesh 3D model includes end face feature 510, chamfered ring feature 520, center through-hole feature 530, and peripheral through-hole feature 540. Additionally, an initial polygon 511-1 is selected.
[0080] A portion of the mesh is shown in an enlarged manner. Initial polygon 511-1 is added as an inner polygon to the polygon set associated with end surface feature 510. At this time, the outer polygons surrounding the polygon set and sharing common edges with the inner polygons include polygons 511-2, 511-3, and 511-4.
[0081] After identifying the outer polygons 511-2, 511-3, and 511-4, network device 130 can determine the angle between polygon 511-2 and the inner polygon 511-1, the angle between polygon 511-3 and the inner polygon 511-1, and the angle between polygon 511-4 and the inner polygon 511-1. For example... Figure 5 As shown, the included angles between polygons 511-2, 511-3, 511-4, and 511-1 are all less than the angle threshold. Therefore, polygons 511-2, 511-3, and 511-4 are identified as internal polygons and added to the current polygon set. After adding the newly identified internal polygons, the internal polygons in the polygon set include polygons 511-2, 511-3, 511-4, and 511-1. The outermost polygons in the polygon set are polygons 511-2, 511-3, and 511-4, and their adjacent polygons are identified as outer polygons, including polygons 511-5, 511-1, and 511-6. Similarly, polygons 511-5 and 511-6 are identified as internal polygons, while polygon 541-1, belonging to the polygon set associated with feature 540, is identified as an outer polygon. Polygon 541-1 is discarded.
[0082] After polygons 511-5 and 511-6 are added to the current polygon set, the example outer polygons are identified as polygons 521-1 and 531. However, the corresponding angles between these outer polygons and their respective inner polygons are determined to be greater than an angle threshold, and both polygons are discarded.
[0083] Using this embodiment, the end surface feature 510 is significantly different from the chamfered ring feature 520, the central through-hole feature 530, and the peripheral through-hole feature 540. The included angles between adjacent polygons from different features are significantly large. Thus, different features can be identified according to the feature surface identification mechanism of this disclosure.
[0084] In some embodiments of this disclosure, a computing device is provided for implementing the methods 200, 220 and 300 described above. Figure 6 A schematic diagram of an electronic device 600 for implementing a method according to an embodiment of the present disclosure is shown. The electronic device 600 may correspond to... Figure 1The network device 130 is included. The electronic device 600 includes at least one processor 610 and at least one memory 620. The at least one processor 610 may be coupled to the at least one memory 620. The at least one memory 620 includes instructions 622 that, when executed by the at least one processor 610, implement method 200, 220, or 300.
[0085] In some embodiments of this disclosure, a computer-readable medium is provided for adjusting a robot path. The computer-readable medium stores instructions that, when executed on at least one processor, cause the processor to perform a method for managing a camera system as described in the preceding paragraphs, details of which will be omitted below.
[0086] Generally, the various embodiments of this disclosure can be implemented in hardware or special-purpose circuitry, software, logic, or any combination thereof. Some aspects can be implemented in hardware, while others can be implemented in firmware or software, which can be executed by a controller, microprocessor, or other computing device. Although aspects of the embodiments of this disclosure are shown and described as block diagrams, flowcharts, or using some other graphical representation, it will be understood that the blocks, apparatuses, systems, techniques, or methods described herein can be implemented in hardware, software, firmware, special-purpose circuitry or logic, general-purpose hardware or controllers or other computing devices, or some combination thereof, as non-limiting examples.
[0087] This disclosure also provides at least one computer program product tangibly stored on a non-transitory computer-readable storage medium. The computer program product includes computer-executable instructions that execute in a device on a target real or virtual processor, such as those included in a program module, to perform the above-referenced... Figure 2A-3 The process or method described herein. Generally, a program module includes routines, programs, libraries, objects, classes, components, data structures, etc., that perform specific tasks or implement specific abstract data types. The functionality of a program module can ideally be combined or separated among program modules in various embodiments. The machine-executable instructions of a program module can be executed locally or in a distributed device. In a distributed device, the program module can reside in both local and remote storage media.
[0088] Program code used to perform the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package, partially on a machine, partially on a remote machine, or entirely on a remote machine or server.
[0089] The aforementioned program code may be contained on a machine-readable medium, which may be any tangible medium that can contain or store a program used by or in conjunction with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. The machine-readable medium may include, but is not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. More specific examples of machine-readable storage media will include electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable optical disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0090] Furthermore, although the operations are described in a specific order, this should not be construed as requiring that these operations be performed in the specific order shown or in sequential order, or that all the operations shown be performed to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the foregoing discussion, these details should not be construed as limiting the scope of this disclosure, but rather as descriptions of features specific to particular embodiments. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. On the other hand, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.
[0091] Although the subject matter has been described using language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are disclosed as exemplary forms of implementing the claims.
[0092] It should be understood that the detailed embodiments described above are merely illustrative or explanatory of the principles of this disclosure and are not intended to limit it. Therefore, any modifications, equivalent substitutions, and improvements should be included within the scope of this disclosure without departing from its spirit and scope. Furthermore, the appended claims are intended to cover all variations and modifications falling within the scope and limits of the claims or their equivalents.
[0093] It should be understood that the overview section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description.
Claims
1. A feature identification method, comprising: Obtain first 3D model data of a 3D object model, wherein the first 3D object model data includes multiple polygons; In response to determining that the included angle between two adjacent polygons is less than an angle threshold, the two adjacent polygons are combined into a polygon set; and The feature faces of the 3D object model are identified at least in part based on the set of polygons.
2. The method of claim 1, wherein combining the two adjacent polygons comprises: Identify the outer polygon that shares polygon edges with the inner polygons in the polygon set; Determine the included angle between the outer polygon and the inner polygon; In response to determining that the angle between the outer polygon and the inner polygon is less than the angle threshold, the outer polygon is determined to be the inner polygon; as well as Add the outer polygon to the polygon set.
3. The method of claim 2, wherein determining the included angle between the outer polygon and the inner polygon comprises: Determine the first normal vector of the outer polygon and the second normal vector of the inner polygon; as well as The angle between the first normal vector and the second normal vector is defined as the angle between the outer polygon and the inner polygon.
4. The method of claim 2, wherein the combination of the two adjacent polygons further comprises: In response to determining that the angle between the outer polygon and the inner polygon is greater than the angle threshold, the outer polygon is defined as the outer polygon; as well as Discard the outer polygon.
5. The method according to claim 1, further comprising: Individual edges are determined from the polygon edges of the polygon set, each individual edge belonging to a single polygon in the polygon set; as well as By connecting the individual edges, at least one feature edge of the feature is formed.
6. The method of claim 5, wherein determining individual edges comprises: Determine the polygon edges of each polygon in the polygon set; Determine the number of polygons to which each edge of a polygon belongs; as well as In response to determining that the number associated with the polygon edge is equal to one, the polygon edge is determined as a single edge.
7. The method of claim 6, wherein forming the at least one feature edge comprises: The connection order of the individual edges is determined based on the vertices of the individual edges; as well as The individual edges are connected in the determined connection order to form at least one edge line.
8. The method according to claim 7, further comprising: Associate each vertex of the feature with a unique vertex index; as well as For each polygon edge, a vertex index pair is determined, wherein the order of the two vertex indices in the vertex index pair indicates the orientation of the polygon edge.
9. The method of claim 8, wherein determining the connection order comprises: Arrange the individual edges such that the index of the next vertex of the previous individual edge is the same as the index of the previous vertex of the next individual edge, to obtain the connection order.
10. The method of claim 1, wherein the polygon is a triangle.
11. The method of claim 1, wherein obtaining the first 3D model data comprises: Obtain second 3D model data with local feature information of the 3D object model; as well as The vertex information, polygon information, and orientation information of the polygons are extracted from the second 3D model data to obtain the first 3D model data.
12. The method according to claim 5, further comprising: In response to receiving an instruction to process the feature of the 3D model data, determine whether the processing operation is performed on the surface of the feature or on the edge of the feature; In response to determining that the processing operation is performed on the surface of the feature, a regular ray is emitted onto the polygon set to obtain the intersection point between the regular ray and the polygon set; as well as Connect the intersections to obtain the processing path.
13. The method of claim 12, further comprising: In response to determining that the processing operation is performed on the edge of the feature, a regular ray is emitted onto the at least one feature edge to obtain the intersection point between the regular ray and the at least one feature edge; as well as Connect the intersections to obtain the processing path.
14. An electronic device (700), comprising: At least one processor (710); as well as At least one memory (720) storing instructions (721), which, when executed by the at least one processor (710), cause the device (700) to perform the method according to any one of claims 1-13.
15. A computer-readable storage medium storing instructions that, when executed by a computer, cause the computer to perform the method according to any one of claims 1-13.